net.sf.jguard.ext.authorization.manager
Class JdbcAuthorizationManager

java.lang.Object
  extended by net.sf.jguard.ext.authorization.manager.AbstractAuthorizationManager
      extended by net.sf.jguard.ext.authorization.manager.JdbcAuthorizationManager
All Implemented Interfaces:
net.sf.jguard.core.authorization.manager.AuthorizationManager, net.sf.jguard.core.authorization.manager.PermissionProvider, JdbcManager

public class JdbcAuthorizationManager
extends AbstractAuthorizationManager
implements net.sf.jguard.core.authorization.manager.AuthorizationManager, JdbcManager

jdbc-based AuthorizationManager class used for all database backend.

Author:
Charles Gay, Vinicius Pitta Lima de Araujo, Maximiliano Batelli

Field Summary
protected  java.lang.String CHANGE_DOMAIN_PERMISSION
           
protected  java.lang.String CREATE_DOMAIN
           
protected  java.lang.String CREATE_PERMISSION
           
protected  java.lang.String CREATE_PRINCIPAL
           
protected  java.lang.String CREATE_PRINCIPAL_DOMAIN
           
protected  java.lang.String CREATE_PRINCIPAL_INHERITANCE
           
protected  java.lang.String CREATE_PRINCIPAL_PERMISSION
           
protected  java.lang.String DELETE_DOMAIN
           
protected  java.lang.String DELETE_DOMAIN_PRINCIPAL
           
protected  java.lang.String DELETE_PERMISSION
           
protected  java.lang.String DELETE_PERMISSION_PRINCIPAL
           
protected  java.lang.String DELETE_PRINCIPAL
           
protected  java.lang.String DELETE_PRINCIPAL_DOMAIN
           
protected  java.lang.String DELETE_PRINCIPAL_INHERITANCE
           
protected  java.lang.String DELETE_PRINCIPAL_PERMISSION
           
protected static java.lang.String DOMAIN_NAME
           
protected  java.util.Map domainIds
           
protected  java.lang.String DOMAINS
           
protected static java.lang.String jgAppPrincipal
           
protected static java.lang.String jgAppPrincipalSeq
           
protected static java.lang.String jgDomain
           
protected static java.lang.String jgDomainSeq
           
protected static java.lang.String jgPermission
           
protected static java.lang.String jgPermissionSeq
           
protected static java.lang.String jgPrincipalDomain
           
protected static java.lang.String jgPrincipalHierarchy
           
protected static java.lang.String jgPrincipalPermission
           
protected static java.lang.String jgUrlQuery
           
protected static java.lang.String jgUrlQuerySeq
           
protected static java.lang.String NAME
           
protected  java.lang.String PERMISSIONS
           
protected  java.lang.String PERMISSIONS_FROM_DOMAINS
           
protected  java.lang.String PERMISSIONS_FROM_PRINCIPAL
           
protected  java.lang.String PRINCIPALS
           
protected  java.lang.String PRINCIPALS_HIERARCHY
           
protected  java.lang.String READ_DOMAIN_ID
           
protected  java.lang.String READ_PERMISSION_ID
           
protected  java.lang.String READ_PRINCIPAL_ID
           
protected  java.lang.String UPDATE_DOMAIN
           
protected  java.lang.String UPDATE_PERMISSION
           
protected  java.lang.String UPDATE_PRINCIPAL
           
 
Fields inherited from class net.sf.jguard.ext.authorization.manager.AbstractAuthorizationManager
alwaysGrantedPermissions, applicationName, domains, domainsPermissions, domainsSet, hierarchyMap, options, permissions, permissionsSet, principals, principalsSet, urlp
 
Constructor Summary
JdbcAuthorizationManager(javax.sql.DataSource dataSource, java.util.Map options)
          initialize this jdbc AuthorizationManager.
JdbcAuthorizationManager(java.util.Map options)
          initialize this jdbc AuthorizationManager.
 
