1

我们正在尝试将项目从 Wildfly 10 迁移到 Wildfly Swarm 2017.6,但我们遇到了移植安全域的绊脚石。我们的安全域配置如下:

<security-domain name="sec-id">
   <authentication-jaspi>
   <login-module-stack name="sec-id-module-stack">
   <login-module code="com.obbi.domain.security.loginmodule.jwt.JWTLoginModule" flag="sufficient" module="com.obbi.domain.security">
   <module-option name="expectedIssuer" value="CN=DI SIT signer"/>
   <module-option name="expectedAudience" value="Obbi"/>
   <module-option name="allowedClockSkewInSeconds" value="30"/>
   <module-option name="validateTokenSignature" value="false"/>
   <module-option name="maxFutureValidityInMinutes" value="525600"/>
   <module-option name="keyStoreFilePath" value="C:/wildfly-10.1.0.Final/standalone/configuration/keystore.jks"/>
   <module-option name="keyStorePassword" value="obbi123"/>
   <module-option name="validateCertificate" value="false"/>
   <module-option name="loadSystemPrincipals" value="true"/>
   <module-option name="loadSystemPrincipalsEndpoint" value="https://test.obbi.co.za:9443/services/v1/obbi-id?page=0&amp;size=1000&amp;username=%s"/>
   <module-option name="skipAllValidators" value="true"/>
   </login-module>
   </login-module-stack>
   <auth-module code="com.obbi.domain.security.JASPICServerAuthModule" flag="required" login-module-stack-ref="sec-id-module-stack"/>
   </authentication-jaspi>
</security-domain>

我们还在 com.obbi.domain.security 上配置了一个标准模块。该模块只是一个标准模块,如下所示:

<module xmlns="urn:jboss:module:1.3" name="com.obbi.domain.security">
  <resources>
    <resource-root path="domain-service-security-jboss-2.0-SNAPSHOT.jar"/>
    <resource-root path="domain-service-security-client-2.0-SNAPSHOT.jar"/>
    <resource-root path="jose4j-0.5.0.jar"/>
  </resources>
  <dependencies>
    <module name="org.jboss.as.web"/>
    <module name="org.jboss.logging"/>
    <module name="org.picketbox"/>
    <module name="javax.api"/>
    <module name="javax.security.auth.message.api"/>
    <module name="javax.servlet.api"/>
  </dependencies>
</module>

我找不到任何与子系统匹配的 wildfly swarm 安全片段映射。请问它们是否存在,是否有任何文档,是否有人可以在这个论坛上提供帮助?

问候

4

2 回答 2

0

管理配置如下:

swarm.fraction(new SecurityFraction()
        .securityDomain("sec-id", (sd) -> {
        sd.jaspiAuthentication(jaspi -> {
        jaspi.authModule("basic", value -> {
        value.code("com.obbi.domain.security.loginmodule.jwt.JWTLoginModule")
        .flag(Flag.SUFFICIENT)
        .module("com.obbi.domain.security")
        .moduleOption("expectedIssuer", "CN=DI SIT signer")
        .moduleOption("expectedAudience", "Obbi")
        .moduleOption("allowedClockSkewInSeconds", "30")
        .moduleOption("validateTokenSignature", "false")
        .moduleOption("maxFutureValidityInMinutes", "525600")
        .moduleOption("keyStoreFilePath", "C:/wildfly-10.1.0.Final/standalone/configuration/keystore.jks")
        .moduleOption("keyStorePassword", "pass123")
        .moduleOption("validateCertificate", "false")
        .moduleOption("loadSystemPrincipals", "true")
        .moduleOption("loadSystemPrincipalsEndpoint", "https://test.obbi.co.za:9443/services/v1/obbi-id?page=0&amp;size=1000&amp;username=%s")
        .moduleOption("skipAllValidators", "true");
        });
        });
        }));
于 2017-07-04T05:47:50.350 回答
0

我正在使用org.wildfly.swarm.security分数:

<dependency>
    <groupId>org.wildfly.swarm</groupId>
    <artifactId>security</artifactId>
</dependency>

文档可以在参考指南中找到,用法如下:

SecurityFraction
        .defaultSecurityFraction()
        .securityDomain(new SecurityDomain("remote").classicAuthentication(new ClassicAuthentication()
                .loginModule(new LoginModule("Remoting")
                        .code("Remoting")
                        .flag(Flag.OPTIONAL)
                        .moduleOption("password-stacking", "useFirstPass"))
                .loginModule(new LoginModule("RealmDirect")
                        .code("RealmDirect")
                        .flag(Flag.REQUIRED)
                        .moduleOption("password-stacking", "useFirstPass"))));

对于您的情况,调用 toclassicAuthentication()应替换为jaspiAuthentication(). 登录模块可以像 Swarm 上的任何其他模块一样部署。

于 2017-07-04T01:32:16.343 回答