JSPWiki的使用记录
背景介绍:最近来到新公司,领导安排研究一下JSPWiki的工作。然后把公司的所有文档录入到JSPWiki网站上,然后做一个工具抓取JSPWiki网站内容下来,再生成CHM文件,制作CHM帮助手册。现在把相关经验记录一下。(关于Wiki网站是什么,大家百度去哈)
一、部署
JSPWiki下载网址:http://mirrors.cnnic.cn/apache/jspwiki/
(我下载的是:2.10.1 版本的,JSPWiki.war)(JSPWiki官网:https://jspwiki-wiki.apache.org/)
Tomcat下载网址:http://tomcat.apache.org/download-60.cgi
(我下载的是Tomcat6.0版本的,apache-tomcat-6.0.43-windows-x86.zip)
第一步,启动tomcat服务器:
Tomcat下载完之后,解压,随便找一个地方放就可以了。
然后去到bin目录,(例如:*\apache-tomcat-6.0.43-windows-x86\apache-tomcat-6.0.43\bin),运行start.bat
注意:建议在cmd命令窗口中,跳转到tomcat的bin目录,然后再执行start.bat,不要直接双击start.bat,那样看不到异常错误的。
步骤如下:
(1)cmd---> 跳转到指定的盘符,( tomcat存放的盘符(例如:d:),我的tomcat放在了d盘下面)。
(2)然后cd tomcat的bin目录,(例如:cd D:\apache-tomcat-6.0.43-windows-x86\bin)
(3)然后 start.bat,tomcat如果启动正常的话,就会弹出一个tomcat服务器运行界面。
tomcat运行成功后的界面截图:
第二步,复制JSPWiki.war到Tomcat服务器的【webApps】目录下,进行自动解压
然后把下载的JSPWiki.war文件直接复制到tomcat的 【webapps\】 目录下;
如果一切正常,Tomcat服务器会自动解压文件,然后会自动生成一个 JSPWiki文件夹的;
如果不希望使用这个默认文件夹名,建议修改名称。例如:JSPWikiCN.war、JSPWikiEN.war,这个于JSPWiki的访问路径有关的
第三步,直接在浏览器输入http://localhost:8080/JSPWiki/
如果一切正常,浏览器就会出现JSPWiki网站了,至此,部署工作完毕啦~
URL中的 JSPWiki名 是与上一步所配置的目录名有相关的;
如果上一步操作的目录名为:JSPWikiCN,那访问的URL就应该为:http://localhost:8080/JSPWikiCN/
二、使用经验
1. JSPWiki的权限配置问题。
首先必须先介绍两个JSPWiki的XML文件:【webapps\JSPWiki\WEB-INF】 目录下
groupdatabase.xml ---》存放JSPWiki分组数据的
userdatabase.xml ---》存放JSPWiki用户数据的
文件内容结构很简单,一看都懂的,就不介绍了。
userdatabase.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <users> <user uid="8fe6cd27-dc78-4a44-aefc-48d8f6bbb2ec" loginName="lijian1" wikiName="ddd" fullName="ddd" email="" password="{SSHA}epCP4zXbE5W1jlDvZJTJGa5LpgZZxOX/k9Mftg==" created="2015.05.20 at 15:00:07:458 CST" lastModified="2015.05.20 at 15:00:07:458 CST" lockExpiry="" > </user> <user uid="9326ce68-802d-4bc7-b13b-88f957932be4" loginName="ljian17" wikiName="黎鉴" fullName="黎鉴" email="" password="{SSHA}6hPcerbb1gKv/EM9alR5rFe7zh6cwpu5HkOm1A==" created="2015.05.26 at 19:38:06:952 CST" lastModified="2015.05.26 at 19:38:06:952 CST" lockExpiry="" > </user> </users>
groupdatabase.xml 文件:
<groups> <group name="分组1" creator="admin" created="2015.05.26 at 19:38:56:470 CST" modifier="admin" lastModified="2015.05.26 at 19:38:56:470 CST"> <member principal="admin" /> <member principal="黎鉴" /> <!--principal属性值对应userdatabase.xml文件的wikiname属性值, 采用十进制unicode编码,对应的转换工具有:http://app.baidu.com/2unicode(这里是用16进制的)--> </group> </groups>
JSPWiki的权限控制结构大概这样的:
(1)人-------------->拥有的权限。
(2)角色分组-------->拥有的权限。
(3)人-------------->所属的分组。
一个人有哪些权限: 人所有的权限 + 人所在的角色分组里面的权限。
针对我公司的情况,以及JSPWiki的权限设计,我把权限级别分成四中角色组:
第一类:Admin 组人员,管理员。可以查看、删除角色分组信息;可以删除所有的页面、附件;可以编辑所有页面内容。
第二类:Editors 组人员,编辑者。可以编辑所有页面内容(但是不能删除页面和附件,没有管理的权限)
第三类:普通用户(可以登录的用户)。 只能查看所有页面,但是不能编辑页面内容。
第四类:访客人员权限(Cookie用户登录身份)。 可以自由注册账号,可以查看所有页面内容。(但是不能编辑页面)
介绍到重点了:如何配置JSPWiki的权限?!
【JSPWiki的权限信息都保存在这个文件下:webapps\JSPWiki\WEB-INF\jspwiki.policy】
用记事本直接打开jspwiki.policy 文件(我用记事本打开是经过了去空格压缩的,很难看,我后来用VS打开就好看很多了)
里面只有这两种配置:
//分组权限配置:
grant principal org.apache.wiki.auth.GroupPrincipal "Admin" {
permission org.apache.wiki.auth.permissions.AllPermission "*";
};
//角色权限配置:
grant principal org.apache.wiki.auth.authorize.Role "Admin" {
permission org.apache.wiki.auth.permissions.AllPermission "*";
};
//下面就是常见的权限项(每一项代表所拥有的权限):
permission org.apache.wiki.auth.permissions.PagePermission "*:*", "modify,rename";//可以修改页面内容 permission org.apache.wiki.auth.permissions.GroupPermission "*:*", "view";//可以查看分组的内容(角色分组) permission org.apache.wiki.auth.permissions.GroupPermission "*:<groupmember>", "edit";//可以编辑分组成员信息 permission org.apache.wiki.auth.permissions.WikiPermission "*", "createPages,createGroups";//可以新增页面、新增分组
按照我一开始介绍的需求,我这样配置就可以了:
//admin用户拥有所有权限
grant principal org.apache.wiki.auth.authorize.Role "Admin" {
permission org.apache.wiki.auth.permissions.AllPermission "*";
};
//Editors分组里面的人
grant principal org.apache.wiki.auth.GroupPrincipal "Editors" {
permission org.apache.wiki.auth.permissions.PagePermission "*:*", "modify,rename";
};
//登录后的用户
grant principal org.apache.wiki.auth.authorize.Role "Authenticated" {
permission org.apache.wiki.auth.permissions.PagePermission "*:*", "view";
};
//通过浏览器Cookie自动登录的用户
grant principal org.apache.wiki.auth.authorize.Role "Asserted" {
permission org.apache.wiki.auth.permissions.PagePermission "*:*", "view";
};
//匿名用户
grant principal org.apache.wiki.auth.authorize.Role "Anonymous" {
permission org.apache.wiki.auth.permissions.PagePermission "*:*", "view";
};
2.JSPWiki无法上传附件名是中文的附件
配置tomcat服务器容器的URI编码即可:【位于:apache-tomcat-6.0.43\conf\server.xml】
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
3.JSPWiki常用配置说明
根据官方的文档,JSPWiki的所有默认配置都存放在:WEB-INF/lib/jspwiki-war-n.nn.nn-SNAPSHOT.jar,
解压出来可以查看到。如果我们需要替换默认的配置值,我们就应该在 webapps/<JSPWiki>/WEB-INF/classes
写入一个 jspwiki-custom.properties 文件。有几个配置非常强烈我们去配置的:
(1)jspwiki.workDir = D:\\JSPWiki\\WorkDir
JSPWiki工作目录,用于JSPWiki网站在运行中生成的一些文件,例如 Lucene 搜索引擎的一些分词结果等文件
(2)jspwiki.fileSystemProvider.pageDir = D:\\JSPWiki\\Data
JSPWiki的页面数据存放目录
(3)jspwiki.basicAttachmentProvider.storageDir = D:\\JSPWiki\\Data\\Attachment
JSPWiki的附件数据存放目录
(4)jspwiki.applicationName = wiki
JSPWiki的程序名,强烈建议跟JSPWiki的目录名一致
(5)jspwiki.baseURL= http://localhost:8080/JSPWiki/
这个属性非常重要,如果前面设置的URL程序名不是默认的JSPWiki,则必须要修改这个属性,否则页面其他基础连接无法打开。

浙公网安备 33010602011771号