2015-05-14 7 views
5

से उपयोगकर्ता प्रिंसिपल का प्रचार करें मैं एक ऐसा एप्लिकेशन शुरू कर रहा हूं जो एक आरईएसटी एपीआई का उपयोग करता है जो जेबॉस वाइल्डफ्लाई (रेस्टइसी) पर ईजेबी परत को कॉल करता है।आरईएसटी से ईजेबी परत

आरईएसटी सेवाएं एक युद्ध के अंदर हैं जो तब ईजेबी परत को कॉल करती है। - इस बाकी मुखौटा पर सिर्फ एक जांच है 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 
    } 
} 

वहाँ कुछ मानक तरीके से उपयोगकर्ता नाम का प्रचार करने के लिए एक रास्ता है? जैसे सत्र कॉन्टेक्स्ट के लिए एक कस्टम प्रिंसिपल डालने?

उत्तर

1

आप विषय की doAs विधि का उपयोग कर सकते हैं। See the JavaDocs here

उपार्जन EJB के लिए युद्ध से फोन करता है प्रमाणीकृत विषय के doAs विधि के साथ करते हैं। इस तरह विषय ईजेबी के संदर्भ में प्रचारित है। (उदाहरण के लिए @RolesAllowed ठीक काम करेगा) यदि आप चाहें तो सामान्य रूप से web.xml में प्रमाणीकरण कॉन्फ़िगर कर सकते हैं।

युद्ध में विषय पाने के लिए, इस Subject userSubject=(Subject)PolicyContext.getContext("javax.security.auth.Subject.container");

+0

कोशिश यह Wildlfly 9.0.2 पर काम नहीं कर रहा है। "स्टेटलेसलेस बीन" कॉलिंग "स्टेटलेस रेस्ट" की कोशिश की। "पोजो रेस्ट" को "स्टेटलेस सत्र बीन" कॉल करने का प्रयास किया। कोई उपयोगकर्ता प्रिंसिपल प्रचार नहीं। W/@SecurityContext सेट अप, w/Resteasy विशिष्ट सुरक्षा कॉन्फ़िगरेशन (resteasy.role.based.security)। –

संबंधित मुद्दे