【问题标题】:CAS + LDAP + JSF authentificationCAS + LDAP + JSF 认证
【发布时间】:2012-12-03 12:33:28
【问题描述】:

我正在做一个项目,我正在使用 LDAP+CAS 进行身份验证。

我为 LDAP 查询创建了一个外观类(用于获取用户、姓名和邮件)。

我的问题是:如何在验证后测试用户是否被允许访问此页面并在显示 jsf 页面之前存在于应用程序数据库中。 (如何在显示 jsf 页面之前配置我的应用程序进行测试)。

谢谢你:)

【问题讨论】:

    标签: jsf ldap cas


    【解决方案1】:

    对不起,我不知道 CAS 是什么意思,但我使用 JAAS+LDAP+JBoss 来授权和验证 JSF2 网络,希望对您有所帮助:

    在您的 LDAP 服务器中创建下一个层次结构:

    + o=your-organization-name (partition) 
       + ou=users (organizationalUnit) 
          - uid=your-id-user (inetOrgPerson), add userPassword attribute 
       + ou=groups (organizationalUnit) 
          - cn=your-user-role (groupOfNames), add the uid before created
    

    JBoss 7.1 上的安全域(standalone.xml):

     <subsystem xmlns="urn:jboss:domain:security:1.1">
                <security-domains>
                 ...
     <security-domain name="SecurityRealm" cache-type="default">
                        <authentication>
                            <login-module code="org.jboss.security.auth.spi.LdapLoginModule" flag="required">
                                <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory"/>
                                <module-option name="java.naming.provider.url" value="ldap://host-ldap-server:port-ldap-server/"/>
                                <module-option name="java.naming.security.authentication" value="simple"/>
                                <module-option name="principalDNPrefix" value="uid="/>
                                <module-option name="principalDNSuffix" value=",ou=users,o=your-organization-name"/>
                                <module-option name="rolesCtxDN" value="ou=groups,o=your-organization-name"/>
                                <module-option name="uidAttributeID" value="member"/>
                                <module-option name="matchOnUserDN" value="true"/>
                                <module-option name="roleAttributeID" value="cn"/>
                                <module-option name="roleAttributeIsDN" value="false"/>
                            </login-module>
                        </authentication>
                    </security-domain>
                </security-domains>
    

    在你的 jboss-web.xml 中

    <security-domain>SecurityRealm</security-domain>
    

    最重要的是:用户是否可以访问此页面? (web.xml):

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    
        <!-- Protected Areas -->
        <security-constraint>
             <display-name>Protected</display-name>
            <web-resource-collection>              
                <url-pattern>url-pages-you-want-protect</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
            </web-resource-collection>
            <auth-constraint>
                <role-name>your-user-role</role-name>
            </auth-constraint>
            <user-data-constraint>
                <transport-guarantee>NONE</transport-guarantee>
            </user-data-constraint>
        </security-constraint>
    
        <!-- Validation By Form -->
        <login-config>
            <auth-method>FORM</auth-method>
            <form-login-config>
                <form-login-page>your-login-page</form-login-page>
                <form-error-page>your-error-page</form-error-page>
            </form-login-config>
        </login-config>
    
        <!-- Allowed Roles -->
        <security-role>
            <role-name>your-user-role</role-name>
        </security-role>
    </web-app>
    

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 2015-03-27
      • 2012-05-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-05
      • 2012-06-01
      • 2014-11-03
      • 2012-10-09
      相关资源
      最近更新 更多