net.sf.jguard.authorization
Class JdbcAuthorizationManager

java.lang.Object
  extended bynet.sf.jguard.authorization.AbstractAuthorizationManager
      extended bynet.sf.jguard.authorization.JdbcAuthorizationManager
All Implemented Interfaces:
AuthorizationManager, PermissionProvider
Direct Known Subclasses:
DB2AuthorizationManager, MySQLAuthorizationManager, OracleAuthorizationManager, PostgreSQLAuthorizationManager, SQLServerAuthorizationManager

public abstract class JdbcAuthorizationManager
extends AbstractAuthorizationManager
implements AuthorizationManager

AuthorizationManager abstract class inherited by the database-backed AuthorizationManager implementations.

Author:
Charles Gay, Vinicius Pitta Lima de Araujo

Field Summary
protected  java.lang.String ABS_CHANGE_DOMAIN_PERMISSION
           
protected  java.lang.String ABS_CREATE_DOMAIN
           
protected  java.lang.String ABS_CREATE_PARAMETER
           
protected  java.lang.String ABS_CREATE_PERMISSION
           
protected  java.lang.String ABS_CREATE_ROLE
           
protected  java.lang.String ABS_CREATE_ROLE_DOMAIN
           
protected  java.lang.String ABS_CREATE_ROLE_PERMISSION
           
protected  java.lang.String ABS_DELETE_DOMAIN
           
protected  java.lang.String ABS_DELETE_DOMAIN_ROLE
           
protected  java.lang.String ABS_DELETE_PARAMETER
           
protected  java.lang.String ABS_DELETE_PERMISSION
           
protected  java.lang.String ABS_DELETE_PERMISSION_PARAMETERS
           
protected  java.lang.String ABS_DELETE_PERMISSION_ROLE
           
protected  java.lang.String ABS_DELETE_ROLE
           
protected  java.lang.String ABS_DELETE_ROLE_DOMAIN
           
protected  java.lang.String ABS_DELETE_ROLE_PERMISSION
           
protected  java.lang.String ABS_DOMAIN_ID
           
protected  java.lang.String ABS_DOMAINS
           
protected  java.lang.String ABS_PARAMETER_ID
           
protected  java.lang.String ABS_PERMISSION_ID
           
protected  java.lang.String ABS_PERMISSION_PARAMETERS
           
protected  java.lang.String ABS_PERMISSIONS
           
protected  java.lang.String ABS_PERMISSIONS_FROM_DOMAINS
           
protected  java.lang.String ABS_PERMISSIONS_FROM_ROLE
           
protected  java.lang.String ABS_READ_DOMAIN_ID
           
protected  java.lang.String ABS_ROLE_ID
           
protected  java.lang.String ABS_ROLES
           
protected  java.lang.String ABS_UPDATE_DOMAIN
           
protected  java.lang.String ABS_UPDATE_PARAMETER
           
protected  java.lang.String ABS_UPDATE_PERMISSION
           
protected  java.lang.String ABS_UPDATE_ROLE
           
protected static java.lang.String DOMAIN_NAME
           
protected  java.util.Map domainIds
           
protected static java.lang.String jgAppRole
           
protected static java.lang.String jgAppRoleSeq
           
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 jgRoleDomain
           
protected static java.lang.String jgRolePermission
           
protected static java.lang.String jgUrlQuery
           
protected static java.lang.String jgUrlQuerySeq
           
protected static java.lang.String NAME
           
 
Fields inherited from class net.sf.jguard.authorization.AbstractAuthorizationManager
applicationName, domains, domainsSet, principals, principalsSet, urlp
 
Constructor Summary
JdbcAuthorizationManager()
          JdbcAuthorizationManager constructor.
 
Method Summary
abstract  void assemblySQLStatements()
          the classes which must override this method use it to build SQL queries.
 void changeDomainPermission(java.lang.String permissionName, java.lang.String newDomainName)
          update the permission to bound it to another URLDomain.
 void createDomain(java.lang.String domainName)
          create a new domain.
 void createPermission(URLPermission permission, java.lang.String domainName)
          create an URLPermission int the corresponding backend.
 void createRole(JGuardPrincipal principal)
           
 void createRole(java.lang.String roleName)
          create an application role.
 void deleteDomain(java.lang.String domainName)
          delete a domain.
 void deletePermission(java.lang.String permissionName)
          delete the permission.
 void deleteRole(java.lang.String roleName)
          delete role.
 java.util.List getInitParameters()
          return needed initialization parameters.
 void init(java.util.Map options)
          initialize this jdbc permission manager.
 URLPermissionCollection listPermissions()
          initialize permissions.
 java.util.Set listRoles()
          initialize principals.
 void updateDomain(java.lang.String newDomainName, java.lang.String oldDomainName)
          change the domain name.
 void updatePermission(java.lang.String oldPermissionName, URLPermission url, java.lang.String newDomainName)
          update the URLPermission.
 void updateRole(java.lang.String oldPrincipalName, JGuardPrincipal principal)
          update the application Principal (role).
 
