0

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

这就是我测试它的方式:

  1. 我从 WebSphere 中没有用户和组开始

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

  3. 我使用 WebSphere 管理控制台添加了一个用户/密码“rob/password”。我现在可以登录,但看不到页面。我收到“403:授权失败”错误。

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

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

知道我做错了什么吗?谢谢!

<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>

用户测试.jsp

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

2 回答 2

1

共有三个安全级别

  1. 行政级别
  2. 应用层
  3. Java 2 级

我假设您已打开应用程序级别(听起来您已打开但我想检查一下)

usertest.jsp 是否安全?

将角色映射到用户后是否重新启动了应用程序?

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

于 2012-05-23T02:54:00.493 回答
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>

应用程序.xml

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

检查两个xml文件

于 2019-05-06T11:24:59.140 回答