Method Summary
 void addInheritance(java.lang.String principalAscName, java.lang.String principalDescName)
          This commands establishes a new immediate inheritance relationship between the existing principals principalAsc and the principalDesc.
 void changeDomainPermission(java.lang.String permissionName, java.lang.String newDomainName)
          update the permission to bound it to another Domain.
 void createDomain(java.lang.String domainName)
          create a new domain.
 void createPermission(java.security.Permission permission, java.lang.String domainName)
          create an URLPermission int the corresponding backend.
 void createPrincipal(java.security.Principal principal)
           
 void createRequiredDatabaseEntities(java.util.Properties properties, ConnectionFactory connectionFactory)
           
 void deleteDomain(java.lang.String domainName)
          delete a domain.
 void deleteInheritance(java.lang.String principalAscName, java.lang.String principalDescName)
          Delete the inheritance beteween two existings principals.
 void deletePermission(java.lang.String permissionName)
          delete the permission.
 void deletePrincipal(java.security.Principal principal)
          delete principal.
 java.util.List getInitParameters()
          return needed initialization parameters.
 void insertRequiredData(java.lang.String xmlFileLocation)
          import required datas from XML datastore.
 boolean isEmpty()
           
 void refresh()
           
 void updateDomain(java.lang.String newDomainName, java.lang.String oldDomainName)
          change the domain name.
 void updatePermission(java.lang.String oldPermissionName, java.security.Permission perm, java.lang.String newDomainName)
          update the URLPermission.
 void updatePrincipal(java.lang.String oldPrincipalName, java.security.Principal principal)
          update the application Principal (role).
 
Methods inherited from class net.sf.jguard.ext.authorization.manager.AbstractAuthorizationManager
addAlwaysGrantedPermissions, addToPrincipal, addToPrincipal, assemblyHierarchy, clonePrincipal, clonePrincipal, deleteReferenceInHierarchy, getApplicationName, getDomain, getDomains, getDomains, getDomainsPermissions, getDomainsSet, getHierarchyMap, getLocalName, getOptions, getPermissions, getPermissions, getPermissions, getPermissionsSet, getPrincipals, getPrincipalsSet, importAuthorizationManager, listDomains, listPermissions, listPrincipals, readDomain, readPermission, readPrincipal, removeDomainFromPrincipals, removePermissionFromPrincipals, setApplicationName, updatePrincipal, updatePrincipals, updatePrincipals, updatePrincipals
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.jguard.core.authorization.manager.AuthorizationManager
addToPrincipal, addToPrincipal, clonePrincipal, clonePrincipal, getApplicationName, getDomains, getDomainsSet, getPermissions, getPermissionsSet, getPrincipalsSet, importAuthorizationManager, listDomains, listPermissions, listPrincipals, readDomain, readPermission, readPrincipal, updatePrincipal
 
Methods inherited from interface net.sf.jguard.core.authorization.manager.PermissionProvider
addAlwaysGrantedPermissions, getPermissions
 

Field Detail

NAME

protected static final java.lang.String NAME
See Also:
Constant Field Values

DOMAIN_NAME

protected static final java.lang.String DOMAIN_NAME
See Also:
Constant Field Values

domainIds

protected java.util.Map domainIds

jgDomainSeq

protected static java.lang.String jgDomainSeq

jgPermissionSeq

protected static java.lang.String jgPermissionSeq

jgAppPrincipalSeq

protected static java.lang.String jgAppPrincipalSeq

jgUrlQuerySeq

protected static java.lang.String jgUrlQuerySeq

jgPrincipalDomain

protected static java.lang.String jgPrincipalDomain

jgDomain

protected static java.lang.String jgDomain

jgAppPrincipal

protected static java.lang.String jgAppPrincipal

jgPrincipalPermission

protected static java.lang.String jgPrincipalPermission

jgPermission

protected static java.lang.String jgPermission

jgUrlQuery

protected static java.lang.String jgUrlQuery

jgPrincipalHierarchy

protected static java.lang.String jgPrincipalHierarchy

PRINCIPALS_HIERARCHY

protected java.lang.String PRINCIPALS_HIERARCHY

CREATE_PRINCIPAL_INHERITANCE

protected java.lang.String CREATE_PRINCIPAL_INHERITANCE

DELETE_PRINCIPAL_INHERITANCE

protected java.lang.String DELETE_PRINCIPAL_INHERITANCE

PRINCIPALS

protected java.lang.String PRINCIPALS

PERMISSIONS_FROM_PRINCIPAL

