zoukankan      html  css  js  c++  java
  • saiku 无密码登陆

    公司想要使用saiku,希望没有密码直接可以使用,这样可以直接以iframe的形式嵌套到其他的系统中。

    在网上搜索了很多,大致类似这篇博客介绍的:http://www.cnblogs.com/avivaye/p/4877948.html

    可是效果不能达到预期,没有办法只能修改代码重新编译。

    先上结果,修改这个文件的代码:saiku-core/saiku-web/src/main/java/org/saiku/web/rest/resources/SessionResource.java。效果如下:

    diff --git a/saiku-core/saiku-web/src/main/java/org/saiku/web/rest/resources/SessionResource.java b/saiku-core/saiku-web/src/main/java/org/saiku/web/rest/resources/SessionResource.java
    index 54acb28..baed480 100644
    --- a/saiku-core/saiku-web/src/main/java/org/saiku/web/rest/resources/SessionResource.java
    +++ b/saiku-core/saiku-web/src/main/java/org/saiku/web/rest/resources/SessionResource.java
    @@ -126,6 +126,12 @@ public class SessionResource  {
              Map<String, Object> sess = null;
              try {
                    sess = sessionService.getSession();
    +                 if (sess.size()==0){
    +                         //尚未登录
    +                         sessionService.login(req, "admin", "admin");
    +                         sess = sessionService.getSession();
    +                         log.debug("unlogin user login with admin " + sess);
    +                 }
              } catch (Exception e) {
                    return Response.serverError().entity(e.getLocalizedMessage()).build();
              }

    加号部分就是修改添加的内容。重新编译成功!我已经去掉了很多商业分析和欢迎页面,打开之后页面非常简单如图:

    下面介绍一下修改过程

    一、跟踪代码

    发现打开页面后,判断用户是否登录,会发送ajax请求:http://localhost:8080/saiku/rest/saiku/session

    寻找代码,发现主要有两部分组成:

    controller:saiku-core/saiku-web/src/main/java/org/saiku/web/rest/resources/SessionResource.java

    Service:saiku-core/saiku-web/src/main/java/org/saiku/web/service/SessionService.java

    二、代码分析

    如果需要达到效果,第一次请求就要让未登录用户默认登录,那么就简单了。getSession就是对应ajax请求的方法,如果用户没有登录,做一次登录操作即可。

    登录操作的方法:sessionService.login(req, "admin", "admin")。时间关系写的不优雅,莫怪!!!

    三、重新编译

    这就不用说了,代码已经提交到github,参考:https://github.com/lihehuo/saiku

  • 相关阅读:
    Azure 虚拟机安全加固整理
    AzureARM 使用 powershell 扩容系统磁盘大小
    Azure Linux 云主机使用Root超级用户登录
    Open edX 配置 O365 SMTP
    powershell 根据错误GUID查寻错误详情
    azure 创建redhat镜像帮助
    Azure Powershell blob中指定的vhd创建虚拟机
    Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
    Power BI 连接到 Azure 账单,自动生成报表,可刷新
    Azure powershell 获取 vmSize 可用列表的命令
  • 原文地址:https://www.cnblogs.com/liqiu/p/5246015.html
Copyright © 2011-2022 走看看