org.nuiton.topia.security
Class TopiaSecurityServiceImpl

java.lang.Object
  extended by org.nuiton.topia.security.TopiaSecurityServiceImpl
All Implemented Interfaces:
java.util.EventListener, TopiaTransactionVetoable, TopiaService, TopiaSecurityService

public class TopiaSecurityServiceImpl
extends java.lang.Object
implements TopiaSecurityService, TopiaTransactionVetoable

Implantation du manager pour la securite. C'est le point d'acces a l'ensemble des fonctionnalites de la securite.

Author:
ruchaud

Field Summary
 
Fields inherited from interface org.nuiton.topia.security.TopiaSecurityService
SERVICE_NAME
 
Constructor Summary
TopiaSecurityServiceImpl()
          Constructeur.
 
Method Summary
 void beginTransaction(TopiaTransactionEvent event)
          Permet de propager la s�curit� sur l'ensemble des contextes
 void checkPermission(java.lang.Class<?> entityClass, int actions)
          Vérifie si l'utilisateur actuellement loggué a le droit d'accéder à l'entité passée en paramètre pour les actions spécifiées.
 void checkPermission(java.lang.String topiaId, int actions)
          Vérifie si l'utilisateur actuellement loggué a le droit d'accéder à l'entité passée en paramètre pour les actions spécifiées.
 boolean containEntitiesLoadingCache(java.lang.String topiaId)
          Permet de tester le cache
 java.lang.Boolean getEntitiesLoadingCache(java.lang.String topiaId)
          Permet de r�cup�rer dans le cache pour l'utilisateur en cours si il a droit l'autorisation ou non de charger une entit�.
 java.util.Set<java.security.Permission> getPermissionsCache(java.lang.String principalName)
          Permet de r�cup�rer depuis le cache les permissions pour un principal donn�.
 java.lang.Class<?>[] getPersistenceClasses()
           
protected  int getRealActions(java.lang.String topiaId, int actions)
          Permet de determiner seulement les actions pour lesquelles on doit v�rifier les actions.
protected  java.util.List<java.lang.String> getRealExpressions(java.lang.String topiaId)
          Renvoi les identifiants qui remplacent l'identifiant en cours d'apr�s la table de correspondance TopiaExpressionLink.
 TopiaContext getSecurityContext()
           
 java.lang.String getServiceName()
           
 TopiaAssociationAuthorizationDAO getTopiaAssociationAuthorizationDAO()
          Permet de r�cup�rer le DAO dans le contexte de s�curit�.
 TopiaAuthorizationDAO getTopiaAuthorizationDAO()
          Permet de r�cup�rer le DAO dans le contexte de s�curit�.
 TopiaEntityAuthorizationDAO getTopiaEntityAuthorizationDAO()
          Permet de r�cup�rer le DAO dans le contexte de s�curit�.
 TopiaGroupDAO getTopiaGroupDAO()
          Permet de r�cup�rer le DAO dans le contexte de s�curit�.
 TopiaExpressionLinkDAO getTopiaIdLinkDAO()
          Permet de r�cup�rer le DAO dans le contexte de s�curit�.
 TopiaUserDAO getTopiaUserDAO()
          Permet de r�cup�rer le DAO dans le contexte de s�curit�.
 boolean postInit(TopiaContextImplementor context)
           
 boolean preInit(TopiaContextImplementor context)
           
 void putEntitiesLoadingCache(java.lang.String topiaId, boolean authorized)
          Permet de mettre dans le cache pour l'utilisateur en cours si il a droit l'autorisation ou non de charger une entit�.
 java.util.Set<java.security.Permission> putPermissionsCache(java.lang.String principalName)
          Permet d'ajouter dans le cache les permissions pour un principal donn�.
 void removeEntitiesLoadingCache(java.lang.String userPrincipal)
          Permet de supprimer un entr�e dans le cache pour un utilisateur
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TopiaSecurityServiceImpl

public TopiaSecurityServiceImpl()
Constructeur. Initialise la s�curit� � partir du contexte passer en param�tre

Method Detail

getServiceName

public java.lang.String getServiceName()
Specified by:
getServiceName in interface TopiaService

getPersistenceClasses

public java.lang.Class<?>[] getPersistenceClasses()
Specified by:
getPersistenceClasses in interface TopiaService

preInit

public boolean preInit(TopiaContextImplementor context)
Specified by:
preInit in interface TopiaService

postInit

public boolean postInit(TopiaContextImplementor context)
Specified by:
postInit in interface TopiaService

beginTransaction

public void beginTransaction(TopiaTransactionEvent event)
Permet de propager la s�curit� sur l'ensemble des contextes

Specified by:
beginTransaction in interface TopiaTransactionVetoable
Parameters:
event -

getSecurityContext

public TopiaContext getSecurityContext()
                                throws TopiaException
Throws:
TopiaException

getTopiaUserDAO

public TopiaUserDAO getTopiaUserDAO()
Permet de r�cup�rer le DAO dans le contexte de s�curit�.

