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>

私のフィルターマッピングはすでに/*として定義されているので、私が疑問に思っているのはです。なぜもう1つフィルターマッピングを定義する必要があるのですか。

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 に答える