我使用基本身份验证创建了一个非常简单的 Weblogic 10.3.5 Web 应用程序,由于某种原因它不会提示输入用户名和密码。我相信 web.xml 和 weblogic.xml 是正确创建的。整个应用程序如下。
它由两个文件组成:
- index.html - 任何人都应该能够加载
- remoteuser.jsp——只有“组”中的人才能加载
我<auth-constraint>
为所有 JSP (*.jsp) 添加了一个,这样只有“组”中的用户才能加载它们。但是,当我加载 url“/remoteuser.jsp”时,它会显示“ The remote user is null
”,并且不会提示输入用户名和密码。这会导致 JSP 也打印出来null
而不是远程用户的名称。
<auth-method>
当然,设置为 BASIC 。
我目前什至没有在 Weblogic 的安全领域中定义任何组,因为我想先看到它失败。
根据这个 Weblogic 文档(http://docs.oracle.com/cd/E15051_01/wls/docs103/security/thin_client.html#wp1037337),我相信我做的一切都是正确的。
我是否必须修改 Weblogic 安全领域的身份验证提供程序?还是其他设置?
我知道我在做一些愚蠢的事情,但看不到它。请帮忙!
源文件
web.xml
<web-app>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>JSPs</web-resource-name>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>group</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>group</role-name>
</security-role>
</web-app>
weblogic.xml
<weblogic-web-app>
<security-role-assignment>
<role-name>group</role-name>
<principal-name>group</principal-name>
</security-role-assignment>
</weblogic-web-app>
远程用户.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Remote User</title>
</head>
<body>
<p>
Only users in "group" should be able to load this page.
</p>
<p>
The remote user is <%= request.getRemoteUser() %>
</p>
</body>
</html>
索引.html
<html>
<head><title>WebLogic Test</title></head>
<body>
<h1>Everyone should be able to see this.<br>
</body>
</html>