protected java.lang.String PERMISSIONS_FROM_PRINCIPAL

PERMISSIONS_FROM_DOMAINS

protected java.lang.String PERMISSIONS_FROM_DOMAINS

PERMISSIONS

protected java.lang.String PERMISSIONS

CREATE_PERMISSION

protected java.lang.String CREATE_PERMISSION

CREATE_DOMAIN

protected java.lang.String CREATE_DOMAIN

CREATE_PRINCIPAL_PERMISSION

protected java.lang.String CREATE_PRINCIPAL_PERMISSION

CREATE_PRINCIPAL_DOMAIN

protected java.lang.String CREATE_PRINCIPAL_DOMAIN

DOMAINS

protected java.lang.String DOMAINS

DELETE_DOMAIN

protected java.lang.String DELETE_DOMAIN

DELETE_PRINCIPAL_DOMAIN

protected java.lang.String DELETE_PRINCIPAL_DOMAIN

DELETE_DOMAIN_PRINCIPAL

protected java.lang.String DELETE_DOMAIN_PRINCIPAL

UPDATE_DOMAIN

protected java.lang.String UPDATE_DOMAIN

UPDATE_PERMISSION

protected java.lang.String UPDATE_PERMISSION

CHANGE_DOMAIN_PERMISSION

protected java.lang.String CHANGE_DOMAIN_PERMISSION

DELETE_PRINCIPAL

protected java.lang.String DELETE_PRINCIPAL

CREATE_PRINCIPAL

protected java.lang.String CREATE_PRINCIPAL

UPDATE_PRINCIPAL

protected java.lang.String UPDATE_PRINCIPAL

DELETE_PERMISSION

protected java.lang.String DELETE_PERMISSION

DELETE_PRINCIPAL_PERMISSION

protected java.lang.String DELETE_PRINCIPAL_PERMISSION

DELETE_PERMISSION_PRINCIPAL

protected java.lang.String DELETE_PERMISSION_PRINCIPAL

READ_PERMISSION_ID

protected java.lang.String READ_PERMISSION_ID

READ_DOMAIN_ID

protected java.lang.String READ_DOMAIN_ID

READ_PRINCIPAL_ID

protected java.lang.String READ_PRINCIPAL_ID
Constructor Detail

JdbcAuthorizationManager

public JdbcAuthorizationManager(java.util.Map options)
initialize this jdbc AuthorizationManager.

Parameters:
options - a Map which contains informations to configure the AuthorizationManager implementation.

JdbcAuthorizationManager

public JdbcAuthorizationManager(javax.sql.DataSource dataSource,
                                java.util.Map options)
initialize this jdbc AuthorizationManager. this constructor can be useful if you use one Inversion of Control (IoC) container. this constructor can be used with Ioc type 3 (injection by constructor).

Parameters:
dataSource - datasource to use to grab JDBC connections.
options - a Map which contains informations to configure the AuthorizationManager implementation.
Method Detail

getInitParameters

public java.util.List getInitParameters()
return needed initialization parameters.

Specified by:
getInitParameters in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Returns:
initialization parameters' list
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#getInitParameters()

createRequiredDatabaseEntities

public void createRequiredDatabaseEntities(java.util.Properties properties,
                                           ConnectionFactory connectionFactory)
Specified by:
createRequiredDatabaseEntities in interface JdbcManager

createPermission

public void createPermission(java.security.Permission permission,
                             java.lang.String domainName)
                      throws net.sf.jguard.core.authorization.AuthorizationException
create an URLPermission int the corresponding backend.

Specified by:
createPermission in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
permission - URLPermission
domainName - the domain the permission belongs to
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#createPermission(java.security.Permission, java.lang.String)

updatePermission

public void updatePermission(java.lang.String oldPermissionName,
                             java.security.Permission perm,
                             java.lang.String newDomainName)
                      throws net.sf.jguard.core.authorization.AuthorizationException
update the URLPermission.

Specified by:
updatePermission in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
oldPermissionName -
perm -
newDomainName -
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#updatePermission(java.lang.String, java.security.Permission, java.lang.String)

deletePermission

public void deletePermission(java.lang.String permissionName)
                      throws net.sf.jguard.core.authorization.AuthorizationException
