Skip to content

Commit

Permalink
Merge pull request #270 from OutDecision/issue/260
Browse files Browse the repository at this point in the history
🐞 [BUGFIX]: 엑세스토큰 시간 수정
  • Loading branch information
baeksom authored May 30, 2024
2 parents 3c0d9fe + 18063cf commit bfc56b6
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 98 deletions.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,13 @@ public String republishAccessToken(String accessToken, HttpServletResponse respo
// 액세스 토큰의 값을 수정해준다.
resultToken.updateAccessToken(newAccessToken);
tokenRepository.save(resultToken);
// addCookie(response, "Authorization", newAccessToken, 60*60);
addCookie(response, "Authorization", newAccessToken, 60*60);
log.info("Attempting to republish accessToken: {}", newAccessToken);
// 새로운 액세스 토큰을 반환해준다.
return newAccessToken;
}

// deleteCookie(response, "Authorization");
deleteCookie(response, "Authorization");
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ public String generateRefreshToken(String email, String role) {


public String generateAccessToken(String email, String role) {
// long tokenPeriod = 1000L * 60L * 30L; // 30분
long tokenPeriod = 1000L * 10L;
long tokenPeriod = 1000L * 60L * 30L; // 30분
// long tokenPeriod = 1000L * 10L;
Claims claims = Jwts.claims().setSubject(email);
claims.put("role", role);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,15 +49,6 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.logoutSuccessUrl("/")
.permitAll();

// http
// .authorizeRequests() // 요청에 대한 인증 설정
// .requestMatchers("/swagger-ui/**","/v3/api-docs/**").permitAll()
// .requestMatchers("/token/**").permitAll() // 토큰 발급을 위한 경로는 모두 허용
// .requestMatchers("/register/**").permitAll()
// .requestMatchers("/loginSuccess").permitAll()
// .requestMatchers("/", "/css/**", "/images/**", "/js/**", "/favicon.ico", "/h2-console/**").permitAll()
// .anyRequest().authenticated(); // 그 외의 모든 요청은 인증이 필요하다.

http
.authorizeHttpRequests()
.anyRequest().permitAll();
Expand All @@ -67,13 +58,15 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
.accessDeniedPage("/error");

http
.oauth2Login() // OAuth2 로그인 설정시작
.loginPage("/login")
.userInfoEndpoint().userService(customOAuth2UserService) // OAuth2 로그인시 사용자 정보를 가져오는 엔드포인트와 사용자 서비스를 설정
.and()
.failureHandler(oAuth2LoginFailureHandler) // OAuth2 로그인 실패시 처리할 핸들러를 지정해준다.
.successHandler(oAuth2LoginSuccessHandler)
.permitAll(); // OAuth2 로그인 성공시 처리할 핸들러를 지정해준다.
.oauth2Login(oauth2 -> oauth2
.loginPage("/login")
.userInfoEndpoint()
.userService(customOAuth2UserService) // OAuth2 로그인시 사용자 정보를 가져오는 엔드포인트와 사용자 서비스를 설정
.and()
.failureHandler(oAuth2LoginFailureHandler) // OAuth2 로그인 실패시 처리할 핸들러를 지정해준다.
.successHandler(oAuth2LoginSuccessHandler) // OAuth2 로그인 성공시 처리할 핸들러를 지정해준다.
.permitAll()
);


// JWT 인증 필터를 UsernamePasswordAuthenticationFilter 앞에 추가한다.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,11 +61,9 @@ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse

if (newAccessToken != null) {
log.info("토큰 발급 완료 필터 newAccessToken = {}", newAccessToken);
addCookie(response, "Authorization", newAccessToken, 60*60);
} else {
log.error("새로운 토큰 발급 실패");
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "토큰 재발급 실패");
deleteCookie(response, "Authorization");
}

// 원래 요청을 새로 만든 토큰으로 다시 수행
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package KGUcapstone.OutDecision.global.security.handler;

import KGUcapstone.OutDecision.global.error.exception.ApiResponse;
import KGUcapstone.OutDecision.global.security.dto.GeneratedToken;
import KGUcapstone.OutDecision.global.common.util.AESUtil;
import KGUcapstone.OutDecision.global.common.util.JwtUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
Expand All @@ -25,6 +27,7 @@
public class CustomAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {

private final JwtUtil jwtUtil;
private final ObjectMapper objectMapper = new ObjectMapper();

@Value("${JOIN_SECRET}")
String joinSecret;
Expand All @@ -51,6 +54,9 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
.orElseThrow(IllegalAccessError::new) // 존재하지 않을 시 예외를 던진다.
.getAuthority(); // Role을 가져온다.

// response.setContentType("application/json;charset=UTF-8");
// response.setStatus(HttpServletResponse.SC_OK);

// 회원이 존재할경우
if (isExist) {
// 회원이 존재하면 jwt token 발행을 시작한다.
Expand All @@ -63,6 +69,9 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
// 로그인 확인 페이지로 리다이렉트 시킨다.
log.info("소셜 로그인 redirect 준비");
getRedirectStrategy().sendRedirect(request, response, ip+"/");

// JSON 응답 생성
// objectMapper.writeValue(response.getWriter(), ApiResponse.onSuccess(null));
}
else {
log.info("소셜 회원가입 redirect 준비");
Expand All @@ -75,6 +84,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
addCookie(response, "provider", provider, 60*5); // 5분

getRedirectStrategy().sendRedirect(request, response, ip+"/signup/social?join_token="+join_token);
// objectMapper.writeValue(response.getWriter(), ApiResponse.onFailure("401", "회원가입 필요", join_token));
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo

// 로그인 확인 페이지로 리다이렉트 시킨다.
log.info("일반 로그인 redirect 준비");
getRedirectStrategy().sendRedirect(request, response, "/loginSuccess");
getRedirectStrategy().sendRedirect(request, response, "/");
}
}

0 comments on commit bfc56b6

Please sign in to comment.