在我的weblogic服务器中,我有应用程序,其中启用了基本身份验证(web.xml
和weblogic.xml
)。现在我将spring-boot应用程序从tomcat移植到weblogic,其中基本身份验证也在应用程序层上。因此,当我移植它时,它不起作用,我需要将enforce-valid-basic-auth-credentials
设置为false
。现在我希望我能重构我在同一个域上运行的第一个应用程序(它在虚拟主机上运行),但似乎身份验证仍然在这个应用程序中运行。那么当我在生产服务器上设置这个选项会产生什么后果呢?
答案 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身份验证客户端请求执行身份验证。
默认情况下启用Oracle WebLogic Server身份验证。然而, 此配置会阻止Oracle WebLogic Server使用 应用程序管理认证您必须禁用Oracle WebLogic 通过设置服务器身份验证 enforce-valid-basic-auth-credentials参数为false。
程序
禁用Oracle WebLogic Server身份验证:
- 在文本编辑器中,打开部署IBM CMIS for Content Manager OnDemand的域的
config.xml
文件。config.xml
文件在 Oracle / Middleware / user_projects / domains / domain_name / config目录。- 找到
<security-configuration>
元素。将以下参数添加到元素的末尾:
<enforce-valid-basic-auth-credentials>false</enforce-valid-basic-auth -credentials>
- 醇>
启动或重新启动域中的所有服务器。
系统是否应允许具有无效Basic的请求 用于访问不安全资源的身份验证凭据。 (接口= weblogic.management.configuration.SecurityConfigurationMBean 属性= getEnforceValidBasicAuthCredentials)
实际上,你需要做两件事。
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
所以,你想知道影响是什么?
默认情况下,WebLogic Server会查看身份验证标头,即使您的代码和应用程序设置为允许匿名访问,如果有任何HTTP身份验证标头,WebLogic也无法处理请求并引发浏览器登录对话框:
默认情况下,Publisher Web服务使用身份验证标头,因此Publisher身份验证标头会发送到您的portlet代码。幸运的是,对此的修复是非常简单的,并记录为将enforce-valid-basic-auth-credentials设置为false。