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

posted @   李秋  阅读(3035)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2013-03-05 screen配置——screenrc
点击右上角即可分享
微信分享提示