为什么我在这个简单的WebSphere示例web.xml中得到“Error 403:AuthorizationFailed”?

时间:2012-05-22 17:26:49

标签: java authentication websphere web.xml

我正在使用WebSphere 7.我有一个使用web.xml设置的简单示例,如下所示。

这是我测试它的方式:

  1. 我从没有用户开始,也没有WebSphere

  2. 中的组
  3. 我尝试访问该页面(/restricted/topsecret.html)我被提示登录。我不能。

  4. 我使用WebSphere管理控制台添加用户/密码“rob / password”。我现在可以登录,但是我看不到页面。我收到“403:AuthorizationFailed”错误。

  5. 我添加了一个名为“ROLE1”的组,并使用WebSphere管理控制台将该组分配给用户“rob”。我重新启动firefox,我仍然可以登录,但仍然会收到“403”错误。

  6. 我写了一个小JSP(下面)来输出登录的用户名,但即使在记录用户名后仍然是空的。

  7. 知道我做错了什么?谢谢!

    罗布

    <security-constraint>
      <web-resource-collection>
        <web-resource-name>page test 1</web-resource-name>
        <url-pattern>/restricted/topsecret.html</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
      </web-resource-collection>
      <auth-constraint>
        <role-name>ROLE1</role-name>
      </auth-constraint>
      <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
      </user-data-constraint>
    </security-constraint>
    

    usertest.jsp

    <%@ page session="true" %>
    Logged in username = '<%= request.getRemoteUser() %>' // is always null
    <p/>
    Logged in username = '<%= request.getUserPrincipal() %>' // is always null
    

2 个答案:

答案 0 :(得分:1)

有三个安全级别

  1. 管理级别
  2. 申请级别
  3. Java 2 Level
  4. 我假设你打开了应用程序级别(听起来你打开了它,但我想检查一下)

    usertest.jsp是否安全?

    在将Roles映射到用户后,您是否重新启动了应用程序?

    JSP中的代码(第一行在语法上看起来不太好。我假设错字)

答案 1 :(得分:0)

这是针对WAS 7的。我最近遇到了我们的应用程序抛出403错误的问题。

 ibm-application-bnd.xml
<security-role name="DefaultRole">
        <special-subject type="ALL_AUTHENTICATED_USERS" /></security-role>
    <security-role name="NoSecurity">
        <special-subject type="EVERYONE" /></security-role></application-bnd>

application.xml

<security-role>
    <role-name>DefaultRole</role-name>
  </security-role>
  <security-role>
    <role-name>NoSecurity</role-name>
  </security-role>

检查两个xml文件