首页>代码>微服务spring cloud入门demo实例>/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") ; } } }
最近下载更多
hanming662 LV9
2023年6月26日
xie498408043 LV1
2022年7月30日
gardenia111 LV16
2022年5月11日
无名氏111 LV32
2022年5月10日
biaogectx LV1
2022年3月18日
1234mama LV19
2022年3月17日
xxl6097 LV2
2022年2月28日
wangshihui LV8
2021年12月30日
20152304 LV8
2021年12月18日
12312312312 LV10
2021年5月8日
最近浏览更多
whfuai LV14
1月2日
zhy1989wz LV6
2023年9月11日
csk001 LV5
2023年8月8日
lichengai LV7
2023年7月4日
hanming662 LV9
2023年6月26日
644106 LV8
2023年6月7日
519013474
2023年2月8日
暂无贡献等级
阳光12345 LV3
2023年1月11日
秦sir3067683450 LV10
2022年12月31日
1049066887 LV12
2022年12月25日