- 在实现SSO之前,先要说一下**@EnableResourceServer与@EnableOAuth2Sso**
- 一般网关处我们使用EnableResourceServer时,可以支持任意的oauth2授权模型,网关声明称资源服务器可以配置ResourceServerConfigurerAdapter,我们可以配置放行的路径等等内容。
- 如果网关处使用EnableOAuth2Sso,在所有请求转发之前就首先要到认证服务器上去校验信息,使用授权码模式,clientid与clientsecret来确认进行oauth2的登陆,跳转登陆页面在进行登陆。
下面我们来简单搭建一个SSO的小项目
-
搭建认证服务器
我们将客户端信息存储在mysql中,token使用jwt。
依赖包只需要oauth2,我cloud用的版本是Greenwich.SR2
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-oauth2</artifactId> </dependency>-
配置AuthorizationServerConfigurerAdapter
package cn.hs.sys.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationManager; 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.TokenStore; import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter; import org.springframework.security.oauth2.provider.token.store.JwtTokenStore; import javax.sql.DataSource; /** * @description: * @Author: huangsan * @Date: 2020/5/8 4:46 下午 */ @Configuration @EnableAuthorizationServer public class OAuth2AuthServerConfig extends AuthorizationServerConfigurerAdapter { @Autowired private AuthenticationManager au
-

本文详细介绍如何使用Spring Cloud和OAuth2搭建单点登录(SSO)系统,包括认证服务器和客户端的配置过程,以及JWT令牌的使用。通过具体代码示例,展示如何避免重复登录,实现跨应用的安全身份验证。
2673

被折叠的 条评论
为什么被折叠?