delete the permission.

Specified by:
deletePermission in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
permissionName -
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#deletePermission(java.lang.String)

createDomain

public void createDomain(java.lang.String domainName)
                  throws net.sf.jguard.core.authorization.AuthorizationException
create a new domain.

Specified by:
createDomain in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
domainName -
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#createDomain(java.lang.String)

updateDomain

public void updateDomain(java.lang.String newDomainName,
                         java.lang.String oldDomainName)
                  throws net.sf.jguard.core.authorization.AuthorizationException
change the domain name.

Specified by:
updateDomain in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
newDomainName -
oldDomainName -
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#updateDomain(java.lang.String, java.lang.String)

deleteDomain

public void deleteDomain(java.lang.String domainName)
                  throws net.sf.jguard.core.authorization.AuthorizationException
delete a domain. a domain can be deleted only if no permissions are bound to it.

Specified by:
deleteDomain in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
domainName -
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#deleteDomain(java.lang.String)

updatePrincipal

public void updatePrincipal(java.lang.String oldPrincipalName,
                            java.security.Principal principal)
                     throws net.sf.jguard.core.authorization.AuthorizationException
update the application Principal (role).

Specified by:
updatePrincipal in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
oldPrincipalName - name of the principal to be replaced
principal - the new principal updated
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#updatePrincipal(net.sf.jguard.core.principals.RolePrincipal)

deletePrincipal

public void deletePrincipal(java.security.Principal principal)
                     throws net.sf.jguard.core.authorization.AuthorizationException
delete principal.

Specified by:
deletePrincipal in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Parameters:
principal -
Throws:
net.sf.jguard.core.authorization.AuthorizationException
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#deletePrincipal(java.security.Principal)

changeDomainPermission

public void changeDomainPermission(java.lang.String permissionName,
                                   java.lang.String newDomainName)
                            throws net.sf.jguard.core.authorization.AuthorizationException
update the permission to bound it to another Domain.

Parameters:
permissionName - name of the permission to update
newDomainName - name of the Domain to bound this permission
Throws:
net.sf.jguard.core.authorization.AuthorizationException

createPrincipal

public void createPrincipal(java.security.Principal principal)
                     throws net.sf.jguard.core.authorization.AuthorizationException
Specified by:
createPrincipal in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Throws:
net.sf.jguard.core.authorization.AuthorizationException

addInheritance

public void addInheritance(java.lang.String principalAscName,
                           java.lang.String principalDescName)
                    throws net.sf.jguard.core.authorization.AuthorizationException
This commands establishes a new immediate inheritance relationship between the existing principals principalAsc and the principalDesc. The command is valid if and only if the principal principalAsc is not an immediate ascendant of principalDesc, and descendant does not properly inherit principalAsc principal(in order to avoid cycle creation).

Specified by:
addInheritance in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Overrides:
addInheritance in class AbstractAuthorizationManager
Parameters:
principalAscName - the principal that will inherite.
principalDescName - the principal that will be inherited.
Throws:
net.sf.jguard.core.authorization.AuthorizationException - if the inheritance already exists or create a cycle.

deleteInheritance

public void deleteInheritance(java.lang.String principalAscName,
                              java.lang.String principalDescName)
                       throws net.sf.jguard.core.authorization.AuthorizationException
Delete the inheritance beteween two existings principals.

Specified by:
deleteInheritance in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Overrides:
deleteInheritance in class AbstractAuthorizationManager
Parameters:
principalAscName -
principalDescName -
Throws:
net.sf.jguard.core.authorization.AuthorizationException - if the inheritance already exists or create a cycle.

insertRequiredData

public void insertRequiredData(java.lang.String xmlFileLocation)
import required datas from XML datastore.

Specified by:
insertRequiredData in interface JdbcManager

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface net.sf.jguard.core.authorization.manager.AuthorizationManager
Specified by:
isEmpty in interface JdbcManager

refresh

public void refresh()
Specified by:
refresh in interface net.sf.jguard.core.authorization.manager.PermissionProvider
Specified by:
refresh in class AbstractAuthorizationManager
See Also:
net.sf.jguard.ext.authorization.manager.AuthorizationManager#refresh()


Copyright © 2004-2009. All Rights Reserved.