Re: Кастомизация spring security для spring-MVC
От: Sash_net  
Дата: 17.01.13 12:41
Оценка:
Задача реализована написанием своего обработчика в классе-контроллере:

    @Resource (name= "authenticationManager")
    private AuthenticationManager authenticationManager;

    @RequestMapping(value="/security_check_json")
    public @ResponseBody IResult<Object> loginJson(
            @RequestParam(required=true, value="j_username") String email, 
            @RequestParam(required=true, value="j_password") String password,
            @RequestParam(required=false) String rememberMe,
            HttpServletRequest request) {
        
        IUser user = userService.getUserByEmail(email);
        if(null != user) {
            UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(email, password, user.getAuthorities());
            token.setDetails(new WebAuthenticationDetails(request));
            Authentication authenticatedUser;
            try {
                authenticatedUser = authenticationManager.authenticate(token);
            } catch (AuthenticationException e) {
                return new Result<Object>(ResultCode.LOGIN_CREDENTIALS_IS_INCORRECT);
            }
            SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
            if("on".equalsIgnoreCase(rememberMe)) {
                //TODO: remember
            }
        } else {
            return new Result<Object>(ResultCode.LOGIN_CREDENTIALS_IS_INCORRECT);
        }
        return new Result<Object>(ResultCode.SUCCESS);
    }


С реализацией rememberMe разбираюсь, по статье здесь.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.