在weblogic服务器上将enforce-valid-basic-auth-credentials设置为false时会产生什么后果

时间:2016-11-03 09:28:44

标签: java authentication spring-boot weblogic

在我的weblogic服务器中,我有应用程序,其中启用了基本身份验证(web.xmlweblogic.xml)。现在我将spring-boot应用程序从tomcat移植到weblogic,其中基本身份验证也在应用程序层上。因此,当我移植它时,它不起作用,我需要将enforce-valid-basic-auth-credentials设置为false。现在我希望我能重构我在同一个域上运行的第一个应用程序(它在虚拟主机上运行),但似乎身份验证仍然在这个应用程序中运行。那么当我在生产服务器上设置这个选项会产生什么后果呢?

1 个答案:

答案 0 :(得分:3)

它影响的地方?

  

enforce-valid-basic-auth-credentials标志会影响整个标志   域。因此,它适用于您的两个项目。

默认情况下,enforce-valid-basic-auth-credentials标志为true,并执行WebLogic Server身份验证。如果身份验证失败,则拒绝该请求。因此,WebLogic Server必须了解用户和密码。

如果您依赖备用身份验证机制,则可能需要更改默认行为。例如,您可以使用后端Web服务对客户端进行身份验证,而WebLogic Server无需了解该用户。启用默认身份验证实施后,Web服务可以执行自己的身份验证,但前提是WebLogic Server身份验证首次成功。

如果明确将enforce-valid-basic-auth-credentials标志设置为false,则WebLogic Server不会对未对其启用目标资源的访问控制的HTTP BASIC身份验证客户端请求执行身份验证。

资源链接:

  1. Understanding BASIC Authentication with Unsecured Resources
  2. WebLogic bypass basic authentication
  3. Oracle说有关enforce-valid-basic-auth-credentials的内容是什么?

      

    默认情况下启用Oracle WebLogic Server身份验证。然而,   此配置会阻止Oracle WebLogic Server使用   应用程序管理认证您必须禁用Oracle WebLogic   通过设置服务器身份验证   enforce-valid-basic-auth-credentials参数为false。

         

    程序

         

    禁用Oracle WebLogic Server身份验证:

         
        
    1. 在文本编辑器中,打开部署IBM CMIS for Content Manager OnDemand的域的config.xml文件。 config.xml   文件在   Oracle / Middleware / user_projects / domains / domain_name / config目录。
    2.   
    3. 找到<security-configuration>元素。
    4.   
    5. 将以下参数添加到元素的末尾:

           

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

    6.   
    7. 启动或重新启动域中的所有服务器。

    8.   

    资源链接:

    1. Disabling Oracle WebLogic Server authentication for IBM CMIS for Content Manager OnDemand
    2. 更新#1:

      为什么会这样做?

        

      系统是否应允许具有无效Basic的请求   用于访问不安全资源的身份验证凭据。   (接口= weblogic.management.configuration.SecurityConfigurationMBean   属性= getEnforceValidBasicAuthCredentials)

      实际上,你需要做两件事。

      1. 有时候做错是不够的。
      2. 因此,您需要通过WLST添加标志:
      3. connect('weblogicUser','weblogicPassword','t3://localhost:7001')
        edit()
        startEdit()
        cd('SecurityConfiguration/Your_Domain')
        set('EnforceValidBasicAuthCredentials','false')
        save()
        activate()
        

        N.B :(不要忘记在'cd'命令中使用您的weblogicUser,weblogicPassword,weblogic网址和您的域进行编辑...)。如果您成功完成了这项工作,那么它将对您的配置文件产生影响。

        分辨率:

        重新启动服务器后,如果您查看了config.xml文件,并添加了另一个标记。现在,config.xml文件看起来像这样:

        .........
            <enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth-credentials>
            <use-kss-for-demo>true</use-kss-for-demo>
        </security-configuration>
        ............
        

        但是这个use-kss-for-demo标记可能取决于您的weblogic配置。因此Val Bonn强烈建议使用WSLT方式更新此标志。

        资源链接:

        https://stackoverflow.com/a/39619242/2293534

        更新#2:

        所以,你想知道影响是什么?

        默认情况下,WebLogic Server会查看身份验证标头,即使您的代码和应用程​​序设置为允许匿名访问,如果有任何HTTP身份验证标头,WebLogic也无法处理请求并引发浏览器登录对话框:

        enter image description here

        默认情况下,Publisher Web服务使用身份验证标头,因此Publisher身份验证标头会发送到您的portlet代码。幸运的是,对此的修复是非常简单的,并记录为将enforce-valid-basic-auth-credentials设置为false。

        资源链接:

        1. http://blog.integryst.com/webcenter-interaction/2010/03/24/setting-config-xml-for-weblogic-in-oracles-jdeveloper/