【发布时间】:2019-02-05 13:30:54
【问题描述】:
在我们使用 Spring Boot 2 starters + Spring 5.0.7 + Reactor (WebFlux) 的项目中,我们希望使用 Spring Security 实现安全性。仅包括启动器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
还有豆子:
@Bean
SecurityWebFilterChain springWebFilterChain(ServerHttpSecurity http) throws Exception {
return http.authorizeExchange()
.anyExchange().authenticated()
.and().build();
}
绰绰有余。
但是,我们希望使用 JWT 令牌(在另一方的资源服务器中生成)来拦截这些 Authorization 标头。我一直在为此苦苦挣扎,我找不到 Spring 5 的任何示例(而 Spring
有人遇到过这个问题吗?
【问题讨论】:
-
您可以查看medium.com/@ard333/…。主要思想是在您的 springWebFilterChain 中安装额外的两个 bean:securityContextRepository 和 authenticationManager。 SecurityContextRepository 是处理你的 JWT(解析、验证...)的主要地方,而 AuthenticationManager 只是一个简单的检查,用于将请求标记为已验证,至少我可以看到这样。
标签: spring-boot spring-security jwt spring-webflux project-reactor