1

私はプロジェクトを行っており、認証にLDAP+CASを使用しています。

LDAPクエリのファサードクラスを作成しました(ユーザー、名前、メールを取得するため)。

私の質問は、認証後に、ユーザーがこのページへのアクセスを許可され、jsfページを表示する前にアプリケーションデータベースに存在するかどうかをテストする方法です。(jsfページを表示する前にテストするようにアプリケーションを構成するにはどうすればよいですか)。

ありがとうございました :)

4

1 に答える 1

0

CASの意味がわかりませんが、JAAS + LDAP+JBossを使用してJSF2Webを認証および認証しています。これがお役に立てば幸いです。

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>
于 2012-12-03T04:33:28.470 に答える