pentaho发布报表后免登陆查看数据报表

软件下载

软件可以在官网下载,就是慢的如蜗牛爬,提供一个网盘的

pentaho服务软件

链接:https://pan.baidu.com/s/13vTQqTXXUORkJwv-EFX5mg 密码:ta2u

报表编辑发布软件

链接:https://pan.baidu.com/s/1rWrdLv6ylR1MPbI6Di27lg 密码:mf5j

大家自行选择吧,我是针对当前版本6.0版本玩的。

使用环境

在windows和linux上都可以,但是在linux上要给pentaho-ce就是服务软件中的tomcat目录中bin中的所有.sh文件加执行权限。

在bin目录下执行chmod +x *.sh就可以了。

安装部署

解压即可,如在windows中解压到D盘中。

服务:D:\biserver-ce

报表编辑器:D:\report-designer

接下来要讲重点了。。。。

服务启动:D:\biserver-ce\start-pentaho.bat双击这个就可以了


这样就启动成功了。

浏览器访问:127.0.0.1:8080


到了这个登录界面,输入默认用户名和密码   admin  password

进入首页,接下来要添加匿名用户了


点击左上角Home-->Administration


点击加号,创建用户anonymousUser,权限先不要加,而后


在public下创建文件夹,我用的是innotree_report,这个名要记住,后面还在配置文件中配


选中自己创建的目录,点击右边的peoperties配置一下


选share后,和我的可能不一样,要把选框去掉,然后点击add


将你没有的那两个选出来就可以了

而后呢,要将下面的权限改一下


选中这个用户,然后只保留读权限。


这个时候把上面没添加两个权限加上吧,然后


给这个系统角色加一个权限

现在可以改配置文件了,只需要改一个文件

applicationContext-spring-security.xml

1、将id为filterChainProxy这个bean换成下面这个

  <bean id="filterChainProxy" class="org.springframework.security.util.FilterChainProxy">
    <property name="filterInvocationDefinitionSource">
      <value>
        <![CDATA[CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
        PATTERN_TYPE_APACHE_ANT
        /webservices/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,basicProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
        /api/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
        /plugin/**=securityContextHolderAwareRequestFilterForWS,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,basicProcessingFilter,requestParameterProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilterForWS,filterInvocationInterceptorForWS
        /**=securityContextHolderAwareRequestFilter,httpSessionPentahoSessionContextIntegrationFilter,httpSessionContextIntegrationFilter,httpSessionReuseDetectionFilter,logoutFilter,authenticationProcessingFilter,basicProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor]]>
      </value>
    </property>
  </bean>/2

2、这个id的也是

  <bean id="anonymousProcessingFilter" class="org.springframework.security.providers.anonymous.AnonymousProcessingFilter">
    <property name="key" value="foobar" />
	<property name="userAttribute" value="anonymousUser,Anonymous" />
  </bean>

3、再改俩

 <bean id="filterInvocationInterceptor"
        class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
    <property name="authenticationManager">
      <ref local="authenticationManager" />
    </property>
    <property name="accessDecisionManager">
      <ref local="httpRequestAccessDecisionManager" />
    </property>
    <property name="objectDefinitionSource">
      <value>
        <!--
            Note - the "=Nobody" below is saying that resource URLs with those
            patterns not be available through a web call.
        -->
        <![CDATA[
		CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
\A/i18n.*\Z=Anonymous,Authenticated
\A/js/utils.js\Z=Anonymous,Authenticated
\A/api/.*require-js-cfg.js\Z=Anonymous,Authenticated
\A/api/.*\Z=Anonymous,Authenticated
\A/api/repos.*\Z=Anonymous,Authenticated
\A/api/common-ui/resources/.*\Z=Anonymous,Authenticated
\A/api/common-ui/util/.*\Z=Anonymous,Authenticated
\A/plugin/saiku/.*\Z=Anonymous,Authenticated
\A/saiku/rest/saiku/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*innotree_report.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*innotree_report.*/viewer/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*innotree_report.*/common-ui/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*innotree_report.*/common-ui/util/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*plugin-samples.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*plugin-samples.*/viewer/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*plugin-samples.*/common-ui/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*plugin-samples.*/common-ui/util/.*\Z=Anonymous,Authenticated
\A/content/pentaho-cdf/.*\Z=Anonymous,Authenticated
\A/content/common-ui/.*\Z=Anonymous,Authenticated
\A/content/analyzer/.*\Z=Anonymous,Authenticated
\A/content/saiku-ui/.*public.*innotree_report.*/.*\Z=Anonymous,Authenticated
\A/content/saiku-ui/.*\Z=Anonymous,Authenticated
\A/content/analyzer/scripts/.*\Z=Anonymous,Authenticated
        ]]>
      </value>
    </property>
  </bean>

  <bean id="filterInvocationInterceptorForWS" class="org.springframework.security.intercept.web.FilterSecurityInterceptor">
    <property name="authenticationManager">
      <ref local="authenticationManager" />
    </property>
    <property name="accessDecisionManager">
      <ref local="httpRequestAccessDecisionManager" />
    </property>
    <!-- allow anyone to see the wsdl of various services -->
    <property name="objectDefinitionSource">
      <value>
        <![CDATA[CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
\A/webservices/unifiedrepository\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/userrolelistservice\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/userroleservice\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/authorizationpolicy\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/rolebindingdao\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/scheduler\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/repositorysync\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/datasourcemgmtservice\?wsdl.*\Z=Anonymous,Authenticated
\A/webservices/.*\Z=Authenticated
\A/api/repos/.*\Z=Anonymous,Authenticated
\A/api/.*require-cfg.js.*\Z=Anonymous,Authenticated
\A/api/.*require-js-cfg.js.*\Z=Anonymous,Authenticated
\A/api/.*\Z=Anonymous,Authenticated
\A/plugin/.*\Z=Anonymous,Authenticated
\A/plugin/saiku/.*\Z=Anonymous,Authenticated
\A/saiku/rest/saiku/.*\Z=Anonymous,Authenticated
\A/content/saiku-ui/.*\Z=Anonymous,Authenticated
      ]]>
      </value>
    </property>
  </bean>

把文件里这两个也换了,第一个bean中有innotree_report,如果你上面再public下创建的目录是什么就把我这个改一下。


这个配置是和报表最终生成的报表访问url的结构有关的,下面在看

配置好后,重启一下服务吧,再把报表编辑器启动



点击new report

对应改一下


框里会出现目录,双击选中public然后选中innotree_report,看上面目录位置是否是你选中的,上面自己写个名,如:cde1

发布出去


回到服务界面中,按上面给出的选出来,就可看到刚刚发布过来的cde1了。


选中它,然后选最下的属性配置。


和上面改的是一个套路

然后点这个按钮,就会弹出来一个窗口,就可以得到这个报表的url了,用这个url新开个浏览器试一下,看看还有没有登录框。

正常来说没问题,偶尔也会点小问题,服务有时莫名其妙报错,重启一下,就可以了,我也没找到原因。


看这样就可以,实现匿名登录,没有登录框提示了。

看一下路径,中间那段结构,再和上面说的,配置文件的配置,看看关系,会发现有点关系是吧,应该就是把带有这个结构的url给放过了,不在要求登录了。。。


到这里就结束了,我其实也不做BI,但是领导让把这个嵌入我开发web,这个任务就落我身上了,大家有问题可以留言,大家一起讨论。。。。。。。






猜你喜欢

转载自blog.csdn.net/m0_37240709/article/details/79656226