`
zhcheng
  • 浏览: 164360 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OpenCms初始化一个CmsObject

 
阅读更多

在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 7 Development》是一本专注于OpenCms二次开发的专业资料,它为开发者提供了深入理解OpenCms系统架构和进行高效定制化的关键指导。OpenCms是一款开源的内容管理系统,广泛应用于企业网站、新闻门户和其他...

    opencms配置去掉2个opencms总结

    1. **模块禁用**:OpenCms是一个模块化的系统,包含了各种功能模块,如新闻管理、文档管理等。如果某些模块在特定环境中不被使用,可以考虑禁用它们,以减少系统资源消耗。 2. **配置优化**:可能涉及到修改`...

    opencms9 java api

    OpenCMS 是一个开源的内容管理系统(CMS),主要由Java语言开发,专为构建企业级网站提供了一个强大而灵活的平台。其Java API 提供了丰富的功能,使得开发者可以通过编程方式与OpenCMS系统进行交互,实现内容的创建...

    opencms路径去掉两个opencms的方法总结

    在IT行业中,OpenCMS是一个开源的内容管理系统,用于构建和管理企业级的网站。当我们部署或使用OpenCMS时,可能会遇到URL路径中包含“opencms”两次的情况,这可能对网站的用户体验和SEO(搜索引擎优化)产生不利...

    opencms二次开发

    OpenCMS 是一个开源的内容管理系统(CMS),用于构建和管理企业级的网站。它基于Java技术栈,提供了一套全面的功能,包括内容创建、版本控制、工作流管理、多语言支持等。二次开发是指对OpenCMS的原始代码进行修改或...

    定义和使用OpenCms结构化XML内容

    文件"Defining OpenCMS structured XML content - OpenCms Wiki.mht"可能是OpenCms官方文档的一个网页快照,其中详细介绍了如何定义和使用结构化XML内容。它可能涵盖了上述所有步骤,包括实例和最佳实践,对于深入...

    OpenCMS

    2. **模块化设计**:通过模块化的设计思想,OpenCMS允许用户根据自己的需要安装和配置不同的功能模块,如新闻管理、文档管理等。 3. **内容管理**:OpenCMS提供了一套完善的内容管理工具,包括编辑、发布、版本控制...

    opencms

    书中包含多个真实案例,展示了OpenCms在不同行业的应用,如金融、媒体和交通等。通过对具体项目的剖析,读者可以更好地理解OpenCms的潜力和局限性,为自己的项目规划提供参考。 五、版权与法律声明 需要注意的是,...

    OpenCms中文文档完整版

    3. **内容创建**:OpenCms提供了一个直观的Web界面,让用户可以方便地创建、编辑和发布网页内容。文档详细阐述了内容模型的创建,包括字段类型、分类和元数据,以满足不同内容的需求。此外,还介绍了资源管理,包括...

    如何安装OPENCMS

    6. **初始化数据库**:运行OPENCMS的`bin/initdb.sh`或`initdb.bat`脚本,根据提示创建所需的数据库表结构。 7. **启动Tomcat**:启动Tomcat服务器,访问`http://localhost:8080/opencms`,如果一切顺利,你应该能...

    opencms 去掉两个/opemcms路径的方法

    总的来说,去掉OpenCMS URL中的`/opencms`路径是一个涉及多个配置层面的过程,需要谨慎操作并进行全面测试,以确保系统的稳定性和功能完整性。理解OpenCMS的架构和配置文件是成功执行此任务的关键。

    OpenCms9.0.1 新鲜下载

    首先,OpenCms 9.0.1是该系列的一个重要里程碑,它提供了丰富的功能和改进。对于中文用户来说,一个关键的更新是基本汉化工作已经完成,这意味着大部分界面和文档都已经翻译成了中文,使得国内用户在使用时能更加...

    OpenCms 内容类型模块

    OpenCms9 版本是 OpenCms 的一个重要里程碑,引入了许多新特性与改进。例如,增强了用户体验,提升了性能,优化了工作流程,并提供了更强大的多媒体管理功能。此外,OpenCms9 还增强了对移动设备的支持,使得内容...

    OpenCms创建网站过程图解——献给OpenCms的初学者们

    对于初次接触OpenCms的用户来说,可能会遇到一些困惑,比如如何开始使用、如何创建自己的第一个网站等。本文将详细介绍使用OpenCms创建网站的步骤,并提供相应的图解指南,帮助初学者快速上手。 #### 二、准备工作 ...

    OpenCms-install.rar_opencms

    OpenCms是一款开源的内容管理系统,它提供了一个基于Web的界面,用于创建、管理和发布网站内容。本教程将详细讲解如何安装并配置OpenCms,包括与之配套的Tomcat应用服务器和MySQL数据库。 首先,我们需要了解Tomcat...

    opencms建站手册

    然后,下载并解压Opencms的最新版本,将其部署到Web服务器,并按照官方文档的指引完成初始化设置。 1.3 文件结构 Opencms的文件结构分为几个主要部分,包括源代码、配置文件、模板和资源。源代码包含了Opencms的...

    OpenCMS内容管理入门指南

    总的来说,OpenCMS内容管理入门指南和配套源代码是初学者进入OpenCMS世界的理想起点,无论你是希望搭建一个企业网站,还是希望提升现有的内容管理系统,都能从中受益。通过系统学习和实践,你可以熟练掌握OpenCMS的...

    opencms 9.0.1 汉化包

    OpenCMS 是一个开源的内容管理系统(CMS),用于构建和管理企业级的网站。版本 9.0.1 是 OpenCMS 的一个重要里程碑,它提供了一系列的功能改进和优化。汉化包则是针对非英语用户群体,将软件界面及文档翻译成中文,...

    opencms源码

    OpenCms是一个开源的内容管理系统(CMS),用于构建和管理企业级的互联网和内联网站点。这个源码包“opencms-10.0.1”提供了完整的开发环境,允许开发者深入理解其内部工作原理,并对其进行自定义和扩展。下面我们将...

Global site tag (gtag.js) - Google Analytics