5

我想使用 JBoss 7 服务器开发一个简单的 Java Web 应用程序,以启用从用户输入的用户名/密码登录并使用 ldap 进行身份验证。

所以这就是我在 web.xml 中写的放在 WEB-INF/

 <login-config>
     <auth-method>BASIC</auth-method>
     <realm-name>Enter user name and password</realm-name>
 </login-config>

然后在同一文件夹中添加 jboss-web.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <jboss-web>
     <security-domain>java:/jaas/website-domain</security-domain>  
 </jboss-web>

然后我在standalone.xml中添加了网站域领域

<security-domain name="website-domain" cache-type="default">
    <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="ldap://localhost:10389"/>
            <module-option name="bindDN" value="ou=people,dc=mycompany,dc=com" />
            <module-option name="bindCredential" value="shad"/>
            <module-option name="allowEmptyPasswords" value="false"/>
            <module-option name="Context.REFERRAL" value="follow"/>
            <module-option name="throwValidateError" value="true"/>
            <module-option name="allowEmptyPasswords" value="true"/>
        </login-module>
    </authentication>
</security-domain>

那么输入的用户名和密码将如何发送到这些模块呢?还是我必须编写自定义 JAAS 领域?他们有任何可行的例子吗?你们可以分享我吗?

4

2 回答 2

3

我用葡萄牙语写了一篇文章...

http://jbossdivers.wordpress.com/2012/02/12/utilizando-ldap-login-module-no-jboss-as-7-1/

于 2013-04-09T17:40:37.590 回答
1

您的 webapp 需要通过在WEB-INF/jboss-web.xml中添加一行来指向您的安全域website-domain

<security-domain flushOnSessionInvalidation="true">java:/jaas/website-domain</security-domain>

我相信在 Jboss 7 中你只需要指定网站域(没有java:/jaas/前缀)

于 2012-04-06T08:44:30.470 回答