2016-02-21 5 views
0

Именованный компонент, listProjects, требует аутентификации, которая предоставляется контейнером. Я хочу получить имя пользователя из имени loginMBean и использовать его в компоненте listProjects.Как получить обновленное значение из введенного экземпляра

Я ввел компонент аутентификации в listProjects, но когда я обращаюсь к имени пользователя, он имеет значение null, даже если пользователь аутентифицирован.

@Named("loginMBean") 
@SessionScoped 
@PermitAll 
public class LoginMBean implements Serializable { 
private String username; 

public String getUsername() { 
    return username; 
} 



@Named 
@SessionScoped 
@RolesAllowed({"Users"}) 
public class ListProjectsMBean implements Serializable { 
@Inject 
private LoginMBean wLoginMBean; 

public void getList(ActionEvent actionEvent) { 
     String testUserName = wLoginMBean.getUsername(); 
    l  
} 

wildfly 8,2 приварку 2,2 ява 1,7

+0

Вы уверены, что после аутентификации поле 'username 'не равно null? Вы должны увидеть «обновленное значение», если после аутентификации вы установите поле с именем пользователя. – Geinmachi

+0

Я думаю, что вы правы. По-видимому, я фактически не использовал аутентификационный компонент для аутентификации. При внесении изменений затмение вызвало у меня проблемы, поэтому я не могу это проверить. Все еще работаю над этим. – user3555047

ответ

0

Инъекции нормально, имя пользователя, вероятно, не установлено, поэтому она равна нулю.

Попробуйте ввести принципал в ListProjectsMBean, чтобы убедиться, что аутентификация прошла успешно.

@Inject Principal principal; 
+0

Оба @Geinmachi и ваши комментарии были полезны. Гейнмачи был первым, поэтому я хотел отметить его комментарий как правильный, но кажется, что я могу только проверять ответы. – user3555047