zoukankan      html  css  js  c++  java
  • [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权限

  • 相关阅读:
    history对象
    排序算法总结
    Boltzmann机
    Sort Colors
    First Missing Positive
    Sort List
    Insertion Sort List
    Merge Two Sorted Lists
    Merge Sorted Array
    Sum Root to Leaf Numbers
  • 原文地址:https://www.cnblogs.com/avivaye/p/4881150.html
Copyright © 2011-2022 走看看