0

私は春に精通していないと言って、これを前置きさせてください。職場のプロジェクトに放り込まれ、できるだけ早くスピンアップしようとしています

それを念頭に置いて、Jasig の CAS と LDAP を使用して春のセキュリティを実装しようとしています。

このセットアップをローカル LDAP からロードしたところ、問題なく動作しました。しかし、会社の LDAP に移動したため、Web アプリケーションは機能しなくなりました。

現時点では、このスクリプトが LDAP に正常にログインし、コンテナーへのパスを検証していることを確認できますが、ページが読み込まれる前にサーバー エラーが発生します。

コード:

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:sec="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" >


<bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <!-- The URL of the ldap server, along with the base path that all other ldap path will be relative to -->
    <constructor-arg value="ldaps://141.161.99.74:636/dc=testing,dc=com"/>
    <property name="userDn" value="uid=OdinAdmin,ou=Specials,dc=testing,dc=com" />
    <property name="password" value="testpw" />
</bean>

<bean id="ldapAuthProvider" class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
    <constructor-arg>
    <bean class="org.springframework.security.ldap.authentication.BindAuthenticator">
            <constructor-arg ref="contextSource"/>
            <property name="userSearch" ref="ldapUserSearch"/>
    </bean>
    </constructor-arg>
    <constructor-arg ref="authoritiesPopulator" />                       <!-- Populates authorities in the UserDetails object -->
    <property name="userDetailsContextMapper" ref="userDetailsMapper" /> <!-- Adds OWF groups to the UserDetails object -->
</bean>

<bean id="authoritiesPopulator" class="org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator">
    <constructor-arg ref="contextSource"/>
    <constructor-arg value="ou=OdinRoles,ou=Odin,ou=Apps"/> <!-- search base for determining what roles a user has -->
    <property name="groupRoleAttribute" value="cn"/>
    <!-- the following properties are shown with their default values -->
    <property name="rolePrefix" value="ROLE_"/>
    <property name="convertToUpperCase" value="true"/>
    <property name="searchSubtree" value="true"/>
</bean>

<bean id="ldapUserSearch" class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch">
    <constructor-arg value="ou=people" /> <!-- search base for finding User records -->
    <constructor-arg value="(uid={0})" /> <!-- filter applied to entities under the search base in order to find a given user.
                                            this default searches for an entity with a matching uid -->
    <constructor-arg ref="contextSource" />
</bean>

<!-- Custom class that goes back to the ldap database to search for OWF group records and also adds
     extra attributes from the user's ldap record to the UserDetails object.
     The class implementation of this will likely need to be changed out for differnt setups -->
<bean id="userDetailsMapper" class="ozone.securitysample.authentication.ldap.OWFUserDetailsContextMapper">
    <constructor-arg ref="contextSource" />
    <constructor-arg value="ou=OdinGroups,ou=Odin,ou=Apps" /> <!-- search base for finding OWF group membership -->
    <constructor-arg value="(uniqueMember={0})" /> <!-- filter that matches only groups that have the given username listed
                                                  as a "member" attribute -->
    <property name="searchSubtree" value="true"/>
</bean>

<bean id="ldapUserService" class="org.springframework.security.ldap.userdetails.LdapUserDetailsService">
    <constructor-arg ref="ldapUserSearch" />
    <constructor-arg ref="authoritiesPopulator" />
    <property name="userDetailsMapper" ref="userDetailsMapper" />
</bean>

</beans>

私の質問は、グループおよびロール検索のコンストラクター引数の値にサブコンテナーを含めることは許可されていますか? 以前のバージョンでは、すべてが同じコンテナーにありました。そうすれば、すべてを base-dn に含めて、その中の特定の OU を参照することができます。すなわち。それ以外の

それが問題の原因であるかどうかはわかりませんが、洞察をいただければ幸いです。ありがとう!

4

2 に答える 2

0

発生しているエラーと実際に失敗した部分を正確に提供できますか? そこにはかなりの構成があり、エラーを 1 つ程度に絞り込めば非常に役立ちます。

PS: これをコメントにしたかったのですが、申し訳ありませんが、SO の制限により、まだコメントできません。

于 2013-09-26T19:12:16.263 に答える