2015-06-16 4 views
1

После того, как пользователь зарегистрирован успешно, я пытаюсь перенаправить пользователя после страницы входа и попытаться получить активного пользователя из SecurityContextHolder.getContext(). getAuthentication(); который возвращает null.Spring Security: SecurityContextHolder.getContext(). GetAuthentication() возвращает null после регистрации пользователя и перенаправления на страницу после входа в систему.

Вот как я настройка контекста, когда пользователь успешно зарегистрирован

UsernamePasswordAuthenticationToken authenticatedUser = new UsernamePasswordAuthenticationToken(userDetails.getUsername(), userDetails.getPassword(), userDetails.getAuthorities()); 
authenticatedUser.setDetails(userDetails); 

if(authenticatedUser.isAuthenticated()) { 
     SecurityContextHolder.getContext().setAuthentication(authenticatedUser); 
} 

Тогда я перенаправлять пользователя на страницу с помощью х response.sendRedirect (URL);

В методе контроллера я пытаюсь текущего пользователя, как

@RequestMapping("/<pattern>") 
public @ResponseBody <method_name>(HttpServletRequest req,HttpServletResponse resp){ 
    Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
     if(auth==null){ 
      System.out.println("this is null"); 
     } 
     else{ 
      // do something 
     } 
} 

Я вижу текст в консоли, как «это пустое значение».

Как получить сохранение currentuser/Principal из SecurityContext() через период пользователя до выхода пользователя из системы.

+1

проверить [это] (http://www.mkyong.com/spring-security/get-current-logged-in-username-in-spring-security/), чтобы получить текущее имя пользователя регистратора. Чтобы получить все данные 'User user = SecurityContextHolder.getContext(). GetAuthentication(). GetPrincipal();' – pise

+0

Что такое loggedIn? – ikumen

+0

@ user2264997 это была ошибка типографии. Я отредактировал его сейчас. – Giridhar

ответ

0

У меня есть решение.

Проблема связана с атрибутом шаблона для тега для этой конкретной группы URI.

Раньше он был/путь/*, и он терпел неудачу. Я изменил его на/path/**, и он сработал.

Было бы полезно, если бы кто-то мог объяснить между этими двумя комбинациями шаблонов (/ * и/**).

+0

шаблон атрибута http tag – Giridhar