認証にSpring Securityを使用して、Spring + struts2 + hibernateの統合に取り組んでいます。application-security.xml
ファイルは次のとおりです。
<http>
<intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/**" filters="none" />
<form-login login-page="/login.jsp" default-target-url="/homePage.action" authentication-failure-url="/login-fail.jsp"/>
<logout logout-success-url="/logged_out.jsp" />
</http>
問題は、ユーザーが認証され、リクエストが に転送されるときに、クラス (struts のアクション クラス)/homePage.action
に入ることができないことです。userid
homePage.action
以下はコードです:
UserDetails userDetails = (UserDetails)
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
コードをデバッグしたところ、リクエストが に転送されると/homePage.action
、SecurityContextHolder
値がクリアされることがわかりました。
これをクラスuserid
で利用できるようにする方法はありますか?homepage.action
私はたくさん検索しましたが、最終的にはできませんでした。カスタム フィルターの実装を記述し、スプリング セキュリティ フィルター チェーンにフックする必要があるようです (セッション管理がスプリング レベルでのみ行われるように)。
誰でもポインタを与えることができますか?