[saiku] 集成单点登录

 

思路:

自定义一个loginCallbackFilter用于单点登录成功后执行模拟用户认证授权登录的操作。

当授权成功后所有配置需要授权才能访问的url就再也不会被任何filter拦截,可随意访问了。

 

详细过程

01/ 自定义loginCallbackFilter类/自定义sso的properties信息/自定义security的properties信息

02/在web.xml中配置cas sso的servlet 并指定servlet-mapping 的 url 为 /ssoLogin

03/调用单点登录接口带上用户名密码 

04/单点登录成功后调转到sso配置的successURL 该url是虚拟的/security/login 目的是为了让 loginCallbackFilter 拦截这个URL进行过滤处理

05/loginCallbackFilter拦截 successURL 

06/判断单点登录成功后写入的session对象是否存在,不存在说明授权失败,给出错误提示

07/存在就验证这个用户有没有存在于本地的mysql数据表user里

08/如果user表没有该用户,插入该用户到mysql表。当存在该用户时比对密码,如果密码不一致则更新user表中的密码。

09/至此本地mysql的user表中必定存在有单点登录的用户,调用sessionService的login方法执行认证授权操作[一定能通过]

10/此时,创建了用户的session并且系统已经授权完毕,isFullyAuthenticated() 为 true 

11/重定向到targetUrl -> localhost:8080 

12/通过调用/rest/saiku/session [GET] 获取到session信息

13/登录成功,进入管理台操作cube

 

探索过程中遇见的几个问题

单点登录过来的用户没有权限,那么将用户创建到本地mysql时怎么赋予权限

解决:默认给一个最低的ROLE_USER权限

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值