Java Jboss AS 7 LdapExtLoginModule配置

Java Jboss AS 7 LdapExtLoginModule配置,java,security,configuration,jboss,ldap,Java,Security,Configuration,Jboss,Ldap,无法找出这在我的测试服务器上不起作用的原因。GlassFish3正在使用相同的LDAP详细信息进行身份验证,所以我希望这里的人能够提供帮助。我在日志中看到的只是一个密码不正确/需要密码的错误,可能是配置中的任何错误导致了此问题。到目前为止,我的Jboss服务器上的SSL工作正常,现在只需要解决这个问题 dn: uid=<user name>,ou=people,dc=vts,dc=com uid: <user name> homeDirectory: /home/<

无法找出这在我的测试服务器上不起作用的原因。GlassFish3正在使用相同的LDAP详细信息进行身份验证,所以我希望这里的人能够提供帮助。我在日志中看到的只是一个密码不正确/需要密码的错误,可能是配置中的任何错误导致了此问题。到目前为止,我的Jboss服务器上的SSL工作正常,现在只需要解决这个问题

dn: uid=<user name>,ou=people,dc=vts,dc=com
uid: <user name>
homeDirectory: /home/<user name>
gidNumber: <group number>
userPassword: <Password1>
cn: <user name>
uidNumber: <uidnum>

dn: cn=<group name>,ou=group,dc=vts,dc=com   
userPassword: <Password1>
gidNumber: <group number>
cn: <group name> 
dn:uid=,ou=people,dc=vts,dc=com
uid:
home目录:/home/
编号:
用户密码:
中国:
UID编号:
dn:cn=,ou=组,dc=vts,dc=com
用户密码:
编号:
中国:
My domain.xml安全配置为:

<security-domain name="myRealm">
   <authentication>
      <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">  
      <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>   
      <module-option name="java.naming.provider.url" value="ldaps://xxx.xxx.x.x:xxx"/>  
      <module-option name="java.naming.security.authentication" value="simple"/>                        
      <module-option name="bindDN" value="cn=<user name>,dc=vts,dc=com"/>
      <module-option name="bindCredential" value="<Password1>"/>
      <module-option name="baseCtxDN" value="dc=vts,dc=com"/>
      <module-option name="baseFilter" value="(uid={0})"/>                                 
      <module-option name="rolesCtxDN" value="ou=group,dc=vts,dc=com"/>                                
      <module-option name="roleFilter" value="(&amp;(objectclass=posixGroup)(gidnumber=<group number hardcoded>)))"/>
      <module-option name="roleAttributeID" value="ou"/>                
      </login-module>
    </authentication>
  </security-domain>

我有一个jboss-web.xml,其中有我的安全域名(myRealm)。即使只是从上面的ldap信息中知道此musch已针对我的设置进行了正确的配置,也会很有用,这样我就知道可以到别处看看了。谢谢

编辑:

添加服务器日志堆栈跟踪:

[Server:Server one]14:19:11605错误[org.jboss.security.authentication.JBossCachedAuthenticationManager](http--127.0.0.1-8081-1)登录失败:javax.security.auth.Login.failedLogin异常:密码不正确/需要密码
[Server:Server one]位于org.jboss.security.auth.spi.UsernamePasswordLoginModule.login(UsernamePasswordLoginModule.java:270)[picketbox-4.0.7.Final.jar:4.0.7.Final]
[Server:Server one]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)[rt.jar:1.6.0_37]
[Server:Server one]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)[rt.jar:1.6.037]
[Server:Server one]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)[rt.jar:1.6.037]
位于java.lang.reflect.Method.invoke(Method.java:597)的[Server:serverone]
[Server:serverone]位于javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)[rt.jar:1.6.0\u37]
[Server:serverone]位于javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)[rt.jar:1.6.0\u37]
[Server:serverone]位于javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)[rt.jar:1.6.0\u 37]
位于java.security.AccessController.doPrivileged(本机方法)[rt.jar:1.6.0\u 37]的[Server:Server one]
[Server:serverone]位于javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)[rt.jar:1.6.037]
[Server:serverone]位于javax.security.auth.login.LoginContext.login(LoginContext.java:579)[rt.jar:1.6.0\u37]
[Server:Server one]位于org.jboss.security.authentication.JBossCachedAuthenticationManager.defaultLogin(JBossCachedAuthenticationManager.java:449)[picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
[Server:Server one]位于org.jboss.security.authentication.JBossCachedAuthenticationManager.proceedWithJaasLogin(JBossCachedAuthenticationManager.java:383)[picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
[Server:Server one]位于org.jboss.security.authentication.JBossCachedAuthenticationManager.authenticate(JBossCachedAuthenticationManager.java:371)[picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
org.jboss.security.authentication.JBossCachedAuthenticationManager.isValid(JBossCachedAuthenticationManager.java:160)[picketbox-infinispan-4.0.7.Final.jar:4.0.7.Final]
[服务器:服务器一]位于org.jboss.as.web.security.JBossWebRealm.authenticate(JBossWebRealm.java:214)[jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
[Server:serverone]位于org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:180)[jbossweb-7.0.13.Final.jar:]
[Server:serverone]位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:455)[jbossweb-7.0.13.Final.jar:]
位于org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)的[Server:Server-one][jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
[Server:serverone]位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)[jbossweb-7.0.13.Final.jar:]
[Server:serverone]位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)[jbossweb-7.0.13.Final.jar:]
[Server:serverone]位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)[jbossweb-7.0.13.Final.jar:]
[Server:serverone]位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)[jbossweb-7.0.13.Final.jar:]
[Server:serverone]位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)[jbossweb-7.0.13.Final.jar:]
[Server:Server one]位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)[jbossweb-7.0.13.Final.jar:]
[Server:serverone]位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)[jbossweb-7.0.13.Final.jar:]
位于java.lang.Thread.run(Thread.java:662)的[Server:serverone]rt.jar:1.6.037]

我通过将所有日志记录移到调试级别日志记录来消除此错误,这使我得到了更多有意义的错误

然后解决了与SSL相关的错误,因此尽管SSL适用于使用连接器部署的应用程序,但对于LDAP,我需要添加以下定义的系统属性:

<system-properties>
    <property name="java.net.preferIPv4Stack" value="true"/>
    <property name="javax.net.ssl.trustStore" value="cacerts.jks"/>
    <property name="javax.net.ssl.trustStorePassword" value="Password1"/>
    <property name="javax.net.ssl.keyStore" value="/keystore.jks"/>
    <property name="javax.net.ssl.keyStorePassword" value="Password1"/>
    <property name="java.naming.referral" value="follow"/>
    <property name="java.security.policy" value="server.policy"/>
</system-properties>

我通过将所有日志记录移到调试级别日志记录来消除这个错误,这让我发现了更多有意义的错误

然后解决了与SSL相关的错误,因此尽管SSL适用于使用连接器部署的应用程序,但对于LDAP,我需要添加以下定义的系统属性:

<system-properties>
    <property name="java.net.preferIPv4Stack" value="true"/>
    <property name="javax.net.ssl.trustStore" value="cacerts.jks"/>
    <property name="javax.net.ssl.trustStorePassword" value="Password1"/>
    <property name="javax.net.ssl.keyStore" value="/keystore.jks"/>
    <property name="javax.net.ssl.keyStorePassword" value="Password1"/>
    <property name="java.naming.referral" value="follow"/>
    <property name="java.security.policy" value="server.policy"/>
</system-properties>