pentahoCE6免登录展示CDE

2023-11-02 04:30
文章标签 登录 展示 cde pentahoce6

本文主要是介绍pentahoCE6免登录展示CDE,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在研究pentaho BI系统,已经把源码编译成功,发现很多同行都在询问如何设置才能实现免登录展示CDE(wcdf文件)和report(prpt文件),所以写下这篇文章,希望能帮助大家能配置成功。
以下内容应用的版本是:biserver-ce-6.1.0.1-196

主要原理就是通过向匿名用户提供所有权限,绕过BA服务器上的内置安全性。
1. 设置“anonymousUser”并指定相应权限。

这里写图片描述
2.修改的文件都位于所有文件都位于 biserver-ce/pentaho-solutions/system目录中。开始之前,请停止BA服务器。
3.修改applicationContext-spring-security.xml
找到anonymousProcessingFilter配置处,修改为如下内容:

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

4.修改applicationContext-spring-security.xml
找到filterChainProxy配置处,添加如下内容:
requestParameterProcessingFilter,anonymousProcessingFilter,其中requestParameterProcessingFilter是为了实现传递userid和pasword时可以不弹出登录框直接展现CDE文件。anonymousProcessingFilter是允许anonymous角色访问相应的文件。
其中在 :/api/= 和 /plugin/ 行里添加requestParameterProcessingFilter,然后除 /webservices/**不添加以外,其余都需要添加anonymousProcessingFilter。
最终修改结果如下:

<bean id="filterChainProxy" class="org.springframework.security.util.FilterChainProxy"><property name="filterInvocationDefinitionSource"><value><![CDATA[CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISONPATTERN_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>

5.修改applicationContext-spring-security.xml
找到bean id=”filterInvocationInterceptor”的objectDefinitionSource配置处,添加如下内容:

\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.*test.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*test.*/viewer/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*test.*/common-ui/.*\Z=Anonymous,Authenticated
\A/api/repos.*public.*test.*/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.*test.*/.*\Z=Anonymous,Authenticated
\A/content/saiku-ui/.*\Z=Anonymous,Authenticated
\A/content/analyzer/scripts/.*\Z=Anonymous,Authenticated

注意一点:上述内容中\A/api/repos.public.*test.\Z的相关行,public.*test是我放置cde文件的目录,需要进行定义后才能正常访问。
找到bean id=”filterInvocationInterceptorForWS”的objectDefinitionSource配置处,添加如下内容:

\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

6.最后一步,设置文件夹或文件的共享属性启动BA服务器,打开如下画面进行设置。
这里写图片描述

然后请打开浏览器访问一下CDE文件,试试看还有没有弹出登录框了。
http://localhost:8080/pentaho/api/repos/%3Apublic%3Aplugin-samples%3Apentaho-cdf-dd%3Acde_sample1.wcdf/generatedContent

这篇关于pentahoCE6免登录展示CDE的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/328137

相关文章

90%的人第一步就错了! 顺利登录wifi路由器后台的技巧

《90%的人第一步就错了!顺利登录wifi路由器后台的技巧》登录Wi-Fi路由器,其实就是进入它的后台管理页面,很多朋友不知道该怎么进入路由器后台设置,感兴趣的朋友可以花3分钟了解一下... 你是不是也遇到过这种情况:家里网速突然变慢、想改WiFi密码却不知道从哪进路由器、新装宽带后完全不知道怎么设置?别慌

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Spring Security重写AuthenticationManager实现账号密码登录或者手机号码登录

《SpringSecurity重写AuthenticationManager实现账号密码登录或者手机号码登录》本文主要介绍了SpringSecurity重写AuthenticationManage... 目录一、创建自定义认证提供者CustomAuthenticationProvider二、创建认证业务Us

Springboot项目登录校验功能实现

《Springboot项目登录校验功能实现》本文介绍了Web登录校验的重要性,对比了Cookie、Session和JWT三种会话技术,分析其优缺点,并讲解了过滤器与拦截器的统一拦截方案,推荐使用JWT... 目录引言一、登录校验的基本概念二、HTTP协议的无状态性三、会话跟android踪技术1. Cook

使用Redis快速实现共享Session登录的详细步骤

《使用Redis快速实现共享Session登录的详细步骤》在Web开发中,Session通常用于存储用户的会话信息,允许用户在多个页面之间保持登录状态,Redis是一个开源的高性能键值数据库,广泛用于... 目录前言实现原理:步骤:使用Redis实现共享Session登录1. 引入Redis依赖2. 配置R

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

Ubuntu 24.04启用root图形登录的操作流程

《Ubuntu24.04启用root图形登录的操作流程》Ubuntu默认禁用root账户的图形与SSH登录,这是为了安全,但在某些场景你可能需要直接用root登录GNOME桌面,本文以Ubuntu2... 目录一、前言二、准备工作三、设置 root 密码四、启用图形界面 root 登录1. 修改 GDM 配

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例