【发布时间】:2016-04-26 17:24:40
【问题描述】:
我已经配置了一个扩展 AbstractPreAuthenticatedProcessingFilter 的自定义 Pre Auth 过滤器。
据我了解,我可以指定哪些 URL 模式使用此过滤器,并指定我不想使用任何过滤器或安全性的任何 URL。
我正在使用 Spring Security 3.2 和 XML 配置,因此我认为这样的东西应该可以工作。
<security:http pattern="/login" use-expressions="true" security="none">
</security:http>
<security:http pattern="/home" use-expressions="true" auto-config="true"
entry-point-ref="http403EntryPoint">
<security:custom-filter position="PRE_AUTH_FILTER"
ref="openTokenFilter" />
<security:session-management
invalid-session-url="/login" />
<security:session-management>
<security:concurrency-control
max-sessions="1" error-if-maximum-exceeded="true" />
</security:session-management>
<security:access-denied-handler error-page="/login"/>
<security:logout delete-cookies="JSESSIONID"/>
</security:http>
通过为pattern="/login" 指定security="none",我认为这不会在访问“localhost:8080/login”时调用过滤器。但是,它仍然在调用过滤器。
过滤器似乎有一些全局设置,每个请求都会调用它。我使用的是 Spring Boot,所以我没有 web.xml 文件或任何自定义 servlet 配置。
基本上,我希望过滤器适用于除“/login”之外的每个 URL。
【问题讨论】:
-
您的登录页面有扩展名吗?在这种情况下使用模式 /login*
-
这只是一个简单的html文件,我试过了,但不幸的是没有任何作用。
标签: java xml spring spring-mvc spring-security