最近在学习oauth2的最新版Spring Authorization Server,用官网的demo来运行。
官方地址:https://github.com/spring-projects/spring-authorization-server/blob/1.0.2/samples/default-authorizationserver。
== 发现的问题==
发现登录成功后就抛错,不能跳转到授权页面。
解决方案
client端添加如下的依赖:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
</dependency>
看源码分析
1.登录后都会被OAuth2LoginAuthenticationFilter这类拦截,然后debug到authenticate这个方法。
最终走到OAuth2LoginAuthenticationProvider的authenticate方法。
在这里我们发现我们的scope里面是有openID的。这是一个Openid Connext Request,因此这里返回null,让OidcAuthorizationCodeAuthenticationProvider来处理,然后发现缺少spring-security-oauth2-jose这个依赖。添加上以后可以正常跳转到你想访问的页面。