<http>
ノードの applicationContext-security.xml で spring-roo によって生成された構成ファイルで学習しているときに、spring-security を使用して Web を保護します。
<intercept-url pattern="/userses?form" access="hasRole('ROLE_ADMIN')" />
これは、Users オブジェクトを作成する場合、最初にログインして ADMIN 権限を取得する必要があることを意味します。しかし、実際にはうまくいきませんでした。ログを確認します。
2012-05-06 11:39:11,250 [http-8088-7] DEBUG org.springframework.security.web.util.AntPathRequestMatcher - Checking match of request : '/userses'; against '/userses?form'
フレームワークは、/userses?フォームの代わりに /userses を使用して比較します。文字列が一致しなかったため、認証プロセスがスキップされました。これを確認するために、別の URL も試します。
<intercept-url pattern="/userses/abc" access="hasRole('ROLE_ADMIN')" />
/userses/abc をリクエストしたところ、ユーザーが承認されていないことが検出され、/login ページに移動してログを確認しました。
2012-05-06 11:46:44,343 [http-8088-7] DEBUG org.springframework.security.web.util.AntPathRequestMatcher - Checking match of request : '/uesrses/abc'; against '/userses/abc'
だから私の質問は次のとおりです: spring-secure 3 は "?parameter" パターンをサポートしていませんか、これをサポートするために構成するものを逃しましたか? PS: すべてのコードは変更なしで roo によって生成されます。また、なぜ機能しないのか不思議です。