
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.common.config;
import com.takensoft.cms.loginPolicy.service.LoginPolicyService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
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;
/**
* @author takensoft
* @since 2025.03.12
* @modification
* since | author | description
* 2025.03.12 | takensoft | 최초 등록
*
* redis 설정을 위한 Config
*/
@Configuration
public class RedisConfig {
@Value("${redis.host}")
private String redisHost;
@Value("${redis.port}")
private int redisPort;
private final LoginPolicyService loginPolicyService;
public RedisConfig(LoginPolicyService loginPolicyService) {
this.loginPolicyService = loginPolicyService;
}
@Bean
@ConditionalOnProperty(name = "config.allow-multiple-logins", havingValue = "false", matchIfMissing = true) //redis 사용 안 할 경우 빈 등록x
public RedisConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory(redisHost, redisPort);
}
@Bean
@ConditionalOnProperty(name = "config.allow-multiple-logins", havingValue = "false", matchIfMissing = true) //redis 사용 안 할 경우 빈 등록x
public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, String> redisTemp = new RedisTemplate<>();
redisTemp.setConnectionFactory(redisConnectionFactory);
redisTemp.setKeySerializer(new StringRedisSerializer());
redisTemp.setValueSerializer(new StringRedisSerializer());
return redisTemp;
}
/**
* @return allowMultipleLogin - 중복로그인 허용/비허용 반환
*
* 중복 로그인 허용 여부를 반환하는 메서드
*/
public boolean isAllowMultipleLogin() {
Boolean result = loginPolicyService.getPolicy();
return result;
}
}