参考oauth2 spring-guides项目中的注销流程,一旦用户首次使用用户名/密码进行了身份验证,则注销后下次将不要求提供凭据。
如何确保每次注销后都要求输入用户名/密码。
这就是我要实现的:
OAuth2服务器使用具有自动批准功能的“ authorization_code”授予类型发布JWT令牌。这具有html / angularjs表单来收集用户名/密码。
UI / Webfront-使用@EnableSSO。其所有端点均已通过身份验证,即,它没有用户单击以转到/ uaa服务器的任何未经授权的登录页面/ ui /链接。因此,点击http:// localhost:8080会 立即将您重定向到http:// localhost:9999 / uaa并显示自定义表单以收集用户名/密码。
资源服务器-使用@EnableResourceServer。普通和简单的REST API。
使用上述方法,我无法锻炼注销流程。到UI应用程序的HTTP POST / logout清除了UI应用程序中的会话/身份验证,但用户再次自动登录(因为我选择了所有范围的自动批准),而无需再次询问用户名密码。
查看日志和网络呼叫,似乎所有“ oauth舞动”都成功地再次发生,而无需再次要求用户输入用户名/密码,并且似乎auth服务器记住了为客户端发布的最后一个auth令牌(使用org.springframework .security.oauth2.provider.code.InMemoryAuthorizationCodeServices?)。
我如何告诉认证服务器每次要求输入用户名/密码的代码/令牌-无状态。
还是在给定方案中实现注销的最佳方法是什么。
(要重新创建一些接近我的要求的内容,请permitAll()
从UiApplication中删除一部分,然后autoApproval
在上述启动项目的身份验证服务器中进行配置。)
github问题