(151) - 数据添加Ehcache缓存支持
parent
b6cf1fcd91
commit
0db70daa4e
|
@ -1,9 +1,16 @@
|
||||||
package com.monkeyk.sos.domain.oauth;
|
package com.monkeyk.sos.domain.oauth;
|
||||||
|
|
||||||
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
|
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.NoSuchClientException;
|
||||||
import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
|
import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import static com.monkeyk.sos.infrastructure.CacheConstants.CLIENT_DETAILS_CACHE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add <i>archived = 0</i> condition
|
* Add <i>archived = 0</i> condition
|
||||||
*
|
*
|
||||||
|
@ -22,4 +29,28 @@ public class CustomJdbcClientDetailsService extends JdbcClientDetailsService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Cacheable(value = CLIENT_DETAILS_CACHE, key = "#clientId")
|
||||||
|
public ClientDetails loadClientByClientId(String clientId) throws InvalidClientException {
|
||||||
|
return super.loadClientByClientId(clientId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@CacheEvict(value = CLIENT_DETAILS_CACHE, key = "#clientDetails.getClientId()")
|
||||||
|
public void updateClientDetails(ClientDetails clientDetails) throws NoSuchClientException {
|
||||||
|
super.updateClientDetails(clientDetails);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@CacheEvict(value = CLIENT_DETAILS_CACHE, key = "#clientId")
|
||||||
|
public void updateClientSecret(String clientId, String secret) throws NoSuchClientException {
|
||||||
|
super.updateClientSecret(clientId, secret);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@CacheEvict(value = CLIENT_DETAILS_CACHE, key = "#clientId")
|
||||||
|
public void removeClientDetails(String clientId) throws NoSuchClientException {
|
||||||
|
super.removeClientDetails(clientId);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,29 +1,16 @@
|
||||||
/*
|
|
||||||
* Copyright (c) 2015 MONKEYK Information Technology Co. Ltd
|
|
||||||
* www.monkeyk.com
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* This software is the confidential and proprietary information of
|
|
||||||
* MONKEYK Information Technology Co. Ltd ("Confidential Information").
|
|
||||||
* You shall not disclose such Confidential Information and shall use
|
|
||||||
* it only in accordance with the terms of the license agreement you
|
|
||||||
* entered into with MONKEYK Information Technology Co. Ltd.
|
|
||||||
*/
|
|
||||||
package com.monkeyk.sos.infrastructure.jdbc;
|
package com.monkeyk.sos.infrastructure.jdbc;
|
||||||
|
|
||||||
import com.monkeyk.sos.domain.oauth.OauthClientDetails;
|
import com.monkeyk.sos.domain.oauth.OauthClientDetails;
|
||||||
import com.monkeyk.sos.domain.oauth.OauthRepository;
|
import com.monkeyk.sos.domain.oauth.OauthRepository;
|
||||||
|
|
||||||
import static com.monkeyk.sos.infrastructure.CacheConstants.*;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.cache.annotation.CacheEvict;
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
import org.springframework.cache.annotation.Cacheable;
|
|
||||||
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.monkeyk.sos.infrastructure.CacheConstants.CLIENT_DETAILS_CACHE;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 2015/11/16
|
* 2015/11/16
|
||||||
*
|
*
|
||||||
|
@ -41,7 +28,6 @@ public class OauthRepositoryJdbc implements OauthRepository {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Cacheable(value = CLIENT_DETAILS_CACHE, key = "#clientId")
|
|
||||||
public OauthClientDetails findOauthClientDetails(String clientId) {
|
public OauthClientDetails findOauthClientDetails(String clientId) {
|
||||||
final String sql = " select * from oauth_client_details where client_id = ? ";
|
final String sql = " select * from oauth_client_details where client_id = ? ";
|
||||||
final List<OauthClientDetails> list = this.jdbcTemplate.query(sql, new Object[]{clientId}, oauthClientDetailsRowMapper);
|
final List<OauthClientDetails> list = this.jdbcTemplate.query(sql, new Object[]{clientId}, oauthClientDetailsRowMapper);
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.monkeyk.sos.infrastructure.jdbc;
|
||||||
|
|
||||||
|
import org.springframework.cache.annotation.CacheEvict;
|
||||||
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
|
import org.springframework.security.oauth2.provider.OAuth2Authentication;
|
||||||
|
import org.springframework.security.oauth2.provider.code.JdbcAuthorizationCodeServices;
|
||||||
|
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
|
import static com.monkeyk.sos.infrastructure.CacheConstants.AUTHORIZATION_CODE_CACHE;
|
||||||
|
import static com.monkeyk.sos.infrastructure.CacheConstants.CLIENT_DETAILS_CACHE;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 2016/7/23
|
||||||
|
*
|
||||||
|
* @author Shengzhao Li
|
||||||
|
*/
|
||||||
|
public class SOSAuthorizationCodeServices extends JdbcAuthorizationCodeServices {
|
||||||
|
|
||||||
|
|
||||||
|
public SOSAuthorizationCodeServices(DataSource dataSource) {
|
||||||
|
super(dataSource);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Cacheable(value = AUTHORIZATION_CODE_CACHE, key = "#code")
|
||||||
|
protected void store(String code, OAuth2Authentication authentication) {
|
||||||
|
super.store(code, authentication);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@CacheEvict(value = AUTHORIZATION_CODE_CACHE, key = "#code")
|
||||||
|
public OAuth2Authentication remove(String code) {
|
||||||
|
return super.remove(code);
|
||||||
|
}
|
||||||
|
}
|
|
@ -123,8 +123,12 @@
|
||||||
</beans:bean>
|
</beans:bean>
|
||||||
|
|
||||||
|
|
||||||
|
<!--<beans:bean id="jdbcAuthorizationCodeServices"-->
|
||||||
|
<!--class="org.springframework.security.oauth2.provider.code.JdbcAuthorizationCodeServices">-->
|
||||||
|
<!--<beans:constructor-arg index="0" ref="dataSource"/>-->
|
||||||
|
<!--</beans:bean>-->
|
||||||
<beans:bean id="jdbcAuthorizationCodeServices"
|
<beans:bean id="jdbcAuthorizationCodeServices"
|
||||||
class="org.springframework.security.oauth2.provider.code.JdbcAuthorizationCodeServices">
|
class="com.monkeyk.sos.infrastructure.jdbc.SOSAuthorizationCodeServices">
|
||||||
<beans:constructor-arg index="0" ref="dataSource"/>
|
<beans:constructor-arg index="0" ref="dataSource"/>
|
||||||
</beans:bean>
|
</beans:bean>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue