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

hud*_*udi 9 java authentication weblogic spring-boot

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

Sky*_*ker 5

影响在哪里?

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. 了解使用不安全资源的 BASIC 身份验证
  2. WebLogic 绕过基本身份验证

Oracle 关于强制有效基本身份验证凭据的说法是什么?

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

程序

要禁用 Oracle WebLogic Server 身份验证:

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

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

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

资源链接:

  1. 为 Content Manager OnDemand 禁用 IBM CMIS 的 Oracle WebLogic Server 身份验证

更新#1:

为什么它是假的?

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

实际上,您需要在这里做两件事。

  1. 有时仅仅让它成为假是不够的。
  2. 因此,您需要通过 WLST 添加标志:
connect('weblogicUser','weblogicPassword','t3://localhost:7001')
edit()
startEdit()
cd('SecurityConfiguration/Your_Domain')
set('EnforceValidBasicAuthCredentials','false')
save()
activate()
Run Code Online (Sandbox Code Playgroud)

注意:(不要忘记在“cd”命令中使用您的 weblogicUser、weblogicPassword、weblogic url 和您的域进行编辑...)。如果你成功地做这件事,那么它将影响你的配置文件。

解析度:

重新启动服务器后,如果您查看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>
............
Run Code Online (Sandbox Code Playgroud)

但是这个use-kss-for-demo标签可能取决于你的 weblogic 配置。所以Val Bonn强烈建议使用 WSLT 方式来更新这个标志。

资源链接:

/sf/answers/2773346971/


更新#2:

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

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

在此处输入图片说明

默认情况下,发布者 Web 服务使用身份验证标头,因此发布者身份验证标头会发送到您的 portlet 代码。幸运的是,对此的修复非常简单,并记录在案以将强制有效基本身份验证凭据设置为 false。

资源链接:

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