提交 47f746e9 编写于 作者: zlt2000's avatar zlt2000

优化bean加载方式

上级 90266aac
package com.central.oauth.config;
import com.central.oauth.service.impl.RedisAuthorizationCodeServices;
import com.central.oauth.service.impl.RedisClientDetailsService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.oauth2.provider.code.RandomValueAuthorizationCodeServices;
import javax.annotation.Resource;
import javax.sql.DataSource;
/**
* @author zlt
* @date 2018/12/12
*/
@Configuration
public class ClientDetailsConfig {
@Resource
private DataSource dataSource;
@Resource
private RedisTemplate<String, Object> redisTemplate;
/**
* 声明 ClientDetails实现
*/
@Bean
public RedisClientDetailsService clientDetailsService() {
RedisClientDetailsService clientDetailsService = new RedisClientDetailsService(dataSource);
clientDetailsService.setRedisTemplate(redisTemplate);
return clientDetailsService;
}
@Bean
public RandomValueAuthorizationCodeServices authorizationCodeServices() {
RedisAuthorizationCodeServices redisAuthorizationCodeServices = new RedisAuthorizationCodeServices();
redisAuthorizationCodeServices.setRedisTemplate(redisTemplate);
return redisAuthorizationCodeServices;
}
}
......@@ -3,6 +3,7 @@ package com.central.oauth.service.impl;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
import org.springframework.security.oauth2.provider.code.RandomValueAuthorizationCodeServices;
import org.springframework.stereotype.Service;
import java.util.concurrent.TimeUnit;
......@@ -10,15 +11,11 @@ import java.util.concurrent.TimeUnit;
* @author zlt
* JdbcAuthorizationCodeServices替换
*/
@Service
public class RedisAuthorizationCodeServices extends RandomValueAuthorizationCodeServices {
private RedisTemplate<String, Object> redisTemplate;
public RedisTemplate<String, Object> getRedisTemplate() {
return redisTemplate;
}
public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
public RedisAuthorizationCodeServices(RedisTemplate<String, Object> redisTemplate) {
this.redisTemplate = redisTemplate;
}
......
......@@ -7,6 +7,7 @@ import org.springframework.security.oauth2.common.exceptions.InvalidClientExcept
import org.springframework.security.oauth2.provider.ClientDetails;
import org.springframework.security.oauth2.provider.NoSuchClientException;
import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.sql.DataSource;
......@@ -21,18 +22,12 @@ import java.util.List;
* 注意对oauth_client_details清楚redis db部分数据的清空
*/
@Slf4j
@Service
public class RedisClientDetailsService extends JdbcClientDetailsService {
private RedisTemplate<String, Object> redisTemplate;
public RedisClientDetailsService(DataSource dataSource) {
public RedisClientDetailsService(DataSource dataSource, RedisTemplate<String, Object> redisTemplate) {
super(dataSource);
}
public RedisTemplate<String, Object> getRedisTemplate() {
return redisTemplate;
}
public void setRedisTemplate(RedisTemplate<String, Object> redisTemplate) {
this.redisTemplate = redisTemplate;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册