2011-06-23 3 views
5

Sto creando il progetto Spring 3 che utilizza Spring Security.Carica intercetta url dal DB in Spring Security 3.0.2

Questo fa parte del mio file contesto di protezione corrente:

<http auto-config="true" use-expressions="true" > 
    <intercept-url pattern="/login.htm" access="permitAll"/> 
    <intercept-url pattern="/admin/*" access="hasRole('ROLE_ADMIN') and fullyAuthenticated"/> 
    <intercept-url pattern="/hello*" access="hasRole('ROLE_ANONYMOUS')"/> 

Tutto questo URL voglio caricare da DB (da qualche DAO). cioè voglio controllare i diritti di accesso per qualsiasi url dinamicamente

Come posso farlo nel modo giusto.

risposta

2

È possibile farlo utilizzando Domain Object Security (ACLs).

Oppure è possibile implementare una sottoclasse di AbstractSecurityInterceptor.

Oppure è possibile farlo in codice ad-hoc; Ad esempio, implementare i controlli di accesso da qualche parte all'interno del controller e lanciare un AuthenticationException se il richiedente non dispone dei diritti richiesti.

Tutti questi finiscono con un filtro SpringSecurity che cattura uno AuthenticationException in uscita e intraprende l'azione appropriata; per esempio. reindirizzamento a una pagina di accesso o restituire una risposta con stato "accesso negato".

+0

Non sono sicuro ma, penso di dover utilizzare gli ACL, – erko