2011-09-12 7 views
19

Ecco una parte da Spring Security esempio petclinic:Differenza tra access = "permitAll" e filters = "none"?

<http use-expressions="true"> 
    <intercept-url pattern="/" access="permitAll"/> 
    <intercept-url pattern="/static/**" filters="none" /> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 
    <form-login /> 
    <logout /> 
</http> 

Qual è la differenza tra l'accesso = "permitAll" e filtri = "none"?

Url:http://static.springsource.org/spring-security/site/petclinic-tutorial.html

risposta

28

La differenza è che filters = "none" disabilita filtri molla di sicurezza per gli URL specificati, mentre access = "permitAll" configura autorizzazione senza disattivare i filtri.

In pratica, filters = "none" potrebbe causare problemi quando le risorse dietro di esso richiedono alcune funzionalità di Spring Security. Ad esempio, non è possibile utilizzarlo per la pagina di registrazione utente che esegue l'accesso programmatico su submit (User Granted Authorities are always : ROLE_ANONYMOUS?).

+0

Quindi dovrei usare 'access =" permitAll "' invece di 'filters =" none "' anche per i file css e js per un'applicazione protetta? – kamaci

+0

Ho commentato anche il tuo link. – kamaci

+0

@kamaci: Per quanto ho capito, 'filters =" none "' non causa alcun problema per le risorse statiche. Tuttavia, se lo si utilizza per risorse dinamiche, è necessario tenere a mente la differenza. – axtavt