2015-06-28 2 views
0

Я использовал JAAS, и я не знаю, как получить информацию об идентификаторе пользователя, имени пользователя .. я должен установить значения с помощью ManagedBean или JAAS, который он сам предоставляет.JAAS get Информация о пользователе

+0

0 Ответы зависят от того, где именно он вам нужен и какой интерфейс веб-интерфейса и/или быть которую вы используете. JSF? CDI? JAX-RS? Servlet/фильтр? И т. Д. По крайней мере, если он основан на сервлете, 'HttpServletRequest # getRemoteUser()' возвращает вам имя входа. Это должно быть хорошей отправной точкой. – BalusC

+0

Спасибо, я должен использовать его как в JSF, так и в ManagedBeans. Могу ли я получить идентификатор для выполнения других функций. –

+0

Ваш JAAS 'LoginModule' выполнит вход и получит всю информацию о пользователе, соответствующие части которого должны быть размещены в «Субъект». – EJP

ответ

-1

JAAS обеспечивает имя пользователя и не предоставляет всю информацию, здесь предложение восстановить все инфокоммуникационное с ManagedBean и JSP

С JSF вы можете получить всю информацию о пользователе, как это:

import org.service.UserFacade; 
    import org.entity.userEntity; 
    import java.security.Principal; 
    import javax.ejb.EJB; 
    import javax.faces.bean.ManagedBean; 
    import javax.faces.bean.SessionScoped; 
    import javax.faces.context.FacesContext; 

    @ManagedBean 
    @SessionScoped 
    public class MySessionController { 

     @EJB 
     private UserFacade userFacade; 

     String login; 

     public MySessionController() { 
      Principal principal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal(); 
      // get login from principal 
      login = principal.getName(); 
      //get all informations of user from EJB : UserFacade 
      userEntity user = userFacade.findByLogin(login); 
     } 
    } 

С JSP вы можете получить всю информацию о пользователе:

<%@page import="javax.naming.InitialContext"%> 
<%@page import="javax.naming.Context"%> 
<%@page import="org.service.UserFacade"%> 
<%@page import="org.entity.userEntity"%> 
<%@page import="java.security.Principal"%> 

    <% 
     String login; 
     Principal loginUser = request.getUserPrincipal(); 

     // get login from principal 
     if (loginUser != null) { 
      login = loginUser.getName() 
     } 

     //get all informations of user from EJB : UserFacade 
     Context c = new InitialContext(); 
     UserFacade userFacade = (UserFacade) c.lookup("java:global/MyProject/MyEjbMoule/UserFacade!org.service.UserFacade"); 
     userEntity user = userFacade.findByLogin(login); 
    %> 
+0

Вопрос о JAAS. – EJP

+0

Это отлично работает для меня –

Смежные вопросы