Skip to content

Commit

Permalink
chore : SecurityConfig를 변경한다
Browse files Browse the repository at this point in the history
  • Loading branch information
packdev937 committed May 7, 2024
1 parent 0842cd1 commit 9c72207
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ public class SecurityConfig {
private final SaveUserPort saveUserPort;

private static final String[] RESOURCE_LIST = {
"/api/healthcheck", "/swagger-ui/**", "/v3/api-docs/**", "/swagger-resources/**", "/admin/img/**", "/css/**",
"/swagger-ui/**", "/v3/api-docs/**", "/swagger-resources/**", "/admin/img/**", "/css/**",
"/js/**",
"/favicon.ico", "/error/**", "/webjars/**", "/h2-console/**", "/api-docs/**"
"/favicon.ico", "/error/**", "/webjars/**", "/h2-console/**", "/api-docs/**", "/api/healthcheck"
};
private static final String[] AUTH_WHITELIST = {
"/api/oauth/**"
Expand All @@ -45,6 +45,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
// csrf를 비활성화합니다.
.csrf(AbstractHttpConfigurer::disable)
.cors(cors -> cors.disable())
.headers(headers -> headers.disable())
// Spring Security에서 제공하는 기본 로그인 페이지를 비활성화 합니다.
// Request 헤더에 id, password를 담아서 요청하는 방식을 사용하는 방식은 보안적으로 취약합니다.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@
import kusitms.duduk.core.user.port.output.SaveUserPort;
import kusitms.duduk.domain.user.User;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.util.StringUtils;
import org.springframework.web.filter.OncePerRequestFilter;

@Slf4j
@RequiredArgsConstructor
public class JwtAuthenticationFilter extends OncePerRequestFilter {

Expand Down Expand Up @@ -62,26 +64,24 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse
refreshToken = extractRefreshToken(request)
.filter(jwtTokenProvider::isTokenValid)
.orElse(null);
/**
* RefreshToken이 헤더에 존재하고 유효하다면 403 에러 (AccessToken 만료) 가 발생한 것입니다.
* User DB의 리프레시 토큰과 일치하는지 판단 후 일치 한다면 AccessToken을 재발급합니다.
*/
if (refreshToken != null) {
verifyRefreshTokenAndReIssueAccessToken(response, refreshToken);
return;
}
/**
* RefreshToken이 없거나 유효하지 않은 경우 AccessToken을 추출합니다.
* AccessToken 마저 없다면 403 에러를 반환합니다.
*/
if (refreshToken == null) {
verifyAccessTokenAndSaveAuthentication(request, response, filterChain);
return;
}
} catch (Exception e) {
// filterChain.doFilter(request, response);
return;
}
/**
* RefreshToken이 헤더에 존재하고 유효하다면 403 에러 (AccessToken 만료) 가 발생한 것입니다.
* User DB의 리프레시 토큰과 일치하는지 판단 후 일치 한다면 AccessToken을 재발급합니다.
*/
if (refreshToken != null) {
verifyRefreshTokenAndReIssueAccessToken(response, refreshToken);
return;
}

/**
* RefreshToken이 없거나 유효하지 않은 경우 AccessToken을 추출합니다.
* AccessToken 마저 없다면 403 에러를 반환합니다.
*/
if (refreshToken == null) {
verifyAccessTokenAndSaveAuthentication(request, response, filterChain);
return;
log.info("RefreshToken is not valid");
}

filterChain.doFilter(request, response);
Expand Down
2 changes: 1 addition & 1 deletion api-server/src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
spring:
profiles:
active: prod
active: local

0 comments on commit 9c72207

Please sign in to comment.