0

以下相互客戶端證書,SSL(TLS)握手適用於休息端點(yay!) - 通過測試和調試進行驗證:javax.net logging & wireshark。但是......在PBESecurityDomain的mutual/client-cert身份驗證中忽略Jboss應用程序策略

1日觀察:HttpServletRequest和JAX-RS註解的SecurityContext具有零首席信息

第二觀察:與登錄-config.xml中被篡改,包含應用程序策略元素,沒有任何效果

簡而言之,TLS可以工作,但是請求線程中的證書DN到HTTPServletRequest對象的傳輸不會阻止應用程序接收到調用方的ID。有人有建議嗎?

在JBoss的6:

部署/ jbossweb.sar/server.xml中:

<Connector protocol="HTTP/1.1" debug="10" 
     SSLEnabled="true" 
     ... 
     secure="true" 
     clientAuth="true" 
     sslProtocol = "TLS" 
     securityDomain="java:/jaas/mydomain" 
     SSLImplementation="org.jboss.net.ssl.JBossImplementation" /> 

部署/ jbossweb.sar/META-INF/JBoss的-beans.xml文件:

<depends>jboss.security:service=PBESecurityDomain</depends> 

部署/安全service.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<server> 
    <mbean code="org.jboss.security.plugins.JaasSecurityDomain" 
    name="jboss.security:service=PBESecurityDomain"> 
    <constructor>   <arg type="java.lang.String" value="mydomain"/> 
    </constructor> 
    <attribute name="KeyStoreURL">${jboss.server.home.dir}/mykeystore.jks</attribute> 
    <attribute name="KeyStorePass">{CLASS}org.jboss.security.plugins.FilePassword:${jboss.server.home.dir}/mykeystorepass.pbe</attribute> 
    <attribute name="TrustStoreURL">${jboss.server.home.dir}/mytruststore.jks</attribute> 
    <attribute name="TrustStorePass">password</attribute> 
    <attribute name="Salt">abunchofrandomchars</attribute> 
    <attribute name="IterationCount">13</attribute> 
    <depends>jboss.security:service=JaasSecurityManager</depends> 
    </mbean> 
</server> 

部署/安全性/安全性的jboss-beans.xml文件:

<bean name="XMLLoginConfig" class="org.jboss.security.auth.login.XMLLoginConfig"> 
    <property name="configResource">login-config.xml</property> 
</bean> 
<bean name="SecurityConfig" class="org.jboss.security.plugins.SecurityConfig"> 
    <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property> 
    <property name="defaultLoginConfig"><inject bean="XMLLoginConfig"/></property> 
</bean> 

的conf /登錄-config.xml中:

<application-policy name="mydomain"> 
    <authentication> 
     <login-module code="org.jboss.security.auth.spi.BaseCertLoginModule" 
      flag = "required"> 
      <module-option name="password-stacking">useFirstPass</module-option> 
      <module-option name="securityDomain">java:/jaas/mydomain</module-option> 
      <module-option name="verifier">org.jboss.security.auth.certs.AnyCertVerifier</module-option> 
      <module-option name="principalClass">org.jboss.security.auth.certs.SubjectDNMapping</module-option> 
     </login-module> 
     <login-module code="org.jboss.security.auth.spi.UserRolesLoginModu" 
      flag = "required"> 
      <module-option name="password-stacking">useFirstPass</module-option> 
      <module-option name="usersProperties">users.properties</module-option> 
      <module-option name="rolesProperties">roles.properties</module-option> 
     </login-module> 
    </authentication> 
</application-policy> 

戰爭/ WEB-INF /的jboss-web.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE jboss-web PUBLIC 
    "-//JBoss//DTD Web Application 2.4//EN" 
    "http://www.jboss.org/j2ee/dtd/jboss-web_4_0.dtd"> 
<jboss-web> 
    <security-domain>java:/jaas/mydomain</security-domain> 
    <context-root>/myapp</context-root> 
</jboss-web> 

回答

0

將特殊ClientLoginModule添加到login-context.xml以解決null主體問題。

<login-module code="org.jboss.security.ClientLoginModule" flag="required"></login-module> 
相關問題