Weblogic服务器BASIC身份验证不提示输入用户名

时间:2012-12-07 00:39:46

标签: basic-authentication weblogic-10.x

我使用BASIC身份验证创建了一个非常简单的Weblogic 10.3.5 Web应用程序,由于某种原因,它不会提示用户名和密码。我相信web.xml和weblogic.xml是正确创建的。 整个应用程序位于下方。

它由两个文件组成:

  1. index.html - 任何人都应该能够加载
  2. remoteuser.jsp - 只有' group'应该能够加载
  3. 我为所有JSP(* .jsp)添加了<auth-constraint>,这样只有&#39; group&#39;应该能够加载它们。但是,当我加载网址&#34; /remoteuser.jsp"时,它会显示&#34; The remote user is null&#34;,并且不会提示输入用户名和密码。导致JSP也打印出null而不是远程用户的名称。

    <auth-method>当然是设置为BASIC。

    我目前还没有在Weblogic的安全领域中定义任何组,因为我想先看它失败。

    根据此Weblogic文档(http://docs.oracle.com/cd/E15051_01/wls/docs103/security/thin_client.html#wp1037337),我相信我正确地做了一切。

    我是否必须修改Weblogic Security Realm的身份验证提供程序?还是其他一些设置?

    知道我做了些傻事,但却看不到它。请帮忙!


    消息来源

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

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

    的index.html

    <html>
    <head><title>WebLogic Test</title></head>
    
    <body>
        <h1>Everyone should be able to see this.<br>
    </body>
    </html>
    

2 个答案:

答案 0 :(得分:0)

嗯......它现在正在运作,但我并不完全确定我做了什么导致这一点。

我知道在使用“DD Only”或“Custom Roles”的安全模型部署应用程序时它可以正常工作。

然而,当使用“自定义角色和策略”部署时失败,这对我来说似乎非常混乱,因为对此的描述是Use only roles and policies that are defined in the Administration Console.而这正是我定义角色和策略的地方!叹息。

答案 1 :(得分:-1)

您正在web.xml / weblogic.xml上定义角色和策略。

如果您想使用自定义角色和策略,您可以在应用程序角色n策略中从控制台进行配置。