В моем приложении Java EE, я объявляю следующий успокоительный классSessionContext.getCallerPrincipal.getName() возвращает «ANONYMOUS»
@Path("userProfile")
@Stateless
public class UserProfileRestful {
@Resource
private SessionContext sessionContext;
@Path("userName")
@GET
@Produces(MediaType.Text_Palin)
public String findCurrentUserName(){
return sessionContext.getCallerPrincipal.getName();
}
}
с целью получить имя пользователя, вошедшего в систему пользователя через любого клиента.
После того как я войти в систему с именем пользователя «MyUser», я просто вставил следующий URL в веб-браузере в новой вкладке
http://localhost:8080/MyApp/rest/userProfile/userName
и отображаемая ответ был, как и ожидалось: «MyUser».
Теперь я пытался получить, что имя из другого приложения ExtJS (что не требует аутентификации), выполняющего запрос Ajax следующим образом:
Ext.Ajax.Request({
url : "http://localhost:8080/MyApp/rest/userProfile/userName",
success : function(response,options){
alert('username : ' + response.responseText);
},
failure : function(){
alert('request failed');
}
});
насторожило результат был «Анонимные», несмотря на то, что я до сих пор вошел в систему как «myuser» в течение того же сеанса.
Итак, почему главный звонящий изменил во втором случае, и есть ли решение для этого?