मैंने एक एलडीएपी सर्वर के साथ वसंत सुरक्षा कॉन्फ़िगर की है (लेकिन पढ़ना जारी रखें, अगर आपको इसके बारे में कोई जानकारी नहीं है तो यह कोई समस्या नहीं है, यह वास्तव में एक वसंत समस्या है)। सभी एक आकर्षण की तरह चलता है।वसंत, संपत्ति फ़ाइल, खाली मूल्य
<ldap-server ldif="classpath://ldap.ldif" root="dc=springframework,dc=org" manager-dn="" manager-password="" url="" id="ldapServer" />
अगर मैं अन्य क्षेत्रों को भरने, यह एक दूर के सर्वर चलेंगे:
<ldap-server ldif="" root="" manager-dn="" manager-password="" url="" id="ldapServer" />
अगर मैं LDIF और जड़ विशेषताओं को भरने, यह एक embeded सर्वर चलेंगे: यहाँ लाइन मुझे लगता है कि के लिए उपयोग है :
<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" />
ये सभी चीज़ें सही ढंग से चलती हैं।
तो मैं इस तरह विशेषता मान की जगह:
<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 यूआरएल याद आ रही है। लेकिन समस्या यह है कि मैं से वसंत कॉन्फ़िगरेशन बदल सकते हैं: करने के लिए
<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 ldif="${ldap.ldif.path}" root="${ldap.ldif.root}" manager-dn="${ldap.server.manager.dn}" manager-password="${ldap.server.manager.password}" url="" id="ldapServer" />
यह चलाता है (बस चर $ करने के लिए {ldap.server.url} संदर्भ को हटाने के द्वारा)!
मेरी यद्यपि यह है कि वसंत संपत्ति कॉन्फ़िगरेशन के साथ विशेषता मान को प्रतिस्थापित नहीं करता है यदि यह खाली है। लेकिन मुझे यह अजीब लगता है।
क्या आप मुझे समझने के लिए कुछ सुराग दे सकते हैं? और एक संपत्ति फ़ाइल के माध्यम से मेरे ldap सर्वर को कॉन्फ़िगर करने के लिए सबसे अच्छा क्या है?
संपादित करें: यह एक गरीब डिजाइन पसंद की वजह से है (स्वीकार किए जाते हैं जवाब को देखो), एक मुद्दा jira पर खोल दिया गया है: https://jira.springsource.org/browse/SEC-1966
आप वसंत के किन संस्करणों का प्रयोग करते हैं? – Roadrunner
यह 3.0.5.RELEASE –