一、搭建认证服务器
JWT:json web token是一种无状态的权限认证方式,一般用于前后端分离,时效性比较极端的权限校验,jwt模式获取token跟前面的客户端、密码、授权码模式是一样的,只是需要配置秘钥。
1、服务端环境准备
新建认证服务器:springcloud-micro-jwt
1.1、添加pom依赖,与前面的其他模式一样
<!-- 添加oath2框架依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-oauth2</artifactId>
</dependency>
1.2、添加配置
不需要添加
1.3、核心配置类代码实现
/**
* JWT方式配置类
* */
@Configuration
@EnableAuthorizationServer
public class OAuth2JwtConfig extends AuthorizationServerConfigurerAdapter {
@Autowired
@Qualifier("authenticationManagerBean")
private AuthenticationManager authenticationManager;
@Autowired
private MyUserDetailsService myUserDetailsService;
@Autowired
private DataSource dataSource;
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
// 配置token的存储方式为JwtTokenStore
endpoints.tokenStore(tokenStore())
// 配置用于JWT私钥加密的增强器
.tokenEnhancer(jwtTokenEnhancer())
// 配置安全认证管理
.authenticationManager(authenticationManager)
.userDetailsService(myUserDetailsService);
}
@Bean
public TokenStore tokenStore() {
return new JwtTokenStore(jwtTokenEnhancer());
}
@Bean
protected JwtAccessTokenConverter