saiku 无密码登录

公司想要使用saiku,但愿没有密码直接可使用,这样能够直接以iframe的形式嵌套到其余的系统中。html

在网上搜索了不少,大体相似这篇博客介绍的:http://www.cnblogs.com/avivaye/p/4877948.htmljava

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

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

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();
          }

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

下面介绍一下修改过程ajax

1、跟踪代码

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

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

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

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

2、代码分析

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

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

3、从新编译

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

相关文章
相关标签/搜索