2

助けてください。Tomcat と JAAS モジュールでアプリケーションを実行しています。JAAS の前は、httprequest からいくつかのパラメーターを取得するためにフィルターを使用していました。このフィルターでは、jaas ログインで LoginContext を作成し、login() メソッドを呼び出します。すべてうまくいき、コミットは true を返し、すべて問題ありません。

私はセッションから件名を取得します:

session.setAttribute("javax.security.auth.subject", subject); 

この件名では、作成されたプリンシパルを配置します。問題は、ログイン後、すべてがこのログインが呼び出されなかったようになることです。その後、ユーザーは認証されず、空白のページになります。なにが問題ですか?

Tomcat は私が作成した LoginContext などを受け入れないと思いますが、それを修正するにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1

2

http://www.coderanch.com/t/466744/Servlets/java/Set-user-principal-filterを見てください。スレッドで次のことを確認できます: リクエストの getUserPrincipal() と isUserInRole() は、コンテナーによって提供される機能を経由しない限り、通常は入力されません。

あなたの場合、リンクのように RequestWrapper を作成し、RequestWrapper にユーザーを設定する必要があります。

于 2012-11-02T06:40:17.257 に答える