Mam skonfigurowane zabezpieczenie wiosenne za pomocą serwera LDAP (ale kontynuuj czytanie, to nie jest problem, jeśli nie masz o tym wiedzy, to jest naprawdę problem z wiosną). Wszystko działa jak urok. Oto wiersz używam do tego:Wiosna, plik właściwości, puste wartości
<ldap-server ldif="" root="" manager-dn="" manager-password="" url="" id="ldapServer" />
Gdybym wypełnić LDIF i korzeń atrybuty, to będzie działać serwer osadzone:
<ldap-server ldif="classpath://ldap.ldif" root="dc=springframework,dc=org" manager-dn="" manager-password="" url="" id="ldapServer" />
Gdybym wypełnić pozostałe pola, będzie uruchomić serwer odległy :
<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" />
Wszystko to działa poprawnie. Teraz chcę wykorzystać mechanizm sprężynowy do ładowania takich parametrów z pliku właściwość:
Więc mogę wymienić wartości atrybutów tak:
<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" />
i utworzyć plik działce z:
ldap.server.url=
ldap.server.manager.dn=
ldap.server.manager.password=
ldap.ldif.path=
ldap.ldif.root=
Teraz , śmieszna część problemu. Jeśli zapełniam następujące właściwości w pliku:
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=
Działa na odległym serwerze zgodnie z oczekiwaniami.
Gdybym wypełnić plik własności takiego:
ldap.server.url=
ldap.server.manager.dn=
ldap.server.manager.password=
ldap.ldif.path= classpath:ldap.ldif
ldap.ldif.root= dc=springframeworg,dc=org
To nie działa, skarżąc się, że adres URL LDAP brakuje. Ale problemem jest to, że w przypadku zmiany konfiguracji sprężyny z:
<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" />
do (tylko przez usunięcie odniesienia do zmiennej $ {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" />
To działa!
Moje jednak są takie, że wiosna nie zastępuje wartości atrybutu właściwością config jeden, jeśli ta jest pusta. Ale uważam to za dziwne.
Czy możesz mi dać jakąś wskazówkę, aby to zrozumieć? A co najlepiej zrobić, aby skonfigurować serwer LDAP za pomocą pliku właściwości?
EDIT: jest to spowodowane złym wyborem projektu (patrzeć na przyjętą odpowiedź), to problem został otwarty na JIRA: https://jira.springsource.org/browse/SEC-1966
Jaka wersja Wiosna używacie? – Roadrunner
To jest 3.0.5.RELEASE –