/** * 토큰 정보를 이용해서 사용자 객체를 가져온다. 토큰 정보가 없거나 잘못된 정보라면 anonymous 객체를 반환한다. 잘못된 정보의 경우 토큰 정보를 삭제한다. * * @return */ private static User getUserFromToken() { Cookie cookie = request().cookies().get(TOKEN); if (cookie == null) { return User.anonymous; } String[] subject = StringUtils.split(cookie.value(), TOKEN_SEPARATOR); if (ArrayUtils.getLength(subject) != TOKEN_LENGTH) { return invalidToken(); } User user = authenticateWithHashedPassword(subject[0], subject[1]); if (user.isAnonymous()) { return invalidToken(); } return user; }