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