Methods inherited from class net.sf.jguard.authorization.AbstractAuthorizationManager
cloneRole, getPermissionCollection, getURLDomains, getURLPermissions, listDomains, readDomain, readPermission, readRole, refresh, removeDomainFromPrincipals, removePermissionFromPrincipals, setApplicationName, 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.authorization.AuthorizationManager
cloneRole, getPermissionCollection, getURLDomains, getURLPermissions, listDomains, readDomain, readPermission, readRole, refresh, setApplicationName
 

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

jgAppRoleSeq

protected static java.lang.String jgAppRoleSeq

jgUrlQuerySeq

protected static java.lang.String jgUrlQuerySeq

jgRoleDomain

protected static java.lang.String jgRoleDomain

jgDomain

protected static java.lang.String jgDomain

jgAppRole

protected static java.lang.String jgAppRole

jgRolePermission

protected static java.lang.String jgRolePermission

jgPermission

protected static java.lang.String jgPermission

jgUrlQuery

protected static java.lang.String jgUrlQuery

ABS_ROLES

protected java.lang.String ABS_ROLES

ABS_PERMISSIONS_FROM_ROLE

protected java.lang.String ABS_PERMISSIONS_FROM_ROLE

ABS_PERMISSIONS_FROM_DOMAINS

protected java.lang.String ABS_PERMISSIONS_FROM_DOMAINS

ABS_PERMISSIONS

protected java.lang.String ABS_PERMISSIONS

ABS_CREATE_PERMISSION

protected java.lang.String ABS_CREATE_PERMISSION

ABS_CREATE_DOMAIN

protected java.lang.String ABS_CREATE_DOMAIN

ABS_CREATE_ROLE_PERMISSION

protected java.lang.String ABS_CREATE_ROLE_PERMISSION

ABS_CREATE_ROLE_DOMAIN

protected java.lang.String ABS_CREATE_ROLE_DOMAIN

ABS_DOMAINS

protected java.lang.String ABS_DOMAINS

ABS_DELETE_DOMAIN

protected java.lang.String ABS_DELETE_DOMAIN

ABS_DELETE_ROLE_DOMAIN

protected java.lang.String ABS_DELETE_ROLE_DOMAIN

ABS_DELETE_DOMAIN_ROLE

protected java.lang.String ABS_DELETE_DOMAIN_ROLE

ABS_UPDATE_DOMAIN

protected java.lang.String ABS_UPDATE_DOMAIN

ABS_UPDATE_PERMISSION

protected java.lang.String ABS_UPDATE_PERMISSION

ABS_CHANGE_DOMAIN_PERMISSION

protected java.lang.String ABS_CHANGE_DOMAIN_PERMISSION

ABS_DELETE_ROLE

protected java.lang.String ABS_DELETE_ROLE

ABS_CREATE_ROLE

protected java.lang.String ABS_CREATE_ROLE

ABS_UPDATE_ROLE

protected java.lang.String ABS_UPDATE_ROLE

ABS_DELETE_PERMISSION

protected java.lang.String ABS_DELETE_PERMISSION

ABS_DELETE_ROLE_PERMISSION

protected java.lang.String ABS_DELETE_ROLE_PERMISSION

ABS_DELETE_PERMISSION_ROLE

protected java.lang.String ABS_DELETE_PERMISSION_ROLE

ABS_DOMAIN_ID

protected java.lang.String ABS_DOMAIN_ID

ABS_PERMISSION_ID

protected java.lang.String ABS_PERMISSION_ID

ABS_READ_DOMAIN_ID

protected java.lang.String ABS_READ_DOMAIN_ID

ABS_ROLE_ID

protected java.lang.String ABS_ROLE_ID

ABS_CREATE_PARAMETER

protected java.lang.String ABS_CREATE_PARAMETER

ABS_UPDATE_PARAMETER

protected java.lang.String ABS_UPDATE_PARAMETER

ABS_PARAMETER_ID

protected java.lang.String ABS_PARAMETER_ID

ABS_DELETE_PARAMETER

protected java.lang.String ABS_DELETE_PARAMETER

ABS_PERMISSION_PARAMETERS

protected java.lang.String ABS_PERMISSION_PARAMETERS

ABS_DELETE_PERMISSION_PARAMETERS

protected java.lang.String ABS_DELETE_PERMISSION_PARAMETERS
Constructor Detail

JdbcAuthorizationManager

public JdbcAuthorizationManager()
JdbcAuthorizationManager constructor.

