13

私はSpringSecurityを使用してユーザーとグループのセキュリティを管理しています。

すべてのデータはLDAPサーバーに保存されます。私の構成は次のとおりです。

  <authentication-manager alias="authenticationManager">
         <ldap-authentication-provider 
           user-search-filter="(mail={0})"
           user-search-base=""
           group-search-filter="(uniqueMember={0})"
           group-search-base="ou=groups"
           group-role-attribute="cn"
           role-prefix="ROLE_"
           user-context-mapper-ref="contextMapper">
         </ldap-authentication-provider>
         <lda
  </authentication-manager>

  <beans:bean id="contextMapper" class="com.mycompany.CustomContextMapper">
    <beans:property name="indexer" ref="entityIndexer" />
  </beans:bean>

  <ldap-user-service  server-ref="ldapServer" user-search-filter="(mail={0})" />

  <ldap-server manager-dn="cn=admin,dc=springframework,dc=org" manager-password="password" url="ldap://server/dc=springframework,dc=org" id="ldapServer" />

すべてが魅力のように実行されます。ここで、最初のLDAPサーバーがダウンしている場合(フォールバック)、2番目のLDAPサーバーを追加したいと思います。簡単な方法が見つかりません。

だから、私の質問は簡単です:最初のサーバーがダウンした場合にフォールバックを提供するために、この構成に2番目のLDAPサーバーを追加する方法は?

4

3 に答える 3

22

url属性にスペース区切りの値を使用します。

url="ldap://server1/dc=springframework,dc=org ldap://server2/dc=springframework,dc=org"

参照:LDAPおよびLDAPS URL

于 2012-05-30T13:50:35.597 に答える
4

それはとても単純なので、私はそれを見逃しました。

スペースで区切った複数のURLを次のように構成するだけです。

<ldap-server ... url="ldap://server1/dc=springframework,dc=org ldap://server2/dc=springframework,dc=org" />
于 2012-05-30T13:50:07.607 に答える
4

前の答えは正しいです。

LDAPサーバーの冗長性に関する情報を追加したかったのです。これが複数のLDAPURLを追加する目的なので、役立つことを願っています。

私はいくつかのシナリオをテストしました:

LDAPサーバーの場合urls(url1、url2)

URLで指定された両方のLDAPサーバーがダウンしている場合、アプリケーションのログインは失敗します。

1つのLDAPサーバーがダウンしている場合。server1をurl1:ldap:// url1(url1の位置が1番目または2番目に関係なく)と見なすと、アプリケーションは正常に機能します。

いずれかのURLが構文的に不正な形式である場合:url1:ldap:// MALFORMED_URL、アプリケーションは起動に失敗します。

于 2012-07-13T20:22:55.293 に答える