से उपयोगकर्ता प्रिंसिपल का प्रचार करें मैं एक ऐसा एप्लिकेशन शुरू कर रहा हूं जो एक आरईएसटी एपीआई का उपयोग करता है जो जेबॉस वाइल्डफ्लाई (रेस्टइसी) पर ईजेबी परत को कॉल करता है।आरईएसटी से ईजेबी परत
आरईएसटी सेवाएं एक युद्ध के अंदर हैं जो तब ईजेबी परत को कॉल करती है। - इस बाकी मुखौटा पर सिर्फ एक जांच है http://howtodoinjava.com/2013/06/26/jax-rs-resteasy-basic-authentication-and-authorization-tutorial/
समस्या अब है: मैं कैसे कि हेडर आदि मूल रूप से की तरह यहाँ वर्णित की जाँच करता है एक RestEasy इंटरसेप्टर साथ बाकी पर authenthication की बुनियादी या किसी भी कस्टम प्रपत्र प्राप्त करने के लिए पता है। ईजेबी परत के अंदर मैं उस उपयोगकर्ता को नहीं जानता जो आरईएसटी सेवा के खिलाफ प्रमाणित है।
इस खाली करने के लिए - जब RMI और प्रमाणीकरण के साथ रिमोट EJB कॉल का उपयोग, उपयोगकर्ता नाम सत्र संदर्भ में संग्रहीत किया जाता है:
@Stateless
public class LoginService {
@Resource
private SessionContext sessionContext;
public String getCurrentUser() {
Principal principal = sessionContext.getCallerPrincipal();
return principal.getName(); //I need this to be the username from REST auth
//Currently it's anonymous
}
}
वहाँ कुछ मानक तरीके से उपयोगकर्ता नाम का प्रचार करने के लिए एक रास्ता है? जैसे सत्र कॉन्टेक्स्ट के लिए एक कस्टम प्रिंसिपल डालने?
कोशिश यह Wildlfly 9.0.2 पर काम नहीं कर रहा है। "स्टेटलेसलेस बीन" कॉलिंग "स्टेटलेस रेस्ट" की कोशिश की। "पोजो रेस्ट" को "स्टेटलेस सत्र बीन" कॉल करने का प्रयास किया। कोई उपयोगकर्ता प्रिंसिपल प्रचार नहीं। W/@SecurityContext सेट अप, w/Resteasy विशिष्ट सुरक्षा कॉन्फ़िगरेशन (resteasy.role.based.security)। –