Skip to content

Commit

Permalink
fix: login refresh token test(#94)
Browse files Browse the repository at this point in the history
  • Loading branch information
eastmeet committed Jan 25, 2023
1 parent e351cfc commit 9412889
Show file tree
Hide file tree
Showing 9 changed files with 19 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,14 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
"/",
"/signup",
"/login",
"/token",
"/token/refresh/**",
"/token/refresh/*",
"/attractions", "/attractions/**",
"/posts", "/posts/*", "/posts/**",
"/comments", "comments/*").permitAll()
.antMatchers("admin").hasRole("ADMIN")
// .requestMatchers(toH2Console()).permitAll()
.anyRequest().permitAll()
.anyRequest().authenticated()
);
// .oauth2Login(oauth2 -> oauth2
// .successHandler(new OAuth2MemberSuccessHandler(jwtProvider))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,13 @@ public class TokenController {
public ResponseEntity<?> findCookie(@PathVariable("member-id") Long memberId,
@CookieValue(value = "refreshToken") String refresh) {

boolean b = jwtParser.verifyToken(refresh);
log.info("b={}",b);
jwtParser.verifyToken(refresh);
Member member = memberService.findMemberByMemberId(memberId);
log.info("member={}", member);
RenewTokenDto.RenewTokenDtoBuilder builder = RenewTokenDto.builder();
RenewTokenDto renewTokenDto =
builder.memberId(member.getMemberId())
.email(member.getEmail())
.accessToken("Bearer " + jwtGenerator.generateAccessToken(member.getEmail()))
.accessTokenExpiresIn(jwtGenerator.getTokenExpiration(30).getTime())
.accessToken("Bearer " + jwtGenerator.generateAccessToken(member.getEmail(),member.getRoles()))
.build();

return ResponseEntity.ok(new DataResponseDto<>(renewTokenDto));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,11 @@ public class RenewTokenDto {
private Long memberId;
private String email;
private String accessToken;
private long accessTokenExpiresIn;

@Builder
public RenewTokenDto(Long memberId, String email, String accessToken, long accessTokenExpiresIn) {
public RenewTokenDto(Long memberId, String email, String accessToken) {
this.memberId = memberId;
this.email = email;
this.accessToken = accessToken;
this.accessTokenExpiresIn = accessTokenExpiresIn;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -66,18 +66,13 @@ protected void successfulAuthentication(HttpServletRequest request,
ResponseCookie cookie = getResponseCookie(refreshToken);
response.setContentType(MediaType.APPLICATION_JSON_UTF8_VALUE);
response.setHeader("Set-Cookie", String.valueOf(cookie));
response.setHeader("Authorization", BEARER_PREFIX + accessToken);

// setCookie(response, refreshToken);
// response.setHeader("Authorization", BEARER_PREFIX + accessToken);

Gson gson = new Gson();
LoginResponseDto of = LoginResponseDto.of(authMember, BEARER_PREFIX + accessToken);
response.getWriter().write(gson.toJson(new DataResponseDto<>(of), DataResponseDto.class));
this.getSuccessHandler().onAuthenticationSuccess(request, response, authResult);


//tokenProvider.refreshTokenSetHeader(refreshToken,response); // RefreshToken Header response 생성

}

private static ResponseCookie getResponseCookie(String refreshToken) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,11 @@ public Date getTokenExpiration(int expirationMinutes) {
return calendar.getTime();
}

public String generateAccessToken(String payload) {
public String generateAccessToken(String payload, List<String> roles) {
Claims claims = Jwts.claims().setSubject(payload);
claims.put("roles", roles);
Date now = new Date();
Date validity = new Date(now.getTime() + accessTokenExpireTimeMinute);
Date validity = new Date(now.getTime() + 30000); // 30000이 30분을 의미함

return Jwts.builder()
.setClaims(claims)
Expand All @@ -73,8 +74,7 @@ public String generateAccessToken(String payload) {
.compact();
}

public String generateRefreshToken(String subject, Date expiration, String base64EncodedSecretKey) {
Key key = getKeyFromBase64EncodedKey(base64EncodedSecretKey);
public String generateRefreshToken(String subject, Date expiration) {

return Jwts.builder()
.setSubject(subject)
Expand All @@ -89,8 +89,7 @@ public TokenDto generateTokenDto(AuthMember authMember) {
Date accessTokenExpiresIn = getTokenExpiration(accessTokenExpireTimeMinute);
Date refreshTokenExpiresIn = getTokenExpiration(refreshTokenExpireTimeMinute);

Map<String, Object> claims = new HashMap<>();
claims.put("id", authMember.getMemberId());
Claims claims = Jwts.claims().setSubject(authMember.getEmail());
claims.put("roles", authMember.getRoles());

// Access Token 생성
Expand Down
4 changes: 2 additions & 2 deletions server/src/main/resources/application-local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,8 @@ mail:

jwt:
secret-key: ${JWT_SECRET_KEY}
access-token-expiration-minutes: 30
refresh-token-expiration-minutes: 420
access-token-expiration-minutes: 1
refresh-token-expiration-minutes: 1

cloud:
aws:
Expand Down
4 changes: 2 additions & 2 deletions server/src/main/resources/application-server.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ mail:

jwt:
secret-key: ${JWT_SECRET_KEY} # 환경 변수로 설정했음
access-token-expiration-minutes: 30
refresh-token-expiration-minutes: 420
access-token-expiration-minutes: 1
refresh-token-expiration-minutes: 1


cloud:
Expand Down
4 changes: 2 additions & 2 deletions server/src/main/resources/application-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ mail:

jwt:
secret-key: ${JWT_SECRET_KEY}
access-token-expiration-minutes: 420
refresh-token-expiration-minutes: 420
access-token-expiration-minutes: 1
refresh-token-expiration-minutes: 1

cloud:
aws:
Expand Down
2 changes: 1 addition & 1 deletion server/src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
spring:
profiles:
active: local
active: test

0 comments on commit 9412889

Please sign in to comment.