3

我创建了一个弹簧安全过滤器,如下所示。

<!-- Enables Spring Security -->
    <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>
<!-- End Spring Security -->

<servlet>
    <servlet-name>remoting</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-        
class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/remoting-servlet.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/remoting/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>remoting</servlet-name>
    <url-pattern>/admin</url-pattern>
</servlet-mapping>

除此之外,我可以保证一切都是正确的。但我唯一的问题是,

当我访问链接时http://localhost:8080/myContext/remoting/Services,不会调用 Spring Filter 进行身份验证,而是直接访问我的服务。

当我在 web.xml 中添加以下行时。它工作正常。

<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/remoting/*</url-pattern>
</filter-mapping>

我有什么疑问,因为我的过滤器映射已经定义为 /*。我为什么要再定义一个过滤器映射。

4

1 回答 1

0

它成功地为我工作,因为我在 spring-security.xml 中添加了以下代码片段

 <http auto-config="true">
    <intercept-url pattern="/**" access="ROLE_USER" />// pattern was modified to /**
    <http-basic/>
</http>
于 2012-06-21T11:14:10.200 回答