在OpenCms使用过程中,有时候线上的Gest用户需要进行读写的操作,而此时的用户是没有权限进行读写操作的。此时,开发者可以进行初始化一个有权限的CmsObject进行读写操作。
此处提供一个解决方案:
在OpenCms中创建一个模块,然后为 Action class 属性配置上一个类。
public class CmsAdminObject extends A_CmsModuleAction {
/** The cms context. */
private static CmsObject m_cms;
/**
* Returns the admin cms context.
* <p>
*
* @return the admin cms context
*/
public static CmsObject getAdminCms() {
return m_cms;
}
/**
* @see org.opencms.module.A_CmsModuleAction#initialize(org.opencms.file.CmsObject,
* org.opencms.configuration.CmsConfigurationManager,
* org.opencms.module.CmsModule)
*/
@Override
public void initialize(CmsObject adminCms, CmsConfigurationManager configurationManager, CmsModule module) {
super.initialize(adminCms, configurationManager, module);
try {
String user = module.getParameter("user", "Admin");
String site = module.getParameter("site", "/sites/default/");
String ouFqn = module.getParameter("oufqn", "/");
String encoding = module.getParameter("encoding", "UTF-8");
String project = module.getParameter("project", "Offline");
CmsContextInfo cmsInfo = new CmsContextInfo();
cmsInfo.setProjectName(project);
cmsInfo.setSiteRoot(site);
cmsInfo.setEncoding(encoding);
cmsInfo.setUserName(ouFqn + user);
cmsInfo.setLocale(Locale.CHINA);
m_cms = OpenCms.initCmsObject(OpenCms.initCmsObject(adminCms), cmsInfo);
} catch (CmsException e) {
// initialization failed
e.printStackTrace();
}
}
}
类中使用的模块参数可以进行配置。当OpenCms启动时,就会用模块中配置的参数创建一个CmsObject对象(模块参数中配置的用户应该有读写的权限),在JSP页面中需要进行读写操作时,
<%@page import="org.opencms.main.CmsContextInfo"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*,
org.opencms.jsp.*,
org.opencms.file.*,
static CmsAdminObject.getAdminCms"
%>
<%
CmsObject cms = getAdminCms();
cms.createResource("/text",1);
%>
这样就可以解决Gest用户线上无法进行读写操作的问题了。
分享到:
相关推荐
《OpenCms 7 Development》是一本专注于OpenCms二次开发的专业资料,它为开发者提供了深入理解OpenCms系统架构和进行高效定制化的关键指导。OpenCms是一款开源的内容管理系统,广泛应用于企业网站、新闻门户和其他...
1. **模块禁用**:OpenCms是一个模块化的系统,包含了各种功能模块,如新闻管理、文档管理等。如果某些模块在特定环境中不被使用,可以考虑禁用它们,以减少系统资源消耗。 2. **配置优化**:可能涉及到修改`...
OpenCMS 是一个开源的内容管理系统(CMS),主要由Java语言开发,专为构建企业级网站提供了一个强大而灵活的平台。其Java API 提供了丰富的功能,使得开发者可以通过编程方式与OpenCMS系统进行交互,实现内容的创建...
在IT行业中,OpenCMS是一个开源的内容管理系统,用于构建和管理企业级的网站。当我们部署或使用OpenCMS时,可能会遇到URL路径中包含“opencms”两次的情况,这可能对网站的用户体验和SEO(搜索引擎优化)产生不利...
OpenCMS 是一个开源的内容管理系统(CMS),用于构建和管理企业级的网站。它基于Java技术栈,提供了一套全面的功能,包括内容创建、版本控制、工作流管理、多语言支持等。二次开发是指对OpenCMS的原始代码进行修改或...
文件"Defining OpenCMS structured XML content - OpenCms Wiki.mht"可能是OpenCms官方文档的一个网页快照,其中详细介绍了如何定义和使用结构化XML内容。它可能涵盖了上述所有步骤,包括实例和最佳实践,对于深入...
2. **模块化设计**:通过模块化的设计思想,OpenCMS允许用户根据自己的需要安装和配置不同的功能模块,如新闻管理、文档管理等。 3. **内容管理**:OpenCMS提供了一套完善的内容管理工具,包括编辑、发布、版本控制...
书中包含多个真实案例,展示了OpenCms在不同行业的应用,如金融、媒体和交通等。通过对具体项目的剖析,读者可以更好地理解OpenCms的潜力和局限性,为自己的项目规划提供参考。 五、版权与法律声明 需要注意的是,...
3. **内容创建**:OpenCms提供了一个直观的Web界面,让用户可以方便地创建、编辑和发布网页内容。文档详细阐述了内容模型的创建,包括字段类型、分类和元数据,以满足不同内容的需求。此外,还介绍了资源管理,包括...
6. **初始化数据库**:运行OPENCMS的`bin/initdb.sh`或`initdb.bat`脚本,根据提示创建所需的数据库表结构。 7. **启动Tomcat**:启动Tomcat服务器,访问`http://localhost:8080/opencms`,如果一切顺利,你应该能...
总的来说,去掉OpenCMS URL中的`/opencms`路径是一个涉及多个配置层面的过程,需要谨慎操作并进行全面测试,以确保系统的稳定性和功能完整性。理解OpenCMS的架构和配置文件是成功执行此任务的关键。
首先,OpenCms 9.0.1是该系列的一个重要里程碑,它提供了丰富的功能和改进。对于中文用户来说,一个关键的更新是基本汉化工作已经完成,这意味着大部分界面和文档都已经翻译成了中文,使得国内用户在使用时能更加...
OpenCms9 版本是 OpenCms 的一个重要里程碑,引入了许多新特性与改进。例如,增强了用户体验,提升了性能,优化了工作流程,并提供了更强大的多媒体管理功能。此外,OpenCms9 还增强了对移动设备的支持,使得内容...
对于初次接触OpenCms的用户来说,可能会遇到一些困惑,比如如何开始使用、如何创建自己的第一个网站等。本文将详细介绍使用OpenCms创建网站的步骤,并提供相应的图解指南,帮助初学者快速上手。 #### 二、准备工作 ...
OpenCms是一款开源的内容管理系统,它提供了一个基于Web的界面,用于创建、管理和发布网站内容。本教程将详细讲解如何安装并配置OpenCms,包括与之配套的Tomcat应用服务器和MySQL数据库。 首先,我们需要了解Tomcat...
然后,下载并解压Opencms的最新版本,将其部署到Web服务器,并按照官方文档的指引完成初始化设置。 1.3 文件结构 Opencms的文件结构分为几个主要部分,包括源代码、配置文件、模板和资源。源代码包含了Opencms的...
总的来说,OpenCMS内容管理入门指南和配套源代码是初学者进入OpenCMS世界的理想起点,无论你是希望搭建一个企业网站,还是希望提升现有的内容管理系统,都能从中受益。通过系统学习和实践,你可以熟练掌握OpenCMS的...
OpenCMS 是一个开源的内容管理系统(CMS),用于构建和管理企业级的网站。版本 9.0.1 是 OpenCMS 的一个重要里程碑,它提供了一系列的功能改进和优化。汉化包则是针对非英语用户群体,将软件界面及文档翻译成中文,...
OpenCms是一个开源的内容管理系统(CMS),用于构建和管理企业级的互联网和内联网站点。这个源码包“opencms-10.0.1”提供了完整的开发环境,允许开发者深入理解其内部工作原理,并对其进行自定义和扩展。下面我们将...