【问题标题】:JBoss EAP 6.2: Exchange auth-method of war-fileJBoss EAP 6.2:war-file 的交换 auth-method
【发布时间】:2019-12-10 17:57:41
【问题描述】:

我有一个应用程序(打包为 war),用于在 JBoss EAP 6.2 上运行的两个客户。其中一个使用 Basic JBoss Authentication,另一个使用 Keycloak 身份验证提供程序。

两个war文件完全相同,只有一个区别:WEB-INF/web.xml包含

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

分别

<login-config>
    <auth-method>keycloak</auth-method>
    <realm-name>application</realm-name>
</login-config>

我想防止构建两个不同的战争文件(因为 web.xml 在战争文件中)所以我想知道如何在 JBoss 配置中而不是在 web.xml 中配置这些行。

【问题讨论】:

    标签: java jboss wildfly war jboss-eap-6


    【解决方案1】:

    您可以如下定义您的login-config

    <login-config>
        <auth-method>${authentication.method}</auth-method>
        <realm-name>${authentication.realm}</realm-name>
    </login-config>
    

    然后在应用服务器启动时将这些参数作为系统属性传递:

    -Dauthentication.method=BASIC -Dauthentication.realm=ApplicationRealm
    

    但您应该记住,默认情况下 WildFly/JBoss 不会替换部署描述符中的变量。您应该在ee 子系统下的服务器配置中显式启用此选项。在WildFly 13.0.0.Final中是这样的:

    <subsystem xmlns="urn:jboss:domain:ee:4.0">
        <spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>
    
        <!-- remaining of the configurations -->
    </subsystem>
    

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-25
      • 1970-01-01
      • 2014-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多