Returns:
DAO du TopiaUser

getTopiaGroupDAO

public TopiaGroupDAO getTopiaGroupDAO()
Permet de r�cup�rer le DAO dans le contexte de s�curit�.

Returns:
DAO du TopiaGroup

getTopiaAuthorizationDAO

public TopiaAuthorizationDAO getTopiaAuthorizationDAO()
Permet de r�cup�rer le DAO dans le contexte de s�curit�.

Returns:
DAO du TopiaAuthorization

getTopiaEntityAuthorizationDAO

public TopiaEntityAuthorizationDAO getTopiaEntityAuthorizationDAO()
Permet de r�cup�rer le DAO dans le contexte de s�curit�.

Returns:
DAO du TopiaEntityAuthorization

getTopiaIdLinkDAO

public TopiaExpressionLinkDAO getTopiaIdLinkDAO()
Permet de r�cup�rer le DAO dans le contexte de s�curit�.

Returns:
DAO du TopiaExpressionLinkDAO

getTopiaAssociationAuthorizationDAO

public TopiaAssociationAuthorizationDAO getTopiaAssociationAuthorizationDAO()
Permet de r�cup�rer le DAO dans le contexte de s�curit�.

Returns:
DAO du TopiaAssociationAuthorization

putPermissionsCache

public java.util.Set<java.security.Permission> putPermissionsCache(java.lang.String principalName)
                                                            throws TopiaException
Permet d'ajouter dans le cache les permissions pour un principal donn�.

Parameters:
principalName - nom du principal pour lequel on doit charg� les permissions
Returns:
la liste des permissions
Throws:
TopiaException

getPermissionsCache

public java.util.Set<java.security.Permission> getPermissionsCache(java.lang.String principalName)
Permet de r�cup�rer depuis le cache les permissions pour un principal donn�.

Parameters:
principalName - nom du principal
Returns:
permmissions d'un principal

putEntitiesLoadingCache

public void putEntitiesLoadingCache(java.lang.String topiaId,
                                    boolean authorized)
Permet de mettre dans le cache pour l'utilisateur en cours si il a droit l'autorisation ou non de charger une entit�.

Parameters:
topiaId - identification de l'entit�
authorized - autorisation sur l'entit�, true pour autoris� et false pour non autoris�

getEntitiesLoadingCache

public java.lang.Boolean getEntitiesLoadingCache(java.lang.String topiaId)
Permet de r�cup�rer dans le cache pour l'utilisateur en cours si il a droit l'autorisation ou non de charger une entit�.

Parameters:
topiaId - identification de l'entit�
Returns:
autorisation sur l'entit�, true pour autoris� et false pour non autoris�

removeEntitiesLoadingCache

public void removeEntitiesLoadingCache(java.lang.String userPrincipal)
Permet de supprimer un entr�e dans le cache pour un utilisateur

Parameters:
userPrincipal - principal de l'utilisateur

containEntitiesLoadingCache

public boolean containEntitiesLoadingCache(java.lang.String topiaId)
Permet de tester le cache

Parameters:
topiaId - identification de l'entit�
Returns:
vrai si il trouve sinon faux

getRealExpressions

protected java.util.List<java.lang.String> getRealExpressions(java.lang.String topiaId)
Renvoi les identifiants qui remplacent l'identifiant en cours d'apr�s la table de correspondance TopiaExpressionLink.

Parameters:
topiaId - identifiant � remplacer
Returns:
retourne l'identifiant remplac�

getRealActions

protected int getRealActions(java.lang.String topiaId,
                             int actions)
Permet de determiner seulement les actions pour lesquelles on doit v�rifier les actions.

Parameters:
topiaId - identifiant de l'entit� ToPIA
actions - actions � v�rifier
Returns:
actions r�ellement � v�rifer

checkPermission

public void checkPermission(java.lang.Class<?> entityClass,
                            int actions)
                     throws java.lang.SecurityException
Description copied from interface: TopiaSecurityService
Vérifie si l'utilisateur actuellement loggué a le droit d'accéder à l'entité passée en paramètre pour les actions spécifiées.

Specified by:
checkPermission in interface TopiaSecurityService
Parameters:
entityClass - l'entité pour laquelle on vérifie les droits
actions - les actions [load, read, write, admin]
Throws:
java.lang.SecurityException

checkPermission

public void checkPermission(java.lang.String topiaId,
                            int actions)
                     throws java.lang.SecurityException
Description copied from interface: TopiaSecurityService
Vérifie si l'utilisateur actuellement loggué a le droit d'accéder à l'entité passée en paramètre pour les actions spécifiées.

Specified by:
checkPermission in interface TopiaSecurityService
Parameters:
topiaId - le topiaId de l'entité pour laquelle on vérifie les droits ou tout autre expression
actions - les actions [load, read, write, admin]
Throws:
java.lang.SecurityException


Copyright © 2004-2010 CodeLutin. All Rights Reserved.