LDAP サーバーを使用してスプリング セキュリティを構成しました (ただし、読み続けてください。知識がなくても問題ありません。これは実際にはスプリングの問題です)。すべてが魅力のように実行されます。これが私がそのために使用する行です:
<ldap-server ldif="" root="" manager-dn="" manager-password="" url="" id="ldapServer" />
ldif および root 属性を入力すると、組み込みサーバーが実行されます。
<ldap-server ldif="classpath://ldap.ldif" root="dc=springframework,dc=org" manager-dn="" manager-password="" url="" id="ldapServer" />
他のフィールドに入力すると、遠隔サーバーが実行されます。
<ldap-server ldif="" root="" manager-dn="dc=admin,dc=springframeworg,dc=org" manager-password="password" url="ldap://myldapserver.com/dc=springframeworg,dc=org" id="ldapServer" />
これらはすべて正しく実行されます。次に、Spring メカニズムを使用して、プロパティ ファイルからそのようなパラメーターをロードします。
したがって、属性値を次のように置き換えます。
<ldap-server ldif="${ldap.ldif.path}" root="${ldap.ldif.root}" manager-dn="${ldap.server.manager.dn}" manager-password="${ldap.server.manager.password}" url="${ldap.server.url}" id="ldapServer" />
プロパティ ファイルを次のように作成します。
ldap.server.url=
ldap.server.manager.dn=
ldap.server.manager.password=
ldap.ldif.path=
ldap.ldif.root=
さて、問題の面白い部分です。ファイルに次のプロパティを入力すると:
ldap.server.url=ldap://myldapserver.com/dc=springframeworg,dc=org
ldap.server.manager.dn=dc=admin,dc=springframeworg,dc=org
ldap.server.manager.password=password
ldap.ldif.path=
ldap.ldif.root=
期待どおりに遠隔サーバーを実行します。
プロパティ ファイルを次のように入力すると、次のようになります。
ldap.server.url=
ldap.server.manager.dn=
ldap.server.manager.password=
ldap.ldif.path= classpath:ldap.ldif
ldap.ldif.root= dc=springframeworg,dc=org
LDAP URL が欠落していると不平を言って、実行されません。しかし、問題は、スプリング構成を次のように変更した場合です。
<ldap-server ldif="${ldap.ldif.path}" root="${ldap.ldif.root}" manager-dn="${ldap.server.manager.dn}" manager-password="${ldap.server.manager.password}" url="${ldap.server.url}" id="ldapServer" />
に (変数 ${ldap.server.url} への参照を削除するだけで)
<ldap-server ldif="${ldap.ldif.path}" root="${ldap.ldif.root}" manager-dn="${ldap.server.manager.dn}" manager-password="${ldap.server.manager.password}" url="" id="ldapServer" />
走る!
私の考えでは、これが空の場合、春は属性値をプロパティ設定値に置き換えません。しかし、私はそれが奇妙だと思います。
それを理解する手がかりを教えてもらえますか?また、プロパティ ファイルを使用して LDAP サーバーを構成するにはどうすればよいですか?
編集: これは設計の選択が不十分なためです (受け入れられた回答を見てください)。jira で問題が開かれています: https://jira.springsource.org/browse/SEC-1966