|
@ -0,0 +1,73 @@
|
|
|
package com.yihu.oauth2.config;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
|
|
|
import org.springframework.security.oauth2.provider.ClientDetails;
|
|
|
import org.springframework.security.oauth2.provider.ClientDetailsService;
|
|
|
import org.springframework.security.oauth2.provider.client.BaseClientDetails;
|
|
|
import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
|
|
|
import org.springframework.security.oauth2.provider.token.TokenStore;
|
|
|
import org.springframework.security.oauth2.provider.token.store.JdbcTokenStore;
|
|
|
|
|
|
import javax.sql.DataSource;
|
|
|
import java.util.HashSet;
|
|
|
import java.util.LinkedList;
|
|
|
import java.util.Set;
|
|
|
|
|
|
/**
|
|
|
* Created by chenweida on 2017/11/28.
|
|
|
*/
|
|
|
@Configuration
|
|
|
@EnableAuthorizationServer //开启授权服务器
|
|
|
public class AuthorizationConfig {
|
|
|
/**
|
|
|
* token使用jdbc存储
|
|
|
* @param dataSource
|
|
|
* @return
|
|
|
*/
|
|
|
@Bean
|
|
|
public TokenStore createTokenStore(DataSource dataSource){
|
|
|
return new JdbcTokenStore(dataSource);
|
|
|
}
|
|
|
|
|
|
@Bean
|
|
|
public ClientDetailsService createClientDetailsService(
|
|
|
@Qualifier("myDefaultBaseClientDetails")ClientDetails clientDetails,
|
|
|
DataSource dataSource){
|
|
|
JdbcClientDetailsService jdbcClientDetailsService = new JdbcClientDetailsService(dataSource);
|
|
|
jdbcClientDetailsService.addClientDetails(clientDetails);
|
|
|
|
|
|
return jdbcClientDetailsService;
|
|
|
}
|
|
|
|
|
|
@Bean(name = "myDefaultBaseClientDetails")
|
|
|
public BaseClientDetails createBaseClientDetails(){
|
|
|
BaseClientDetails baseClientDetails = new BaseClientDetails();
|
|
|
|
|
|
baseClientDetails.setClientId("whc_client_id");
|
|
|
baseClientDetails.setClientSecret("whc_client_secret");
|
|
|
|
|
|
LinkedList<String> scope = new LinkedList<String>();
|
|
|
scope.add("whc");
|
|
|
baseClientDetails.setScope(scope);
|
|
|
|
|
|
Set<String> registeredRedirectUris = new HashSet<String>();
|
|
|
registeredRedirectUris.add("http://localhost:8080/test");
|
|
|
baseClientDetails.setRegisteredRedirectUri(registeredRedirectUris);
|
|
|
|
|
|
LinkedList<String> grant_types = new LinkedList<String>();
|
|
|
grant_types.add("client_credentials");
|
|
|
baseClientDetails.setAuthorizedGrantTypes(grant_types);
|
|
|
|
|
|
baseClientDetails.setAccessTokenValiditySeconds(24 * 60 * 60);
|
|
|
baseClientDetails.setRefreshTokenValiditySeconds(48 * 60 * 60);
|
|
|
|
|
|
LinkedList<String> autoApproveScopes = new LinkedList<String>();
|
|
|
autoApproveScopes.add("whc");
|
|
|
baseClientDetails.setAutoApproveScopes(autoApproveScopes);
|
|
|
|
|
|
return baseClientDetails;
|
|
|
}
|
|
|
}
|