From 82dac0d126d93dbbc2a7d9ab73117ce7b5ff1dac Mon Sep 17 00:00:00 2001 From: 1223v <1223v@naver.com> Date: Wed, 28 Feb 2024 04:41:51 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20=EC=83=9D=EC=84=B1=EC=9E=90=20=EC=A3=BC?= =?UTF-8?q?=EC=9E=85=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../readyverydemo/config/OauthConfig.java | 16 ++++++++++ .../oauth2/CustomRequestEntityConverter.java | 31 ++++++------------- 2 files changed, 26 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/readyvery/readyverydemo/config/OauthConfig.java b/src/main/java/com/readyvery/readyverydemo/config/OauthConfig.java index d40cfa2..87cb7b5 100644 --- a/src/main/java/com/readyvery/readyverydemo/config/OauthConfig.java +++ b/src/main/java/com/readyvery/readyverydemo/config/OauthConfig.java @@ -1,13 +1,29 @@ package com.readyvery.readyverydemo.config; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; +import lombok.Getter; import lombok.extern.slf4j.Slf4j; @Slf4j @Configuration +@Getter public class OauthConfig { + @Value("${app.apple.url}") + private String appleUrl; + + @Value("${app.apple.private-key}") + private String privateKeyString; + @Value("${app.apple.client-id}") + private String appleClientId; + + @Value("${app.apple.team-id}") + private String appleTeamId; + + @Value("${app.apple.key-id}") + private String appleKeyId; public static final String KAKAO_NAME = "kakao"; public static final String APPLE_NAME = "apple"; } diff --git a/src/main/java/com/readyvery/readyverydemo/security/oauth2/CustomRequestEntityConverter.java b/src/main/java/com/readyvery/readyverydemo/security/oauth2/CustomRequestEntityConverter.java index f129629..ddaa534 100644 --- a/src/main/java/com/readyvery/readyverydemo/security/oauth2/CustomRequestEntityConverter.java +++ b/src/main/java/com/readyvery/readyverydemo/security/oauth2/CustomRequestEntityConverter.java @@ -12,13 +12,14 @@ import org.bouncycastle.asn1.pkcs.PrivateKeyInfo; import org.bouncycastle.openssl.PEMParser; import org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter; -import org.springframework.beans.factory.annotation.Value; import org.springframework.core.convert.converter.Converter; import org.springframework.http.RequestEntity; import org.springframework.security.oauth2.client.endpoint.OAuth2AuthorizationCodeGrantRequest; import org.springframework.security.oauth2.client.endpoint.OAuth2AuthorizationCodeGrantRequestEntityConverter; import org.springframework.util.MultiValueMap; +import com.readyvery.readyverydemo.config.OauthConfig; + import io.jsonwebtoken.Jwts; import lombok.Getter; import lombok.extern.slf4j.Slf4j; @@ -27,26 +28,14 @@ @Getter public class CustomRequestEntityConverter implements Converter> { - private OAuth2AuthorizationCodeGrantRequestEntityConverter defaultConverter; + private final OAuth2AuthorizationCodeGrantRequestEntityConverter defaultConverter; + private final OauthConfig oauthConfig; public CustomRequestEntityConverter() { defaultConverter = new OAuth2AuthorizationCodeGrantRequestEntityConverter(); + oauthConfig = new OauthConfig(); } - @Value("${app.apple.url}") - private String appleUrl; - - @Value("${app.apple.private-key}") - private String privateKeyString; - @Value("${app.apple.client-id}") - private String appleClientId; - - @Value("${app.apple.team-id}") - private String appleTeamId; - - @Value("${app.apple.key-id}") - private String appleKeyId; - @Override public RequestEntity convert(OAuth2AuthorizationCodeGrantRequest req) { RequestEntity entity = defaultConverter.convert(req); @@ -64,7 +53,7 @@ public RequestEntity convert(OAuth2AuthorizationCodeGrantRequest req) { } public PrivateKey getPrivateKey() throws IOException { - PEMParser pemParser = new PEMParser(new StringReader(privateKeyString)); + PEMParser pemParser = new PEMParser(new StringReader(oauthConfig.getPrivateKeyString())); PrivateKeyInfo object = (PrivateKeyInfo)pemParser.readObject(); JcaPEMKeyConverter converter = new JcaPEMKeyConverter(); return converter.getPrivateKey(object); @@ -73,16 +62,16 @@ public PrivateKey getPrivateKey() throws IOException { public String createClientSecret() throws IOException { Date expirationDate = Date.from(LocalDateTime.now().plusDays(30).atZone(ZoneId.systemDefault()).toInstant()); Map jwtHeader = new HashMap<>(); - jwtHeader.put("kid", appleKeyId); + jwtHeader.put("kid", oauthConfig.getAppleKeyId()); jwtHeader.put("alg", "ES256"); return Jwts.builder() .setHeaderParams(jwtHeader) - .setIssuer(appleTeamId) + .setIssuer(oauthConfig.getAppleTeamId()) .setIssuedAt(new Date(System.currentTimeMillis())) // 발행 시간 - UNIX 시간 .setExpiration(expirationDate) // 만료 시간 - .setAudience(appleUrl) - .setSubject(appleClientId) + .setAudience(oauthConfig.getAppleUrl()) + .setSubject(oauthConfig.getAppleClientId()) .signWith(getPrivateKey()) .compact(); }