我有一个spring security,它有这样的配置。
<security:http use-expressions="true" create-session="stateless"
entry-point-ref="loginAuthenticationEntryPoint">
<security:custom-filter ref="preAuthFilter" position="PRE_AUTH_FILTER"/>
<security:intercept-url pattern="/product/test/**" access="permitAll"/>
<security:intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>
</security:http>
我的preAuthFilter会过滤所有请求,如果收到的xml格式错误,则会抛出错误消息,但我希望获得免税。例如,我想添加另一个<security:intercept-url />
,它有自己的custom-filter
。
或者是否可以有另一个认证入口点?然后我将添加我的自定义过滤器
怎么能实现这个?有任何想法吗?
感谢。
答案 0 :(得分:1)
没有模式属性的security:http
标记默认为所有请求。您可以添加另一个security:http
,其pattern
属性指向特定的网址格式,并将其声明在您已经拥有的security:http
上方,因为应该首先声明更具体的一个。{1}}。在那里,您可以再次为特定网址配置过滤器。 Spring Security首先使用security:http
中声明的模式检查传入的URL。如果不匹配,则会绕过security:http
内部的其他配置,并有效地移动到下一个security:http
,而不会 pattern
属性。