access="permitAll" 和 filters="none" 的区别?
Posted
技术标签:
【中文标题】access="permitAll" 和 filters="none" 的区别?【英文标题】:Difference between access="permitAll" and filters="none"? 【发布时间】:2011-11-15 13:04:16 【问题描述】:这是 Spring Security 宠物诊所示例的一部分:
<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" 和 filters="none" 有什么区别?
网址: http://static.springsource.org/spring-security/site/petclinic-tutorial.html
【问题讨论】:
【参考方案1】:区别在于filters = "none"
对指定的 URL 禁用 Spring Security 过滤器,而 access = "permitAll"
配置授权而不禁用过滤器。
在实践中,filters = "none"
可能会在其背后的资源需要 Spring Security 的某些功能时引起问题。例如,您不能将其用于在提交时执行程序登录的用户注册页面 (User Granted Authorities are always : ROLE_ANONYMOUS?)。
【讨论】:
那么我应该使用access = "permitAll"
而不是filters = "none"
,即使是用于安全应用程序的css和js文件?
我也评论了你的链接。
@kamaci:据我了解,filters = "none"
不应该对静态资源造成任何问题。但是,如果您将其用于动态资源,则需要牢记区别。
所以我会使用 filters="none" 来处理静态资源?
@kamaci:是的,我认为将filers = "none"
用于静态资源不会造成任何问题。以上是关于access="permitAll" 和 filters="none" 的区别?的主要内容,如果未能解决你的问题,请参考以下文章
spring security login csrf 失效问题
如何通过在 IIS 8 中使用“Access-Control-Allow-Origin”来允许多个域
DoCmd.OutputTo 方法:为 Access 2003 和 2010 打开的 Excel 格式