2010-12-29 21 views
11

Tôi đã định cấu hình đăng nhập dựa trên biểu mẫu trong Ứng dụng JSF 2.0 của mình trên máy chủ GlassFish 3, sử dụng một Miền tùy chỉnh. Cách đơn giản nhất để nhận thông tin về người dùng đã đăng nhập, nghĩa là tên người dùng.Cách hiển thị người dùng đã đăng nhập, ứng dụng JSF 2.0 với bảo mật dựa trên biểu mẫu

Điều này có khả thi không? Hoặc phiên hiện tại chỉ được liên kết với vai trò bảo mật? Nếu vậy, có cách nào để thực hiện điều này có thể mà không thay đổi cấu hình đăng nhập không?

một cách đơn giản, những gì tôi muốn là để hiển thị một thông điệp đơn giản như:

Tham gia dưới tên username

trên các trang web của tôi.

Trả lời

18

Cách dễ nhất để có được ít người dùng đăng nhập thông qua EL (Expression Language) trong JSF 2.0 sẽ là:

#{request.remoteUser} 

câu trả lời Tobbe của sẽ làm việc tốt để có được ít người sử dụng từ xa từ bên trong một bean ủng hộ.

11

Các đơn giản (có thể không phải là tốt nhất) Câu trả lời là:

FacesContext.getCurrentInstance().getExternalContext().getRemoteUser() 

Tôi bị sốc về bao lâu nó đưa tôi đến con số mà ra.

0

trong lớp loginmanagedbean của bạn xác định một currentUSer và trong getter này: i didnt sử dụng một hệ thống đăng nhập bên ngoài trong và điều này làm việc cho tôi.

public Login getCurrentUser() { 
    FacesContext fc = FacesContext.getCurrentInstance(); 
    ExternalContext externalContext = fc.getExternalContext(); 
    if (externalContext.getUserPrincipal() == null){ 
     logger.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!current principal is null"); 
    } 
    else{ 
     Integer id = Integer.parseInt(externalContext.getUserPrincipal().getName()); 
     logger.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!LOGGED USER "+ id); 
     try { 
      currentUser = getLoginService().getLoginById(id); 
     } 
     catch (Exception ex) { 
     } 
    } 
    return currentUser; 
} 
+0

Dòng này là gì? 'Integer id = Integer.parseInt (externalContext.getUserPrincipal(). GetName());' Bạn đang cố phân tích tên là int? –

0

Bên trong Facelets bạn có thể sử dụng #{request.userPrincipal.name}.

Các vấn đề liên quan