Apache 如何访问JBOSS 6 EAP icm AJP和SSL卸载中的X509 subject.serialnumber
我们有以下配置:Apache 如何访问JBOSS 6 EAP icm AJP和SSL卸载中的X509 subject.serialnumber,apache,ssl,jboss,x509,ajp,Apache,Ssl,Jboss,X509,Ajp,我们有以下配置: Apache 2.2反向代理,终止HTTPS以进行SSL卸载 公开SOAP服务的Jboss 6.1 EAP应用服务器 Apache的配置如本文所述 SOAP服务在无状态会话bean中实现。像这样: @WebContext( urlPattern = "/ba/test", authMethod = "BASIC", transportGuarantee = "NONE", secureWSDLAccess = false ) @Stateless @WebService @S
@WebContext( urlPattern = "/ba/test", authMethod = "BASIC", transportGuarantee = "NONE", secureWSDLAccess = false )
@Stateless
@WebService
@SecurityDomain( "TestDomain" )
@RolesAllowed("TestRole")
public class TestSsb {
@WebMethod
public String testMe(String in) {
return "succeeded";
}
}
已配置“TestDomain”
在当前设置中,序列号通过专用HTTP头传输,我们在JBOSS配置xml文件中使用自定义登录模块。这很有效
但是,我们希望尽可能应用标准机制。鉴于此设置并不奇怪,必须有一种方法可以访问登录模块配置中的X509证书信息(例如,使用)
这里有两个问题:
我不知道如何继续下去。任何帮助都将不胜感激。解决方案是开箱即用的(经过一些尝试)。authMethod=“BASIC”必须设置为authMethod=“CLIENT-CERT”。因此: @WebContext(contextRoot=“aa/url”,urlPattern=“*”,authMethod= “客户端证书”,TransportGuarrance=“无”,secureWSDLAccess=false) 接下来,您需要将角色/安全域指定为注释: @SecurityDomain(“MyCertWebserviceDomain”)
@申报表(价值)= {“我的角色”}) 通过指定DatabaseCertLoginModule。
<security-domain name="MyCertWebserviceDomain">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseCertLoginModule" flag="required">
<module-option name="dsJndiName" value="java:jboss/datasources/DS"/>
<module-option name="verifier" value="org.jboss.security.auth.certs.AnyCertVerifier"/>
<module-option name="rolesQuery" value="select role_name, 'Roles' from identity_role where identity IN(select regexp_replace(?, '.*SERIALNUMBER=([0-9]*), .*','\1') from dual)"/>
</login-module>
</authentication>
</security-domain>
角色(例如MY_角色)从数据库中获取,并根据证书中的序列号编制索引
在JBOSS中,需要将协议设置为AJP
现在可以从安全主体获取标识:sessionContext.getCallePrincipal().getName()