Method Detail

getInitParameters

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

Specified by:
getInitParameters in interface AuthorizationManager
Returns:
initialization parameters' list
See Also:
AuthorizationManager.getInitParameters()

listRoles

public java.util.Set listRoles()
initialize principals. regroup Principals in a Set.

Specified by:
listRoles in interface AuthorizationManager
Returns:
roles Set

listPermissions

public URLPermissionCollection listPermissions()
initialize permissions. regroup permissions in a URLPermissionCollection.

Specified by:
listPermissions in interface AuthorizationManager
Returns:
URLPermissionCollection

init

public void init(java.util.Map options)
initialize this jdbc permission manager.

Specified by:
init in interface AuthorizationManager
Specified by:
init in class AbstractAuthorizationManager
Parameters:
options - a Map which contains informations to configure the AuthorizationManager implementation.
Throws:
AuthorizationException
See Also:
net.sf.jguard.authorization.AuthorizationManager#init(java.util.Properties)

createPermission

public void createPermission(URLPermission permission,
                             java.lang.String domainName)
                      throws AuthorizationException
create an URLPermission int the corresponding backend.

Specified by:
createPermission in interface AuthorizationManager
Parameters:
permission -
Throws:
AuthorizationException
See Also:
net.sf.jguard.authorization.AuthorizationManager#createPermission(net.sf.jguard.permissions.URLPermission)

updatePermission

public void updatePermission(java.lang.String oldPermissionName,
                             URLPermission url,
                             java.lang.String newDomainName)
                      throws AuthorizationException
update the URLPermission.

Specified by:
updatePermission in interface AuthorizationManager
Parameters:
url -
Throws:
AuthorizationException
See Also:
net.sf.jguard.authorization.AuthorizationManager#updatePermission(net.sf.jguard.permissions.URLPermission)

deletePermission

public void deletePermission(java.lang.String permissionName)
                      throws AuthorizationException
delete the permission.

Specified by:
deletePermission in interface AuthorizationManager
Parameters:
permissionName -
Throws:
AuthorizationException
See Also:
AuthorizationManager.deletePermission(java.lang.String)

createDomain

public void createDomain(java.lang.String domainName)
                  throws AuthorizationException
create a new domain.

Specified by:
createDomain in interface AuthorizationManager
Parameters:
domainName -
Throws:
AuthorizationException
See Also:
net.sf.jguard.authorization.AuthorizationManager#createDomain(net.sf.jguard.permissions.URLPermission)

updateDomain

public void updateDomain(java.lang.String newDomainName,
                         java.lang.String oldDomainName)
                  throws AuthorizationException
change the domain name.

Specified by:
updateDomain in interface AuthorizationManager
Parameters:
newDomainName -
oldDomainName -
Throws:
AuthorizationException
See Also:
net.sf.jguard.authorization.AuthorizationManager#updateDomain(net.sf.jguard.permissions.URLPermission)

deleteDomain

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

Specified by:
deleteDomain in interface AuthorizationManager
Parameters:
domainName -
Throws:
AuthorizationException
See Also:
AuthorizationManager.deleteDomain(java.lang.String)

createRole

public void createRole(java.lang.String roleName)
                throws AuthorizationException
create an application role.

Specified by:
createRole in interface AuthorizationManager
Parameters:
roleName - name of the role
Throws:
AuthorizationException
See Also:
net.sf.jguard.authorization.AuthorizationManager#createRole(net.sf.jguard.principals.JGuardPrincipal)

updateRole

public void updateRole(java.lang.String oldPrincipalName,
                       JGuardPrincipal principal)
                throws AuthorizationException
update the application Principal (role).

Specified by:
updateRole in interface AuthorizationManager
Parameters:
principal - the new principal updated
Throws:
AuthorizationException
See Also:
net.sf.jguard.authorization.AuthorizationManager#updateRole(net.sf.jguard.principals.JGuardPrincipal)

deleteRole

public void deleteRole(java.lang.String roleName)
                throws AuthorizationException
delete role.

Specified by:
deleteRole in interface AuthorizationManager
Parameters:
roleName - role name to delete
Throws:
AuthorizationException
See Also:
AuthorizationManager.deleteRole(java.lang.String)

changeDomainPermission

public void changeDomainPermission(java.lang.String permissionName,
                                   java.lang.String newDomainName)
update the permission to bound it to another URLDomain.

Parameters:
permissionName - name of the permission to update
newDomainName - name of the URLDomain to bound this permission

createRole

public void createRole(JGuardPrincipal principal)
                throws AuthorizationException
Specified by:
createRole in class AbstractAuthorizationManager
Throws:
AuthorizationException

assemblySQLStatements

public abstract void assemblySQLStatements()
the classes which must override this method use it to build SQL queries.