Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebLogic中部署的REST web服务的双重身份验证问题_Java_Java Ee 6_Weblogic11g_Basic Authentication - Fatal编程技术网

Java WebLogic中部署的REST web服务的双重身份验证问题

Java WebLogic中部署的REST web服务的双重身份验证问题,java,java-ee-6,weblogic11g,basic-authentication,Java,Java Ee 6,Weblogic11g,Basic Authentication,我有一个restful web服务,它使用HTTPBasic身份验证和LDAP提供者进行保护 将应用程序部署到WebLogic后,它会在调用时两次提示进行身份验证 首先是Spring安全,然后是WebLogic服务器 对该主题的进一步调查显示,使用HTTP基本身份验证的客户端请求必须通过WebLogic服务器身份验证,即使未对目标资源启用访问控制。 作为一个选项(答案中提供),可以通过config.xml中的以下配置禁用WebLogic的身份验证: <enforce-valid-basic

我有一个restful web服务,它使用
HTTPBasic
身份验证和
LDAP
提供者进行保护

将应用程序部署到WebLogic后,它会在调用时两次提示进行身份验证

首先是Spring安全,然后是WebLogic服务器

对该主题的进一步调查显示,使用HTTP基本身份验证的
客户端请求必须通过WebLogic服务器身份验证,即使未对目标资源启用访问控制。

作为一个选项(答案中提供),可以通过config.xml中的以下配置禁用WebLogic的身份验证:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>
false
但它将影响部署在同一域中的所有其他应用程序。我只想为一个特定的应用程序


感谢您的建议。

尝试在
config.xml
中禁用WebLogic的身份验证:

<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>
false
见例


因此,您可以在每个域的基础上打开或关闭此功能。如果您需要针对特定的应用程序,请考虑将该应用程序放置在专用域中。

在添加以下配置后开始工作。但需要在weblogic控制台中添加新用户,或者我们可以使用默认用户

在WEB-INF\WEB.xml文件中添加以下配置

  <security-constraint>
    <display-name>Secure REST Area</display-name>
    <web-resource-collection>
        <web-resource-name>Secure REST</web-resource-name>
        <url-pattern>/api/*</url-pattern>
        <http-method>POST</http-method>
    </web-resource-collection>

    <auth-constraint>
        <role-name>Admin</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>default</realm-name>
</login-config>

<security-role>
    <role-name>Admin</role-name>
</security-role>

安全休息区
安全休息
/原料药/*
邮递
管理
基本的
违约
管理
在WEB-INF\weblogic.xml中创建了weblogic描述符文件,并添加到以下配置中

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <security-role-assignment>
     <role-name>Admin</role-name>
     <!-- <principal-name>Administrators</principal-name>-->
     <externally-defined/>
 </security-role-assignment>

管理

解决方法,在web.xml中添加另一个身份验证方法:

<login-config>
    <auth-method>CLIENT-CERT</auth-method>
</login-config>


谢谢你,willie,但这将对部署在同一容器中的所有其他应用程序禁用weblogic basic auth。实际上,我不想对所有应用程序禁用weblogic auth,但只对特定应用程序禁用weblogic auth。从我提供的链接来看,这听起来像是全有或全无的事情。因此,您可能需要为相关应用程序创建一个专用WebLogic域。无论如何,请更新您的问题,以表明此附加约束。