2

同じフィルターを適用するパターンが2つあります。

<security:filter-chain pattern="/home.do*" filters="a,b,c,d" />
<security:filter-chain pattern="/login.do*" filters="a,b,c,d" />

上記の2つに加えて、他の多くのユニークなパターンと一般的なパターン/**/*.do*/**もあります。

以下のように、パターン属性でコンマ区切りの複数のパターンを指定できますか?

<security:filter-chain pattern="/home.do*, /login.do*" filters="a,b,c,d" />

4

1 に答える 1

6

はい、できますが、実装は使用している Spring Security のバージョンによって異なります。

  • 3.0 では、次のpath-type属性を使用できます。

    <security:filter-chain-map path-type="regex">
      <security:filter-chain pattern="^/(test|home)\.do$" filters="a,b,c,d" />
      <!-- other patterns -->
    <security:filter-chain-map path-type="regex">
    
  • 3.1 では、属性を使用するか(前の例で path-type を request matcher に変更するだけで、request-matcherを非推奨にします)、またはbean で複数の要素を使用してこれを行うことができます。path-typehttprequest-matcher-ref

    <http pattern="test.do,home.do" security="none" <!-- 'none' as example -->
        request-matcher-ref="requestMatcher" />
    
    <bean id="requestMatcher" class="com.example.CommaSeparatedRequestMatcher" />
    

    たとえば. CommaSeparatedRequestMatcher_RegexRequestMatcher

于 2012-07-13T14:43:20.583 に答える