diff --git a/build.gradle b/build.gradle index 4620bb6..dbf7887 100644 --- a/build.gradle +++ b/build.gradle @@ -60,6 +60,11 @@ dependencies { Jwt (JSON Web Token Support For The JVM) */ implementation 'io.jsonwebtoken:jjwt:0.9.1' + + /* + Redis + */ + implementation 'org.springframework.boot:spring-boot-starter-data-redis' } tasks.named('test') { diff --git a/src/main/java/demo/api/config/RedisConfig.java b/src/main/java/demo/api/config/RedisConfig.java new file mode 100644 index 0000000..d3b51f4 --- /dev/null +++ b/src/main/java/demo/api/config/RedisConfig.java @@ -0,0 +1,43 @@ +package demo.api.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + + @Value("${redis.host}") + private String redisHost; + + @Value("${redis.port}") + private int redisPort; + + /* + RedisTemplate을 이용한 방식 + + RedisConnectionFactory 인터페이스를 통해 + LettuceConnectionFactory를 생성하여 반환 + */ + @Bean + public RedisConnectionFactory redisConnectionFactory() { + return new LettuceConnectionFactory(redisHost, redisPort); + } + + @Bean + public RedisTemplate redisTemplate() { + // redisTemplate를 받아와서 set, get, delete를 사용 + RedisTemplate redisTemplate = new RedisTemplate<>(); + // setKeySerializer, setValueSerializer 설정 + // redis-cli을 통해 직접 데이터를 조회 시 알아볼 수 없는 형태로 출력되는 것을 방지 + redisTemplate.setKeySerializer(new StringRedisSerializer()); + redisTemplate.setValueSerializer(new StringRedisSerializer()); + redisTemplate.setConnectionFactory(redisConnectionFactory()); + + return redisTemplate; + } +} diff --git a/src/main/java/demo/api/jwt/dtos/TokenDto.java b/src/main/java/demo/api/jwt/dtos/TokenDto.java index c006caa..06cb6e7 100644 --- a/src/main/java/demo/api/jwt/dtos/TokenDto.java +++ b/src/main/java/demo/api/jwt/dtos/TokenDto.java @@ -7,4 +7,5 @@ import lombok.Getter; @Getter public class TokenDto { private String access_token; + private String refresh_token; } diff --git a/src/main/java/demo/api/user/UserController.java b/src/main/java/demo/api/user/UserController.java index 4d6a9ed..949654c 100644 --- a/src/main/java/demo/api/user/UserController.java +++ b/src/main/java/demo/api/user/UserController.java @@ -48,7 +48,7 @@ public class UserController { } @GetMapping("/userList") - public List showUserList(Model model) { + public List showUserList() { return userService.findAll(); } } diff --git a/src/main/java/demo/api/user/domain/User.java b/src/main/java/demo/api/user/domain/User.java index 70fc75e..b76df42 100644 --- a/src/main/java/demo/api/user/domain/User.java +++ b/src/main/java/demo/api/user/domain/User.java @@ -47,14 +47,4 @@ public class User extends CoreEntity { this.password = passwordEncoder.encode(this.password); return this; } - - /** - * 비밀번호 확인 - * @param plainPassword 암호화 이전의 비밀번호 - * @param passwordEncoder 암호화에 사용된 클래스 - * @return true | false - */ - public boolean checkPassword(String plainPassword, PasswordEncoder passwordEncoder) { - return passwordEncoder.matches(plainPassword, this.password); - } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e65df0b..027c013 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -13,4 +13,7 @@ spring: jwt: token: secret-key: aG91Mjctc2ltcGxlLXNwcmluZy1ib290LWFwaS1qd3QK - expire-length: 300000 \ No newline at end of file + expire-length: 300000 +redis: + host: localhost + port: 6379 \ No newline at end of file