Tag: spring security oauth2

Spring Boot OAuth2单点注销(注销)

我正在考虑将OAuth2用于我的应用程序。 我想要实现的架构如下: 我将拥有自己的(也是唯一一个)授权服务器 某些资源应用程序使用授权服务器validation对其资源的访问 一些客户端应用程序(Web,移动)将用户重定向到授权服务器进行身份validation并成功将消耗资源应用程序上的api。 到目前为止,我已设法在3个基本应用程序(1个auth服务器,1个资源服务器和1个客户端)之间实现此交互。 我没有工作的是注销function。 我已经读过Dave Syer在他的教程中描述的“臭名昭着的棘手问题” ,但在这种情况下我真的需要用户在注销后重新登录。 我已经尝试给访问令牌和刷新令牌提供几秒钟,但是当到期时,我没有被提示再次登录,而是在客户端应用程序上获得NPE。 我也尝试过这篇文章中提出的解决方案来从令牌存储中删除令牌,但它不起作用。 单点注销对我来说是这种实现的理想行为。 如何使用Spring Boot Oauth2实现此目的。 如果由于某种原因不可能,我可以使用哪些替代方法来实现使用Spring Boot的集中安全性? 提前致谢。

Spring Security 5:没有为id“null”映射PasswordEncoder

我正在从Spring Boot 1.4.9迁移到Spring Boot 2.0以及Spring Security 5,我正在尝试通过OAuth 2进行身份validation。但是我收到此错误: java.lang.IllegalArgumentException:没有为id“null”映射PasswordEncoder 从Spring Security 5的文档中,我了解到密码的存储格式已更改。 在我当前的代码中,我创建了我的密码编码器bean: @Bean public BCryptPasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } 但它给了我以下错误: 编码密码看起来不像BCrypt 所以我按照Spring Security 5文档更新编码器: @Bean public PasswordEncoder passwordEncoder() { return PasswordEncoderFactories.createDelegatingPasswordEncoder(); } 现在,如果我能在数据库中看到密码,那么它就是存储的 {bcrypt}$2a$10$LoV/3z36G86x6Gn101aekuz3q9d7yfBp3jFn7dzNN/AL5630FyUQ 随着第一个错误消失,现在当我尝试进行身份validation时,我得到以下错误: java.lang.IllegalArgumentException:没有为id“null”映射PasswordEncoder 为了解决这个问题,我尝试了Stackoverflow的以下所有问题: Spring Boot PasswordEncoder错误 Spring Oauth2。 密码编码器未在DaoAuthenticationProvider中设置 这是一个类似于我的问题,但没有回答: Spring Security 5 – 密码迁移 注意:我已将加密密码存储在数据库中,因此无需再在UserDetailsService进行编码。 在Spring security […]