JBoss EAP 6.2:交换 war 文件的身份验证方法
JBoss EAP 6.2: Exchange auth-method of war-file
我在 JBoss EAP 6.2 上有两个客户 运行 的一个应用程序(打包为 war)。其中一个使用基本 JBoss 身份验证,另一个使用 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>
我想防止构建两个不同的 war 文件(因为 web.xml 在 war 文件中)所以我想知道如何在 JBoss 配置而不是 web.xml.
您可以定义您的 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>
我在 JBoss EAP 6.2 上有两个客户 运行 的一个应用程序(打包为 war)。其中一个使用基本 JBoss 身份验证,另一个使用 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>
我想防止构建两个不同的 war 文件(因为 web.xml 在 war 文件中)所以我想知道如何在 JBoss 配置而不是 web.xml.
您可以定义您的 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>