2011-09-12 18 views
19

İşte Spring Security petclinic örneğinden bir örnek:Access = "permitAll" ve filters = "none" arasındaki fark?

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

access = "permitAll" ve filters = "none" arasındaki fark nedir?

URL'si:http://static.springsource.org/spring-security/site/petclinic-tutorial.html

cevap

28

fark access = "permitAll" filtre devre dışı bırakmadan yetkilendirme yapılandırır ise filters = "none", URL'lerin Spring Güvenlik filtreler devre dışı olmasıdır. Pratikte, filters = "none" uygulamada, kaynakların arkasında Spring Security'nin bazı işlevlerini gerektirdiğinde sorunlara neden olabilir. Örneğin, kullanıcı kayıt sayfası için gönderim sırasında programlı oturum açma işlemi gerçekleştiren (User Granted Authorities are always : ROLE_ANONYMOUS?) kullanamazsınız.

+0

Güvenli bir uygulama için css ve js dosyaları için bile 'filters =" none "' yerine 'access =" permitAll "' ı kullanmalıyım? – kamaci

+0

Bağlantınıza da yorum yaptım. – kamaci

+0

@kamaci: Anladığım kadarıyla, 'filters = "none" 'statik kaynaklar için herhangi bir soruna yol açmıyor. Ancak, bunu dinamik kaynaklar için kullanırsanız, farkı göz önünde bulundurmanız gerekir. – axtavt