Точка A: request.getRequestURI();
метод. Этот метод всегда возвращает URL сервлета, в котором обрабатывается текущий запрос.
Точка B: в userService.createLoginURL(thisURL)
thisURL
- это фактически URL-адрес, на который следует перенаправить пользователя после успешного входа в систему. В вашем случае thisURL указывает на ваш текущий путь сервлета, а не туда, куда вы хотите перенаправить пользователя (см. Пункт A)
То есть, если ваша страница, на которую вы хотите перенаправить пользователя после успешного входа в систему, - www.yourapp.com/home
, вам нужно сделать что-то вроде этого:
UserService userService = UserServiceFactory.getUserService();
HttpServletRequest request = this.getThreadLocalRequest();
String message = "";
String thisURL = "http://www.yourapp.com/home";
Principal principal = request.getUserPrincipal();
if(principal == null){
message = "<p>Please <a href=\"" + userService.createLoginURL(thisURL) + "\">sign in</a>.</p>";
}
else{
message = "Hola " + principal.getName() + ". Puedes <a href=\"" +
userService.createLogoutURL(thisURL)+ "\">sign out</a>.</p>";
}
return message;
^ Обратите внимание на значение, устанавливаемое для thisURL.