package com.ruoyi.common.security.service;
|
|
import javax.sql.DataSource;
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.security.oauth2.provider.ClientDetails;
|
import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
|
import com.ruoyi.common.core.constant.CacheConstants;
|
import com.ruoyi.common.core.constant.SecurityConstants;
|
|
/**
|
* 重写原生方法支持redis缓存
|
*
|
* @author ruoyi
|
*/
|
public class RedisClientDetailsService extends JdbcClientDetailsService
|
{
|
public RedisClientDetailsService(DataSource dataSource)
|
{
|
super(dataSource);
|
super.setSelectClientDetailsSql(SecurityConstants.DEFAULT_SELECT_STATEMENT);
|
super.setFindClientDetailsSql(SecurityConstants.DEFAULT_FIND_STATEMENT);
|
}
|
|
@Override
|
@Cacheable(value = CacheConstants.CLIENT_DETAILS_KEY, key = "#clientId", unless = "#result == null")
|
public ClientDetails loadClientByClientId(String clientId)
|
{
|
return super.loadClientByClientId(clientId);
|
}
|
}
|