|
|
package cn.mb.cloud.auth.security.service;
|
|
import cn.mb.cloud.common.core.constant.SecurityConstants;
|
import org.springframework.cache.annotation.Cacheable;
|
import org.springframework.security.oauth2.common.exceptions.InvalidClientException;
|
import org.springframework.security.oauth2.provider.ClientDetails;
|
import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
|
|
import javax.sql.DataSource;
|
|
/**
|
* @author jason
|
* <p>
|
* see JdbcClientDetailsService
|
*/
|
public class MbCloudClientDetailsService extends JdbcClientDetailsService {
|
|
public MbCloudClientDetailsService(DataSource dataSource) {
|
super(dataSource);
|
}
|
|
/**
|
* 重写原生方法支持redis缓存
|
*
|
* @param clientId
|
* @return
|
* @throws InvalidClientException
|
*/
|
@Override
|
@Cacheable(value = SecurityConstants.CLIENT_DETAILS_KEY, key = "#clientId", unless = "#result == null")
|
public ClientDetails loadClientByClientId(String clientId) throws InvalidClientException {
|
return super.loadClientByClientId(clientId);
|
}
|
}
|