软件下载
软件可以在官网下载,就是慢的如蜗牛爬,提供一个网盘的
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,这个任务就落我身上了,大家有问题可以留言,大家一起讨论。。。。。。。