j_scurity_check阻止其他servlet

时间:2015-11-14 22:15:52

标签: java html tomcat servlets jaas

我正在尝试将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)就可以实现。

有人可以帮忙吗?指出我正确的方向?打倒我的是一个愚蠢的错误(当然,礼貌地描述错误并提供可能的补救措施)?

感谢。

杰里

0 个答案:

没有答案