Wildfly Swarm安全域配置

时间:2017-07-04 01:28:02

标签: java java-ee wildfly wildfly-swarm

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

if (process.env.NODE_ENV === 'production') {
  module.exports.devtool = '#source-map'
  // http://vue-loader.vuejs.org/en/workflow/production.html
  module.exports.plugins = (module.exports.plugins || []).concat([
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"production"'
      }
    }),
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
      compress: {
        warnings: false
      }
    }),
    new webpack.LoaderOptionsPlugin({
      minimize: true
    })
  ])
}

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

<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>

我无法找到与子系统匹配的任何Wildfly swarm安全片段映射。我可以问一下它们是否存在,如果有任何文件,如果有人可以协助这个论坛可以提供帮助吗?

此致

2 个答案:

答案 0 :(得分:0)

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

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

文档可以在reference guide中找到,用法如下:

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"))));

对于您的情况,classicAuthentication()的来电应替换为jaspiAuthentication()。登录模块可以像Swarm上的任何其他模块一样进行部署。

答案 1 :(得分: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");
        });
        });
        }));