2012-05-13 21 views
6

मैं एक जेबॉस एएस 7 पर्यावरण में हूं। मेरा एप्लिकेशन/admIn/* पथ सुरक्षा-बाधा से संरक्षित है जिसके लिए फॉर्म आधारित प्रमाणीकरण की आवश्यकता होती है। सुरक्षा डोमेन डेटाबेस समर्थित है।जेबॉस एएस 7 सुरक्षा: वर्तमान में लॉग इन उपयोगकर्ता नाम कैसे प्राप्त करें?

यह ठीक है लेकिन अब मैं प्रत्येक पृष्ठ के शीर्षलेख में "सुप्रभात" प्रदर्शित करना चाहता हूं। मैं कुछ प्रकार के getLoggedUsername() या getPrincipal() फ़ंक्शन ढूंढ रहा हूं लेकिन मुझे यह नहीं मिल रहा है।

यदि कोई हो तो आधिकारिक दस्तावेज़ों का संदर्भ पोस्ट करें। धन्यवाद।

+0

डुप्लिकेट होने लगता है, बस इसे पाया गया http://stackoverflow.com/questions/1938517/how-to-get-sessioncontext-in-jboss लेकिन मुझे लगता है कि इस प्रश्न को ढूंढने वाले किसी को भी अन्य नहीं मिलेगा पहले जेएएएस को देखने के बिना। –

उत्तर

9

आपको जेएएएस का उपयोग करने में सक्षम होना चाहिए। जोबॉस 7 का उपयोग करना चाहिए।

कॉलिंग प्रिंसिपल को SessionContext में संग्रहीत किया जाएगा जिसे आप जेबॉस को एक संसाधन बताकर प्राप्त कर सकते हैं।

@Resource 
private SessionContext context; 

public void myAwesomeMethod() { 
    String currentUser = context.getCallerPrincipal().getName(); 
} 

अगर किसी कारण से इंजेक्शन एक स्टेटलेस बीन पर काम नहीं करता है, तो आप सीधे ईजेबीसीएन्टेक्स्ट को देख सकते हैं।

@Stateless 
public class HelloBean implements com.foo.ejb.HelloRemote { 
    public void hello() { 
     try { 
      InitialContext ic = new InitialContext(); 
      SessionContext sctxLookup = 
       (SessionContext) ic.lookup("java:comp/EJBContext"); 
      System.out.println("look up EJBContext by standard name: " + sctxLookup); 
     } catch (NamingException ex) { 
      throw new IllegalStateException(ex); 
     } 
    } 
} 

यह स्निपेट 4 ways to obtain EJBContext से प्राप्त किया गया था।

+0

ठीक है। आप उस कोड को कहां रखेंगे? एक राज्यिक ईजेबी? –

+0

@FabioB। यह राज्यिक होना जरूरी नहीं है। मैं इसे प्राप्त करने के किसी अन्य तरीके से अपना उत्तर अपडेट करूंगा। आप एक स्टेटलेस बीन के साथ इंजेक्शन का उपयोग करने में सक्षम होना चाहिए, लेकिन अगर यह काम नहीं करता है तो आप संदर्भ को सीधे देख सकते हैं। –

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