来自开涛的教程:shiro-OAuth2教程
示例代码:https://github.com/zhangkaitao/shiro-example
工程分为两部分:server和client部分。其中server部分主要是oauth2的相关接口的实现主要体现(没有涉及到shiro);client是通过shiro进行权限的认证和授权。
oauth2运行流程图:
结合代码的流程图:
以上第一步触发点在哪呢?结合shiro在Filter时触发:
这里再啰嗦一下授权码模式:
(A)用户访问客户端,后者将前者导向认证服务器。
(B)用户选择是否给予客户端授权。
(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。
(D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。
(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。