单点登录(shiro与Spring Security OAuth 2.0的集成)
shiro项目采用ruoyi,OAuth采用pig
若依:https://gitee.com/y_project/RuoYi
pig:https://gitee.com/log4j/pig
采用OAuth授权码模式(authorization-code)
1.流程简介:
①:若依配置好以后,点击链接(ip:端口/sso/login)进入pig-auth(统一认证中心)
②:在统一认证中心输入用户名,密码后,点击登录,进入统一认证中心的AuthorizationEndpoint的/oauth/authorize,并且返回code
③:若依拿到code之后进行处理,headers加入Authorization:Basic Base64(Base64指的是对clientId和clientSecret的编码),Content-Type:application/x-www-form-urlencoded),处理后请求统一认证中心的/oauth/token接口,返回access_token 和user_name等一系列信息
④:若依拿到access_token后,进行处理并访问统一认证中心的/oauth/check_token接口,统一认证接口返回用户信息
⑤:若依把统一用户中心查询到的用户信息,在本库查询后,把一些信息放入SimpleAuthenticationInfo,登录成功
2.项目集成
①:集成若依项目,项目地址:https://gitee.com/y_project/RuoYi
pig增加客户端(sys_oauth_client_details
表直接增加 )
INSERT INTO `sys_oauth_client_details`(`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`, `tenant_id`) VALUES ('r