org.nuiton.topia.taas
Class TaasService

java.lang.Object
  extended by org.nuiton.topia.taas.TaasService
All Implemented Interfaces:
EventListener, TopiaTransactionVetoable, TopiaService

public class TaasService
extends Object
implements TopiaService, TopiaTransactionVetoable

Service pour la sécurité

Pour utiliser le service taas, il suffit de rajouter les lignes suivantes dans le TopiaContext.properties :

topia.service.taas=org.nuiton.topia.taas.TaasService topia.service.taas.event=org.nuiton.topia.taas.event.TaasEntityVetoable topia.service.taas.subject=org.nuiton.topia.taas.jaas.TaasSubjectImpl

Author:
julien

Field Summary
static String SERVICE_EVENT
           
static String SERVICE_LOGIN_MODULE
           
static String SERVICE_NAME
           
static String SERVICE_SUBJECT
           
static String TOPIA_SERVICE_TAAS
           
 
Constructor Summary
TaasService()
          Contructeur par defaut
 
Method Summary
 void beginTransaction(TopiaTransactionEvent event)
           
 void check(Collection<? extends TopiaEntity> entities, int actions)
          Permet de verifier les authorizations sur une collection et de supprimer les donnees non autorisées
 void check(String topiaId, int actions)
          Permet de vérifier les authorizations
 void check(TopiaEntity entity, int actions)
          Permet de vérifier les authorizations
protected  void checkPermission(Subject subj, Permission myp)
          Hack pour faire fonctionner la security.
 void checkRequestPermission(Collection<? extends TopiaEntity> entities, int actions)
          Permet de vérifier les authorizations sur une collection et de supprimer les données non autorisées
 void checkRequestPermission(TopiaEntity entity, int actions)
          Permet de vérifier les authorizations
 Subject findSubject()
          Permet de récupérer le subject en cours
 Class<?>[] getPersistenceClasses()
           
 List<Permission> getRequestPermission(TopiaEntity entity, int actions)
          Récupération des requests permissions dans les DAOs
 TopiaContextImplementor getRootContext()
          Permet d'obtenir le context root
 TopiaContext getRootContextNoSecure()
          Permet de recuperer un context root sans securite
 String getServiceName()
           
static Class<?>[] getTaasPersistenceClasses()
           
 boolean postInit(TopiaContextImplementor context)
           
 boolean preInit(TopiaContextImplementor context)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SERVICE_NAME

public static final String SERVICE_NAME
See Also:
Constant Field Values

SERVICE_LOGIN_MODULE

public static final String SERVICE_LOGIN_MODULE

SERVICE_EVENT

public static final String SERVICE_EVENT
See Also:
Constant Field Values

SERVICE_SUBJECT

public static final String SERVICE_SUBJECT
See Also:
Constant Field Values

TOPIA_SERVICE_TAAS

public static final String TOPIA_SERVICE_TAAS
See Also:
Constant Field Values
Constructor Detail

TaasService

public TaasService()
Contructeur par defaut

Method Detail

getPersistenceClasses

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

getTaasPersistenceClasses

public static Class<?>[] getTaasPersistenceClasses()

getServiceName

public String getServiceName()
Specified by:
getServiceName in interface TopiaService

preInit

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

beginTransaction

public void beginTransaction(TopiaTransactionEvent event)
Specified by:
beginTransaction in interface TopiaTransactionVetoable

postInit

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

getRootContext

public TopiaContextImplementor getRootContext()
Permet d'obtenir le context root

Returns:
context root

getRootContextNoSecure

public TopiaContext getRootContextNoSecure()
                                    throws TopiaException
Permet de recuperer un context root sans securite

Returns:
context root non securise
Throws:
TopiaException

findSubject

public Subject findSubject()
Permet de récupérer le subject en cours

Returns:
subject

check

public void check(Collection<? extends TopiaEntity> entities,
                  int actions)
           throws SecurityException
Permet de verifier les authorizations sur une collection et de supprimer les donnees non autorisées

Parameters:
entities - collection d'entites
actions - actions
Throws:
SecurityException - en cas d'erreur de sécurité

check

public void check(TopiaEntity entity,
                  int actions)
           throws SecurityException
Permet de vérifier les authorizations

Parameters:
entity - entité
actions - actions
Throws:
SecurityException - en cas d'erreur de sécurité

check

public void check(String topiaId,
                  int actions)
           throws SecurityException
Permet de vérifier les authorizations

Parameters:
topiaId - id de l'entite
actions - actions
Throws:
SecurityException - en cas d'erreur de sécurité

checkPermission

protected void checkPermission(Subject subj,
                               Permission myp)
Hack pour faire fonctionner la security. Normalement cette methode devrait etre seulement
 AccessController.checkPermission(myp);
 
Mais comme ca ne fonctionne pas et pas vraiment de raison. Que le code au final a seulement besoin de checker les TaasPermissions des principales du subject. Cette methode est plus simple et plus rapide que le mode normal.

Parameters:
subj -
myp -

checkRequestPermission

public void checkRequestPermission(TopiaEntity entity,
                                   int actions)
                            throws SecurityException
Permet de vérifier les authorizations

Parameters:
entity - entité
actions - actions
Throws:
SecurityException - en cas d'erreur de sécurité

checkRequestPermission

public void checkRequestPermission(Collection<? extends TopiaEntity> entities,
                                   int actions)
                            throws SecurityException
Permet de vérifier les authorizations sur une collection et de supprimer les données non autorisées

Parameters:
entities - collection d'entités
actions - actions
Throws:
SecurityException - en cas d'erreur de sécurité

getRequestPermission

public List<Permission> getRequestPermission(TopiaEntity entity,
                                             int actions)
Récupération des requests permissions dans les DAOs

Parameters:
entity - entité
actions - actions
Returns:
permissions à vérifier


Copyright © 2004-2012 CodeLutin. All Rights Reserved.