Skip to content

Commit eb05c0f

Browse files
committed
fix: 코드 스멜 제거
- 중복 코드 수정
1 parent abb50f5 commit eb05c0f

File tree

4 files changed

+42
-38
lines changed

4 files changed

+42
-38
lines changed

chat/src/main/java/org/example/soundlinkchat_java/global/auth/JwtProvider.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.example.soundlinkchat_java.global.auth;
22

33
import io.jsonwebtoken.security.Keys;
4+
import jakarta.annotation.PostConstruct;
45
import jakarta.servlet.http.Cookie;
56
import jakarta.servlet.http.HttpServletRequest;
67
import lombok.RequiredArgsConstructor;
@@ -31,13 +32,16 @@ public class JwtProvider {
3132

3233
// 시크릿 키
3334
@Value("${jwt.secret}")
34-
private String KEY;
35+
private String SECRET_KEY_STRING;
36+
private SecretKey SECRET_KEY;
37+
38+
@PostConstruct
39+
public void init() {
40+
this.SECRET_KEY = Keys.hmacShaKeyFor(SECRET_KEY_STRING.getBytes());
41+
}
3542

3643
// Access 토큰
3744
public String createAccessToken(long userId) {
38-
// 시크릿 키 (HMAC SHA256)
39-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
40-
4145
Claims claims = Jwts.claims().setSubject(String.valueOf(userId));
4246
Date now = new Date();
4347
return Jwts.builder()
@@ -53,9 +57,6 @@ public String createRefreshToken(long userId) {
5357
Claims claims = Jwts.claims().setSubject(String.valueOf(userId));
5458
Date now = new Date();
5559

56-
// 시크릿 키 (HMAC SHA256)
57-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
58-
5960
String refreshToken = Jwts.builder()
6061
.setClaims(claims)
6162
.setIssuedAt(now)
@@ -74,9 +75,6 @@ public String createRefreshToken(long userId) {
7475

7576
//토큰 검증(변조, 만료, 올바른 형식)
7677
public boolean validateToken(String token) {
77-
// 시크릿 키 (HMAC SHA256)
78-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
79-
8078
try {
8179
Jwts.parserBuilder()
8280
.setSigningKey(SECRET_KEY) // 서명 검증
@@ -119,9 +117,6 @@ public String resolveRefreshToken(HttpServletRequest request) {
119117

120118
// 토큰에서 id 반환
121119
public Long getUserId(String token){
122-
// 시크릿 키 (HMAC SHA256)
123-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
124-
125120
return Long.parseLong(Jwts.parserBuilder()
126121
.setSigningKey(SECRET_KEY)
127122
.build()

chat/src/main/java/org/example/soundlinkchat_java/global/config/RedisConfig.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,28 @@ public RedisConnectionFactory redisConnectionFactory(){
4141
public RedisTemplate<String,Object> redisTemplate(){
4242
RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
4343
redisTemplate.setConnectionFactory(redisConnectionFactory());
44-
//key,value를 email,authCode로 구현. String으로 직렬화
45-
redisTemplate.setKeySerializer(new StringRedisSerializer());
46-
//redisTemplate.setValueSerializer(new StringRedisSerializer());
47-
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
44+
redisTemplate.setKeySerializer(keySerializer());
45+
redisTemplate.setValueSerializer(valueSerializer());
4846

4947
return redisTemplate;
5048
}
5149

5250
@Bean
5351
public CacheManager contentCacheManager(RedisConnectionFactory cf) {
5452
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
55-
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
56-
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())) // Value Serializer 변경
57-
.entryTtl(Duration.ofMinutes(60L)); // 캐시 수명 10분
53+
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(keySerializer()))
54+
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(valueSerializer()))
55+
.entryTtl(Duration.ofMinutes(30L));
5856

5957
return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(cf).cacheDefaults(redisCacheConfiguration).build();
6058
}
59+
60+
private GenericJackson2JsonRedisSerializer valueSerializer() {
61+
return new GenericJackson2JsonRedisSerializer();
62+
}
63+
64+
private StringRedisSerializer keySerializer() {
65+
return new StringRedisSerializer();
66+
}
6167
}
6268

default/src/main/java/org/dfbf/soundlink/global/auth/JwtProvider.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.dfbf.soundlink.global.auth;
22

33
import io.jsonwebtoken.security.Keys;
4+
import jakarta.annotation.PostConstruct;
45
import jakarta.servlet.http.Cookie;
56
import jakarta.servlet.http.HttpServletRequest;
67
import lombok.RequiredArgsConstructor;
@@ -31,13 +32,16 @@ public class JwtProvider {
3132

3233
// 시크릿 키
3334
@Value("${jwt.secret}")
34-
private String KEY;
35+
private String SECRET_KEY_STRING;
36+
private SecretKey SECRET_KEY;
37+
38+
@PostConstruct
39+
public void init() {
40+
this.SECRET_KEY = Keys.hmacShaKeyFor(SECRET_KEY_STRING.getBytes());
41+
}
3542

3643
// Access 토큰
3744
public String createAccessToken(long userId) {
38-
// 시크릿 키 (HMAC SHA256)
39-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
40-
4145
Claims claims = Jwts.claims().setSubject(String.valueOf(userId));
4246
Date now = new Date();
4347
return Jwts.builder()
@@ -53,9 +57,6 @@ public String createRefreshToken(long userId) {
5357
Claims claims = Jwts.claims().setSubject(String.valueOf(userId));
5458
Date now = new Date();
5559

56-
// 시크릿 키 (HMAC SHA256)
57-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
58-
5960
String refreshToken = Jwts.builder()
6061
.setClaims(claims)
6162
.setIssuedAt(now)
@@ -74,9 +75,6 @@ public String createRefreshToken(long userId) {
7475

7576
//토큰 검증(변조, 만료, 올바른 형식)
7677
public boolean validateToken(String token) {
77-
// 시크릿 키 (HMAC SHA256)
78-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
79-
8078
try {
8179
Jwts.parserBuilder()
8280
.setSigningKey(SECRET_KEY) // 서명 검증
@@ -119,9 +117,6 @@ public String resolveRefreshToken(HttpServletRequest request) {
119117

120118
// 토큰에서 id 반환
121119
public Long getUserId(String token){
122-
// 시크릿 키 (HMAC SHA256)
123-
SecretKey SECRET_KEY = Keys.hmacShaKeyFor(KEY.getBytes());
124-
125120
return Long.parseLong(Jwts.parserBuilder()
126121
.setSigningKey(SECRET_KEY)
127122
.build()

default/src/main/java/org/dfbf/soundlink/global/config/RedisConfig.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,27 @@ public RedisConnectionFactory redisConnectionFactory(){
4141
public RedisTemplate<String,Object> redisTemplate(){
4242
RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
4343
redisTemplate.setConnectionFactory(redisConnectionFactory());
44-
redisTemplate.setKeySerializer(new StringRedisSerializer()); //key,value를 email,authCode로 구현. String으로 직렬화
45-
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
44+
redisTemplate.setKeySerializer(keySerializer());
45+
redisTemplate.setValueSerializer(valueSerializer());
4646

4747
return redisTemplate;
4848
}
4949

5050
@Bean
5151
public CacheManager contentCacheManager(RedisConnectionFactory cf) {
5252
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
53-
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
54-
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())) // Value Serializer 변경
55-
.entryTtl(Duration.ofMinutes(30L)); // 캐시 수명 30분
53+
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(keySerializer()))
54+
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(valueSerializer()))
55+
.entryTtl(Duration.ofMinutes(30L));
5656

5757
return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(cf).cacheDefaults(redisCacheConfiguration).build();
5858
}
59+
60+
private GenericJackson2JsonRedisSerializer valueSerializer() {
61+
return new GenericJackson2JsonRedisSerializer();
62+
}
63+
64+
private StringRedisSerializer keySerializer() {
65+
return new StringRedisSerializer();
66+
}
5967
}

0 commit comments

Comments
 (0)