2016-11-30 11 views
-1

Я использую angularjs с пружинной безопасностью 3.2.7 и развернуть на коте 6 использовал этот код операции входаЯ использую пружинную безопасность 3.2.7 с котом 6, и я полоть, чтобы кнопка выхода

@RequestMapping(value = "/login", method = RequestMethod.POST) 
public @ResponseBody Map<String, ? extends Object> login(
         HttpServletRequest request, 
         @RequestParam String userName, 
         @RequestParam String password) { 
    Map<String, Object> response = new HashMap<String, Object>(); 
    logger.info("RegistreController Login..."); 
    logger.info("Start Login for the user :"+userName); 
    try{ 
    String encodedPassword = hashPassword(password); 
    System.out.println("encodedPassword = "+encodedPassword); 

    final UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(userName, encodedPassword); 

    // this function returns UsernamePasswordAuthenticationToken(user, password, authorities) 
    final Authentication authentication = authenticationProvider.authenticate(authRequest); 

    SecurityContextHolder.getContext().setAuthentication(authentication); 
    Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); 

    CustomUser user = null; 
    if (principal instanceof CustomUser) { 
     user = ((CustomUser)principal); 
    } 
}catch(Exception e) { 
    if(e instanceof CredentialsExpiredException){ 
     response.put("expired", true); 
    } 
    response.put("success", false); 
    response.put("msg", e.getMessage()); 
    logger.fatal(new MasterProtectionLogger().reportError("UserAdminController.login()", e, logger)); 
} 
    return response; 
} 

I нужно написать выход из системы по коду (не вызывая j_spring_security_logout) как я могу это сделать?

ответ

0

Ключ заключается в следующем:

SecurityContextHolder.clearContext(); 

Вы также можете аннулировать HTTP сессии.

 Смежные вопросы

  • Нет связанных вопросов^_^