मेरे कस्टम प्रमाणीकरण प्रदाता में, मैं अपने सेवा एपीआई के माध्यम से डोमेन ऑब्जेक्ट प्राप्त करने में सक्षम था, लेकिन जब मैं एक डोमेन ऑब्जेक्ट से दूसरे डोमेन में क्रॉल करता था ताकि अतिरिक्त चेक करने के लिए कुछ मूल्य प्राप्त हो सके, वसंत शिकायत हाइबरनेट सत्र मौजूद नहीं है: -लेनदेन के साथ वसंत सुरक्षा कस्टम प्रमाणीकरण प्रदाता लपेटना
domain.getAnotherDomain().getProperty(); // epic FAIL
मैं निम्नलिखित AOP लेन-देन लेन-देन के साथ सभी अपने प्रोजेक्ट एपीआई रैप करने के लिए है, और मुझे यकीन है कि मेरे कस्टम प्रमाणीकरण प्रदाता निम्नलिखित पैटर्न में गिर जाता है कर रहा हूँ: -
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:advisor pointcut="execution(* my.project..*.*(..))" advice-ref="txAdvice" />
</aop:config>
मेरे पास OpenSessionInView फ़िल्टर भी कॉन्फ़िगर किया गया है, लेकिन मुझे नहीं लगता कि वसंत सुरक्षा पर लागू होता है।
मुझे लगता है कि मैं सभी आवश्यक चेक करने के लिए एक विशिष्ट सेवा API बना सकता हूं, लेकिन मुझे उत्सुकता है कि मैं अपने कस्टम प्रमाणीकरण प्रदाता को उचित लेनदेन के साथ क्यों लपेट नहीं पा रहा हूं।
कोई स्पष्टीकरण? धन्यवाद।
अपवाद संदेश 'भूमिका के संग्रह को आलसी रूप से शुरू करने में विफल रहा है: ss.domain, कोई सत्र या सत्र बंद नहीं था'। मैं पूर्ण रूप से आवश्यक होने तक उत्सुक fetching प्रदर्शन नहीं करना पसंद करता हूं ... यानी, अगर मैं कस्टम प्रमाणीकरण प्रदाता कक्षा को लपेटने के लिए लेनदेन प्राप्त करता हूं। – limc
ठीक है, अगर आपने एक सत्र में 'डोमेन' लोड किया है, तो आप किसी अन्य सत्र में 'डोमेन' से आलसी रूप से 'किसी अन्य डोमेन' को लोड नहीं कर पाएंगे। मुझे यकीन नहीं है कि यह आपका मामला होगा, हालांकि (यह आपके प्रश्न से मुझे स्पष्ट नहीं है)। लेकिन अगर आप हमेशा उत्सुक लोडिंग नहीं करना चाहते हैं, तो आप Fetch प्रोफाइल का उपयोग करने पर विचार कर सकते हैं, लेकिन आप जानते हैं कि कभी-कभी आपको आवश्यकता होती है। – jpkrohling