|
@@ -6,9 +6,11 @@ import com.tofly.common.oauth.auth.ToflyUser;
|
|
|
import com.tofly.common.oauth.compent.ToflyWebResponseExceptionTranslator;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.cache.CacheManager;
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.context.annotation.Primary;
|
|
|
+import org.springframework.data.redis.cache.RedisCacheManager;
|
|
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
|
|
import org.springframework.http.HttpMethod;
|
|
|
import org.springframework.security.authentication.AuthenticationManager;
|
|
@@ -19,6 +21,10 @@ import org.springframework.security.oauth2.config.annotation.web.configuration.A
|
|
|
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
|
|
|
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
|
|
|
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;
|
|
|
+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.InMemoryClientDetailsService;
|
|
|
import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
|
|
|
import org.springframework.security.oauth2.provider.token.DefaultTokenServices;
|
|
|
import org.springframework.security.oauth2.provider.token.TokenEnhancer;
|
|
@@ -26,7 +32,9 @@ import org.springframework.security.oauth2.provider.token.TokenStore;
|
|
|
import org.springframework.security.oauth2.provider.token.store.redis.RedisTokenStore;
|
|
|
|
|
|
import javax.sql.DataSource;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
@@ -40,18 +48,41 @@ import java.util.Map;
|
|
|
@Slf4j
|
|
|
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
|
|
|
|
|
|
- private DataSource dataSource;
|
|
|
+
|
|
|
+
|
|
|
private UserDetailsService userDetailsService;
|
|
|
private RedisConnectionFactory redisConnectionFactory;
|
|
|
private AuthenticationManager authenticationManager;
|
|
|
|
|
|
+
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
|
|
|
- ToFlyClientDetailsService toFlyClientDetailsService = new ToFlyClientDetailsService(dataSource);
|
|
|
- toFlyClientDetailsService.setSelectClientDetailsSql(SecurityConstants.DEFAULT_SELECT_STATEMENT);
|
|
|
- toFlyClientDetailsService.setFindClientDetailsSql(SecurityConstants.DEFAULT_FIND_STATEMENT);
|
|
|
- clients.withClientDetails(toFlyClientDetailsService);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ ClientDetailsService clientDetailsService= new InMemoryClientDetailsService();
|
|
|
+ ClientDetails clientDetails=new BaseClientDetails();
|
|
|
+ ((BaseClientDetails) clientDetails).setClientId("tofly");
|
|
|
+ ((BaseClientDetails) clientDetails).setClientSecret("tofly");
|
|
|
+ ((BaseClientDetails) clientDetails).setScope(new ArrayList<String>(){{add("server");}});
|
|
|
+ ((BaseClientDetails) clientDetails).setAuthorizedGrantTypes(new ArrayList<String>(){{
|
|
|
+ add("password");
|
|
|
+ add("authorization_code");
|
|
|
+ add("refresh_token");
|
|
|
+ add("client_credentials");
|
|
|
+ }});
|
|
|
+ ((BaseClientDetails) clientDetails).setAutoApproveScopes(new ArrayList<String>(){{
|
|
|
+ add("true");
|
|
|
+ }});
|
|
|
+ Map<String,ClientDetails> map=new HashMap();
|
|
|
+ map.put("tofly_oauth:client:details",clientDetails);
|
|
|
+ ((InMemoryClientDetailsService) clientDetailsService).setClientDetailsStore(map);
|
|
|
+ clients.withClientDetails(clientDetailsService);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -84,6 +115,8 @@ public class AuthorizationServerConfiguration extends AuthorizationServerConfigu
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
@Bean
|
|
|
public TokenStore tokenStore() {
|
|
|
RedisTokenStore tokenStore = new RedisTokenStore(redisConnectionFactory);
|