Tomcat表单身份验证:从索引页面而不是登录页面登录

时间:2014-05-15 14:17:02

标签: java-ee tomcat

我正在使用基于表单的身份验证,因此用户必须登录才能查看某些受保护的页面。 这工作正常,但我希望能够在尝试访问任何受保护资源之前登录。当我将表单放在我的index.jsp页面中时,我得到一个"无效的直接引用以形成登录页面"登录时出错。我的问题:是否可以直接从索引页面(或任何其他页面登录,然后重定向到登录页面)?

1 个答案:

答案 0 :(得分:1)

如果您使用Tomcat版本7或更高版本,则可以使用。

在此版本中为landingPage添加了FormAuthenticator属性,该属性可以从描述中执行您想要的操作:

  

如果进程被滥用,则控制FORM身份验证过程的行为,例如,通过直接请求登录页面或延迟登录以及>会话过期的方式来控制。如果设置了此属性,而不是返回错误响应代码,则>如果登录表单是使用有效凭据提交的,则Tomcat会将用户重定向到指定的目标网页。

请参阅Tomcat 7 documentation

要添加该属性,您必须修改要添加的<Context>,例如:

<Valve className="org.apache.catalina.authenticator.FormAuthenticator" landingPage="exemple.jsp" />

在安全约束下使用exemple.jsp