2015-09-21 204 views
0

确保Web应用程序安全的标准方法是禁止对所有内容进行未经身份验证的访问并白名单特定的资源。使用弹簧安全性将白名单列入白名单

以下XML片段的所有允许访问的资源,用不同的含义虽:

<http pattern="/favicon.ico" security="none" /> 

<intercept-url pattern="/favicon.ico" filters="none" /> 

<intercept-url pattern="/favicon.ico" access="permitAll"/> 

<intercept-url pattern="/favicon.ico" access="ROLE_ANONYMOUS" /> 

<intercept-url pattern="/favicon.ico" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 

应该使用什么时候,在什么情况下?

回答

0

嗨请查看下面提到的每个人的用例。

< HTTP模式= “/ favicon.ico的” 安全= “无”/ > 这个过滤器链可以在登录页面用于从安全删除。

<截距-URL模式= “/ favicon.ico的” 过滤器= “无”/ > 所有这截距URL的第一个是从3.1版本弹簧安全的不兼容。如果您使用的版本低于3.1,则可以使用相同的目的 < http pattern =“/ favicon.ico”security =“none”/ >

<拦截的URL模式=“/ favicon.ico的”访问=“permitAll”/> 此拦截网址,你可以在情况下使用,如果需要给所有允许用户谁拥有认证的访问。

<拦截的URL模式= “/ favicon.ico的” 访问= “ROLE_ANONYMOUS”/ > 这可以让你的ROLE_ANONYMOUS只能访问模式。

<拦截的URL模式=“/ favicon.ico的”访问=“IS_AUTHENTICATED_ANONYMOUSLY”/>

1
<http pattern="/favicon.ico" security="none" /> 

将完全绕过安全过滤器,这通常是你想要的那种做什么我们正在处理的资源(即favicon.ico)。

如果你

<intercept-url pattern="/favicon.ico" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 

你仍然能够获得关于当前登录的用户(如果有的话)渲染资源时呈现一个页面,应该没有登录访问的时候(可能是有用的信息但如果用户已登录,您仍然希望能够呈现例如呈现页面上的用户名称)。

permitAll是一样的东西,但是有EL语法。

ROLE_ANONYMOUS似乎授予对匿名用户的访问权限,但拒绝经过反证的用户。

<intercept-url pattern="/favicon.ico" filters="none" /> 

是旧的语法,就我所知它不再被支持。