我正在尝试将jaas代码强加到一个可用的Web应用程序上,让我们使用Eclipse Luna和Tomcat 8将其命名为iBook。
Webcontent文件夹包含一个index.html,以及jaas login.html和error.html(虽然我将错误页面称为signup.html)。
我试图在jaas控制下放置的资源是编辑器文件夹,a.k.a。/ iBook / editor。
当我转到我的应用程序的index.html时,我被重定向到jaas login.html,其中包含指向j_security_check的表单,该表单确实有效 - 如果我输入伪造凭据,我会被拒绝服务,发送到控制台的“无凭据”异常。
但login.html页面还包含一些其他表单,以允许1)现场用户帐户创建,2)处理忘记密码,以及3)更改密码。这些表单中的每一个都指向servlet ManageUserAccounts。我希望通过它来管理用户帐户。
web.inf中的security-constraint元素如下所示:
<security-constraint>
<web-resource-collection>
<web-resource-name>IBook Editor</web-resource-name>
<url-pattern>/editor/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>admin</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/signup.jsp</form-error-page>
</form-login-config>
</login-config>
当我评论安全约束时,管理帐户servlet工作。约束到位后,管理帐户不起作用。
我在doPost()方法中有一个断点,当安全约束处于活动状态时我无法触及,但我只需通过注释掉约束(并将Web应用程序重新部署到Tomcat)就可以实现。
有人可以帮忙吗?指出我正确的方向?打倒我的是一个愚蠢的错误(当然,礼貌地描述错误并提供可能的补救措施)?
感谢。
杰里