1

ビューを装飾するために Sitemesh を使用する Spring MVC アプリケーションで、 type のsecModelというセキュリティ属性をすべてに注入したいと考えてい ます。WebSecurityExpressionRoot

このようにして、すべてのビューで hasAnyRole()、hasAuthority()... を呼び出すことができるため、管理者は基礎となるテンプレート エンジン ( Thymeleaf BTW) によって余分なものを提示されます。

オーバーライドされた postHandle(...) を使用したカスタムHandlerInterceptorAdapterは、これを達成するための Spring MVC の方法のようですが、一部のビューで参照しようとするたびに null になるため、私のマスター Sitemesh デコレータはセキュリティ属性を盗んでいるようです。

しかし、コントローラーの1つが影響を受けた後にレンダリングされたビューのみが影響を受け、マッピングされたビューにmvc:view-controllersec属性があります。

この問題を解決するために現在のセクションFilterに stash を書き込むことを検討していますが、何か不足している可能性があります。HttpServletRequest

前もって感謝します!

4

1 に答える 1

0

mvc:view-controllerビュー/パスがインターセプターに到達していると確信していますか?

また、Thymeleaf についてはわかりませんが、JSP を使用すると (例: JstlView)、Spring MVC はモデルをリクエスト属性にコピーします (ビューをレンダリングする目的で) - Sitemesh もリクエスト属性を介して値を取得するという事実は、私が思うに、結果。

于 2012-06-15T23:13:31.290 に答える