Skip to content

Commit

Permalink
#329 refactor: LoginResolver 함수 분리
Browse files Browse the repository at this point in the history
  • Loading branch information
sojungpp committed Jul 14, 2024
1 parent 6e0f451 commit 59c0ce6
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.example.icebutler_server.user.service.UserServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.core.MethodParameter;
import org.springframework.core.env.Environment;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
Expand All @@ -21,10 +20,11 @@

@RequiredArgsConstructor
@Component
public class LoginResolver implements HandlerMethodArgumentResolver{
public class LoginResolver implements HandlerMethodArgumentResolver {

public static final String AUTH_HEADER_NAME = "Authorization";
;
private final TokenUtils tokenUtils;
private final Environment env;
private final UserServiceImpl userService;

@Override
Expand All @@ -38,20 +38,39 @@ public Object resolveArgument(@NotNull MethodParameter parameter,
ModelAndViewContainer modelAndViewContainer,
@NotNull NativeWebRequest webRequest,
WebDataBinderFactory binderFactory) {
checkMethodValidation(parameter);
String header = getHeader(webRequest);
String accessToken = getAccessToken(header);
Long userId = getUserId(accessToken);
return userId;
}

Auth auth = parameter.getMethodAnnotation(Auth.class);
if(auth == null) throw new BaseException(INTERNAL_SERVER_ERROR);
private void checkMethodValidation(MethodParameter parameter) {
if (parameter.getMethodAnnotation(Auth.class) == null) {
throw new BaseException(INTERNAL_SERVER_ERROR);
}
}

String header = webRequest.getHeader("Authorization");
if(!StringUtils.hasText(header)) throw new BaseException(NULL_TOKEN);
private static String getHeader(NativeWebRequest webRequest) {
String header = webRequest.getHeader(AUTH_HEADER_NAME);
if (!StringUtils.hasText(header)) {
throw new BaseException(NULL_TOKEN);
}
return header;
}

private String getAccessToken(String header) {
String accessToken = tokenUtils.separateAuthType(header);
tokenUtils.isValidToken(accessToken);
if (!tokenUtils.isTokenExists(accessToken)) {
throw new BaseException(EXPIRED_TOKEN);
}
return accessToken;
}

private Long getUserId(String accessToken) {
Long userId = Long.valueOf(tokenUtils.getJwtContents(accessToken));
if(!tokenUtils.isTokenExists(accessToken)) throw new BaseException(EXPIRED_TOKEN);
userService.validateUser(userId);

return userId;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ public String createRefreshTokenEmail(Long userId, String email) {
return tokenType + ONE_BLOCK + refreshToken;
}

// TODO isTokenExists 까지 함께 검증하기
public boolean isValidToken(String justToken) {
if (justToken != null && justToken.split(ONE_BLOCK).length == 2)
justToken = justToken.split(ONE_BLOCK)[1];
Expand Down

0 comments on commit 59c0ce6

Please sign in to comment.