Tomcat の web.xml でフォームベースの認証を使用しています。
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Example Form-Based Authentication Area</realm-name>
<form-login-config>
<form-login-page>/LoginServlet</form-login-page>
<form-error-page>/LoginServlet</form-error-page>
</form-login-config>
</login-config>
私の WebApp には、「Action.jsp」ページとフィルター (MyFilter.java) があります。ユーザー名とセッション ID の値を MyFilter に出力しています。セッションがタイムアウトすると、ページ action.jsp が開かれ、フィルター ログにユーザー名が null として表示されます。ただし、ログインページにはリダイレクトされません。何が問題なのですか?
LoginServlet は単にログイン ページにリダイレクトします。
response.sendRedirect(response
.encodeRedirectURL("/WebFwCore/web/pages/main.jsp"));
そしてフィルターで私は印刷しています
request.getRemoteUser();
request.isUserInRole('something');
これはnullになり、web.xmlになります
<web-resource-name>View pages</web-resource-name>
<url-pattern>/jsp/ann/ann_main.jsp</url-pattern>
<url-pattern>/jsp/ann/ann_tcu.jsp</url-pattern>
<url-pattern>/jsp/ann/import_ann_files.jsp</url-pattern>
<url-pattern>/jsp/dtmf/dtmf.jsp</url-pattern>
<url-pattern>/jsp/languagetah/languagetag.jsp</url-pattern>
<url-pattern>/jsp/languagetah/action.jsp</url-pattern>
<url-pattern>/jsp/languagetah/languagetag_load_result.jsp</url-pattern>
<url-pattern>/jsp/languagetah/languagetag_load_error_detail.jsp</url-pattern>
<url-pattern>/jsp/tone/tone.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>fsNetworkingView</role-name>
<role-name>fsNetworkingManage</role-name>
<role-name>fsWebUIAllowAll</role-name>
</auth-constraint>