事情的由来
最近在研究SpringCloud微服务,同事给介绍了个开源作者搭建的基础框架。项目下载布置好本地开发环境后开始了研究与调试。我就不说是哪个开源框架了,都是基于Spring各种封装。一通胡乱封装完全变味了,有的还好意思收费,美其名曰"商业版"。
问题现象是这样的,按照常规操作Spring Security OAuth2.0 授权码模式被错误的封装导致基本报废。整个授权流程被错误的全局异常处理污染导致SpringSecurity 的认证异常处理过滤器无法正常执行。
先说正常的OAuth2.0授权码流程:
1.浏览器访问授权服务器“/oauth/authorize” http://localhost:8080/oauth/authorize?client_id=XX&response_type=code&redirect_uri=http://localhost:9898
2.授权服务器“/oauth/authorize”接口处理抛出异常InsufficientAuthenticationException由ExceptionTranslationFilter处理并跳转默认的或者配置的登录页。
3.浏览器显示登录页,用户输入用户名、密码登录。
4.浏览器显示授权页,(也可不显示根据approve决定),用户授权。
5.浏览器重定向到 redirect_uri=http://localhost:9898,并在该地址后追加授权码形式如</