私はSpring Securityを少しいじっていて、次の奇妙な点に気づきました。
<http>
セキュリティ コンテキスト XML でこのようなブロックを指定すると、 .
<http>
<http-basic/>
<port-mappings>
<port-mapping http="8080" https="8181"/>
</port-mappings>
<intercept-url pattern="/url1**" access="ROLE_ROLE1" requires-channel="https"/>
<intercept-url pattern="/url2**" access="ROLE_ROLE2"/>
<intercept-url pattern="/url3**" access="ROLE_ROLE3" />
<!-- <intercept-url pattern="/**" access="ROLE_ADMIN" />
</http>
ブラウザでさまざまな URL にアクセスすると、すべての URL で HTTP 基本認証のポップアップが表示されるようです。
これは良いことであり、私が期待したことですが、メソッド パラメーターをインターセプト URL の 1 つに追加すると、次のようになります。
<http>
<http-basic/>
<port-mappings>
<port-mapping http="8080" https="8181"/>
</port-mappings>
<intercept-url pattern="/url1**" access="ROLE_ROLE1" requires-channel="https"/>
<intercept-url pattern="/url2**" access="ROLE_ROLE2" method="GET"/>
<intercept-url pattern="/url3**" access="ROLE_ROLE3" />
<!-- <intercept-url pattern="/**" access="ROLE_ADMIN" />
</http>
基本認証は、メソッドを明示的に設定したものを除くすべての URL でオフになっています ( /url2
)。
私には少しばかげているように見えるので、これが機能するはずの方法ですか。これはバグですか?