我们正在尝试将项目从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&size=1000&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安全片段映射。我可以问一下它们是否存在,如果有任何文件,如果有人可以协助这个论坛可以提供帮助吗?
此致
答案 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&size=1000&username=%s")
.moduleOption("skipAllValidators", "true");
});
});
}));