[英]Spring Security Filter Mapping - Disable on certain Url Pattern
我有以下servlet定义:
<servlet>
<servlet-name>licenseGenService</servlet-name>
<servlet-class>org.springframework.web.context.support.HttpRequestHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>licenseGenService</servlet-name>
<url-pattern>/remoting/licensing</url-pattern>
</servlet-mapping>
<!-- Restful API Servlet-->
<servlet>
<servlet-name>licensingRestService</servlet-name>
<servlet-class>
com.sun.jersey.spi.spring.container.servlet.SpringServlet
</servlet-class>
<init-param>
<param-name>
com.sun.jersey.config.property.packages
</param-name>
<param-value>
com.mydomain.licensing.rest
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>licensingRestService</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
然后是以下安全过滤器:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
所以基于我所读到的,带有/*
url模式被具有显式url的那些覆盖。 这适用于我的servlet。 问题是,我不希望licenseGenService
servlet需要基本身份验证。 如何将安全过滤器定义为仅应用于REST servlet,而不licenseGenService
?
您可以在应用程序上下文xml中配置需要授权的URL。
<http use-expressions="true">
<intercept-url pattern="/remoting/licensing/**" filters="none" />
</http>
我最终将以下内容放在我的安全应用程序上下文中:
<http pattern="/remoting/**" security="none"/>
这适用于Spring 3.1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.