首页>代码>基于Spring Boot、Spring Cloud、Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目>/spring-boot-cloud/auth-service/src/main/java/cn/zhangxd/auth/config/OAuthConfiguration.java
package cn.zhangxd.auth.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.authentication.configurers.GlobalAuthenticationConfigurerAdapter; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; 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.token.store.JdbcTokenStore; import javax.sql.DataSource; @Configuration @EnableAuthorizationServer public class OAuthConfiguration extends AuthorizationServerConfigurerAdapter { @Autowired private AuthenticationManager auth; @Autowired private DataSource dataSource; private BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); @Bean public JdbcTokenStore tokenStore() { return new JdbcTokenStore(dataSource); } @Override public void configure(AuthorizationServerSecurityConfigurer security) throws Exception { security.passwordEncoder(passwordEncoder); } @Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { endpoints .authenticationManager(auth) .tokenStore(tokenStore()) ; } @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception { clients.jdbc(dataSource) .passwordEncoder(passwordEncoder) .withClient("client") .secret("secret") .authorizedGrantTypes("password", "refresh_token") .scopes("read", "write") .accessTokenValiditySeconds(3600) // 1 hour .refreshTokenValiditySeconds(2592000) // 30 days .and() .withClient("svca-service") .secret("password") .authorizedGrantTypes("client_credentials", "refresh_token") .scopes("server") .and() .withClient("svcb-service") .secret("password") .authorizedGrantTypes("client_credentials", "refresh_token") .scopes("server") ; } @Configuration @Order(-20) protected static class AuthenticationManagerConfiguration extends GlobalAuthenticationConfigurerAdapter { @Autowired private DataSource dataSource; @Override public void init(AuthenticationManagerBuilder auth) throws Exception { auth.jdbcAuthentication().dataSource(dataSource) .withUser("dave").password("secret").roles("USER") .and() .withUser("anil").password("password").roles("ADMIN") ; } } }

y1214435276 LV9
2024年10月22日
微信网友_7134912998903808 LV15
2024年9月13日
徐万强 LV9
2023年12月12日
iceboard LV2
2023年2月26日
LV6
2022年12月6日
2317696509 LV6
2022年9月2日
樊樊樊樊樊樊阵雨 LV18
2022年8月17日
qianyunjie LV8
2022年5月30日
x646936674 LV10
2022年3月5日
夕阳2266 LV10
2021年11月25日