2013-02-06 61 views
0

我在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)。我在MyFilter中打印用户名和会话ID的值。当会话超时时,会打开页面action.jsp,并在筛选器日志中显示username为空。但它不会重定向到登录页面。 可能是什么问题?

LoginServlet只是重定向到登录页面。

response.sendRedirect(response 
       .encodeRedirectURL("/WebFwCore/web/pages/main.jsp")); 

和过滤器我打印

request.getRemoteUser(); 
    request.isUserInRole('something'); 

这是未来空 并在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> 
+0

你的会话检查代码是什么?并在'LoginServlet'中验证代码验证 – TheWhiteRabbit

+0

编辑该问题。 – sabu

+0

会话如何与请求绑定?用户可以用新请求登录哪个会话超时! – TheWhiteRabbit

回答

0

在LoginServlet

  • CH埃克使用request.getSession(false);

  • Request会议,如果会议为空,重定向到loginpage

  • 务必检查请求之前检查的会议,因为请求可以是新鲜的(与身份验证一起),但早先的要求,会话限制可能已经过期

  • 或者,您可以使用会话侦听器来控制会话过期并根据应用需求采取适当的行动。

+0

,但不应该基于身份验证应该照顾到这一点。如果会话过期,它将自动重定向到/LoginServlet中指定的页面。它正在为所有其他页面正常工作。如果我尝试从同一个WebApp打开不同的页面,它将重定向到loginServlet。但只能在一页中。 – sabu

+0

是角色中的用户 - '是',你还记得他现有的会话 - 'Nah' – TheWhiteRabbit

+0

抱歉不能跟着你.. :( – sabu

相关问题