org.nuiton.topia.security
Class TopiaSecurityServiceImpl

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

public class TopiaSecurityServiceImpl
extends 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(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(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(String topiaId)
          Permet de tester le cache
 Boolean getEntitiesLoadingCache(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é.
 Set<Permission> getPermissionsCache(String principalName)
          Permet de récupérer depuis le cache les permissions pour un principal donné.
 Class<?>[] getPersistenceClasses()
           
protected  int getRealActions(String topiaId, int actions)
          Permet de determiner seulement les actions pour lesquelles on doit vérifier les actions.
protected  List<String> getRealExpressions(String topiaId)
          Renvoi les identifiants qui remplacent l'identifiant en cours d'aprés la table de correspondance TopiaExpressionLink.
 TopiaContext getSecurityContext()
           
 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(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é.
 Set<Permission> putPermissionsCache(String principalName)
          Permet d'ajouter dans le cache les permissions pour un principal donné.
 void removeEntitiesLoadingCache(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 String getServiceName()
Specified by:
getServiceName in interface TopiaService

getPersistenceClasses

public 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 Set<Permission> putPermissionsCache(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 charger les permissions
Returns:
la liste des permissions
Throws:
TopiaException

getPermissionsCache

public Set<Permission> getPermissionsCache(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(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 Boolean getEntitiesLoadingCache(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(String userPrincipal)
Permet de supprimer un entrée dans le cache pour un utilisateur

Parameters:
userPrincipal - principal de l'utilisateur

containEntitiesLoadingCache

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

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

getRealExpressions

protected List<String> getRealExpressions(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(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(Class<?> entityClass,
                            int actions)
                     throws 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:
SecurityException - if any security issues

checkPermission

public void checkPermission(String topiaId,
                            int actions)
                     throws 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:
SecurityException - if any security issues


Copyright © 2004-2011 CodeLutin. All Rights Reserved.