Skip to content

Commit

Permalink
Merge pull request #38 from 1223v/auth
Browse files Browse the repository at this point in the history
Fix: Oauth password 추가
  • Loading branch information
1223v authored Jan 9, 2024
2 parents 5b491be + ff73090 commit 2cd2369
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package com.readyvery.readyverydemo.security.jwt.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import com.auth0.jwt.algorithms.Algorithm;

import lombok.Getter;

@Configuration
@Getter
public class JwtConfig {

private String secretKey;
private Long accessTokenExpirationPeriod;
private Long refreshTokenExpirationPeriod;
private Algorithm algorithm;

private String accessTokenName;
private String refreshTokenName;
private String frontendUrl;
private String cookieDomain;

public static final String ACCESS_TOKEN_SUBJECT = "AccessToken";
public static final String REFRESH_TOKEN_SUBJECT = "RefreshToken";
public static final String EMAIL_CLAIM = "email";
public static final String USER_NUMBER = "userNumber";

@Value("${jwt.secretKey}")
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
initializeAlgorithm();
}

@Value("${jwt.access.expiration}")
public void setAccessTokenExpirationPeriod(Long accessTokenExpirationPeriod) {
this.accessTokenExpirationPeriod = accessTokenExpirationPeriod;
}

@Value("${jwt.refresh.expiration}")
public void setRefreshTokenExpirationPeriod(Long refreshTokenExpirationPeriod) {
this.refreshTokenExpirationPeriod = refreshTokenExpirationPeriod;
}

@Value("${jwt.access.cookie}")
public void setAccessTokenName(String accessTokenName) {
this.accessTokenName = accessTokenName;
}

@Value("${jwt.refresh.cookie}")
public void setRefreshTokenName(String refreshTokenName) {
this.refreshTokenName = refreshTokenName;
}

@Value("${jwt.redirect-uri}")
public void setFrontendUrl(String frontendUrl) {
this.frontendUrl = frontendUrl;
}

@Value("${jwt.refresh.cookie.domain}")
public void setCookieDomain(String cookieDomain) {
this.cookieDomain = cookieDomain;
}

private void initializeAlgorithm() {
if (secretKey != null && !secretKey.isEmpty()) {
algorithm = Algorithm.HMAC512(secretKey);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ public CeoInfo toEntity(SocialType socialType, OAuth2UserInfo oauth2UserInfo) {
.phone(oauth2UserInfo.getPhoneNumber())
.nickName(oauth2UserInfo.getNickName())
.imageUrl(oauth2UserInfo.getImageUrl())
.password("readyvery12!")
.role(Role.USER)
.build();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.stereotype.Component;

import com.readyvery.readyverydemo.domain.repository.UserRepository;
import com.readyvery.readyverydemo.security.jwt.config.JwtConfig;
import com.readyvery.readyverydemo.security.jwt.service.JwtService;
import com.readyvery.readyverydemo.security.jwt.service.JwtTokenizer;
import com.readyvery.readyverydemo.security.oauth2.CustomOAuth2User;

import jakarta.servlet.ServletException;
Expand All @@ -23,8 +22,7 @@
public class OAuth2LoginSuccessHandler implements AuthenticationSuccessHandler {

private final JwtService jwtService;

private final JwtTokenizer jwtTokenizer;
private final JwtConfig jwtConfig;

@Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,
Expand All @@ -35,7 +33,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
CustomOAuth2User oAuth2User = (CustomOAuth2User)authentication.getPrincipal();

loginSuccess(response, oAuth2User); // 로그인에 성공한 경우 access, refresh 토큰 생성
response.sendRedirect(jwtTokenizer.getFrontendUrl());
response.sendRedirect(jwtConfig.getFrontendUrl());
} catch (Exception e) {
throw e;
}
Expand Down

0 comments on commit 2cd2369

Please sign in to comment.