使用JSPWiki建立自己的Wiki服务
建立自己的JSPWiki应用——本文讲述如何使用JSPWiki建立一个自己的wiki应用
JSPWiki是一个基于文本文件的简易wiki系统包括了身份认证和版本控制功能。完全采用JSP/Sevelet开发,采用UTF-8,能很好的支持中文,可以直接使用中文名作为页面(page)名。是一个简单易用的Wiki引擎。本文将向您展示如何建立一个自己的
JSPWiki 应用。包括改变模板,安装插件以及为你的wiki加入身份认证功能。 您可以到
http://www.jspwiki.org下载程序包和其它插件。
[1] 在Tomcat下建立JSPWiki应用
1. 下载JSPWiki(我使用的是2.2.28),解压缩,把jspwiki.war直接Copy到Tomcat下面webapps目录下
2. 启动tomcat,JSPWiki.war会自动解压缩到webapps目录下
3. 到JSPWiki/webinf目录下面修改jspwiki.properties文件,作如下修改
jspwiki.fileSystemProvider.pageDir = C:\\temp\\jspwiki jspwiki.basicAttachmentProvider.storageDir = C:\\temp\\jspwiki log4j.appender.FileLog.File = C:\\temp\\jspwiki.log |
4. 可以运行http://127.0.0.1:8080/JSPWiki/Install.jsp帮助完成上述配置 ,为了能够在wiki中使用HTML需要修改 jspwiki.properties,把allowHTML 选项打开
jspwiki.translatorReader.allowHTML = true |
1. 下载模板redman,并且解包到tomcat_home\webapps\JSPWiki目录下的template的目录下,目录名称应该就是redman
2. 修改jspwiki.propertiest文件,把
jspwiki.templateDir = default |
改成
jspwiki.templateDir = redman |
1. 下载java2html插件
2. 把下载下来的java2html.jar拷贝到 tomcat_home\webapps\JSPWiki\WEB-INF\lib目录下
3. 修改 jspwiki.propertiest文件
jspwiki.plugin.searchPath = de.java2html.plugin.jspwiki |
1. 首先需要下载其它组件。下载
Apache FOP 并解包把avalon-framework.jar (或者其他版本,比如:avalon-framework-cvs-20020806.jar)、batik.jar、fop.jar拷贝到WEB-INF/lib下;下载
jTidy 并解包,拷贝Tidy.jar to WEB-INF/lib目录下;下载
JIMI 并解包,把JimiProClasses.zip拷贝到WEB-INF/lib/目录并改名为JimiProClasses.jar.
3. 把下载下来的wikipdf.jar拷贝到 tomcat_home\webapps\JSPWiki\WEB-INF\lib目录下
4. 修改 tomcat_home\webapps\JSPWiki目录下Web.xml文件,增加下面的内容
<servlet> <servlet-name>Wiki2PDFServlet</servlet-name> <servlet-class>se.eminds.jspwiki.Wiki2PDFServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Wiki2PDFServlet</servlet-name> <url-pattern>/wiki.pdf</url-pattern> </servlet-mapping> |
5. 修改templates/default/ViewTemplate.jsp文件,加入下面的内容
<a href="wiki.pdf?page=<wiki:Variable var="pagename" />&ext=.pdf">View PDF</a> |
注意: 修改jspwiki.propertiest文件时,"="后面的变量值后面不能有多余的空格或者tab,否则JSPWiki无法正常读取配置文件导致改动没有效果。
1. 修改jspwiki.properties文件,加入下面的内容:
jspwiki.authenticator = FileAuthenticator
jspwiki.fileAuthenticator.fileName = /tmp/passwords.txt
jspwiki.auth.useOldAuth=true
# Add the following line authorize all users
jspwiki.policy.strictLogins = true |
2. 编辑对应的password.txt文件加入合法用户,例如:
# The format is simply username = password # No encryption is used currently. # Comments are allowed; prepend with hash.
ebu = foobar ubi = frobozz
|
3. 设置全部页面的默认访问权限,增加一个DefaultPermissions页面,包含下面的内容
[{SET defaultpermissions='ALLOW view Guest;DENY edit Guest;ALLOW edit KnownPerson'}]
4. 管理员用户组。可以在jspwiki.propertiest文件中指定管理员用户组的名称,如:
jspwiki.auth.administrator = WikiAdmin |
5. 那么默认的管理员用户组被命名为WikiAdmin,然后可以创建WikiAdmin页面加入成员,下面指令可以在WikiAdmin中加入JackJones,JillJones两个用户
[{SET members='JackJones, JillJones'}]
6. 如果需要设置单独页面的访问权限,可在页面内容前面加上访问规则,例如:
[{ALLOW view Guest}] [{DENY edit Guest}] [{ALLOW edit ebu, ubi}]
7. 如果需要增加一个用户组Xyz,增加一个Xyz的页面,加入下面的指令
[{SET members='Foo, Bar'}] }]
注意: JSPWiki有几个默认的用户组。
任何一个访问wiki的用户都属于Guest用户组;
任何一个使用user prefenrences设置了用户名的用户都属于NamedGuest用户组;
所有通过了身份认证的用户属于KnownPerson用户组。
注意: 目前的身份认证处理方式是临时的。
目前的身份认证方式是临时的,到2.4以上的版本会改变。目前权限规则实现有问题, 必须使用管理员用户组。因为加上了禁止guest访问
的权限管理规则后,除了管理员外所有用户都无法编辑wiki。 如果希望一个用户有wiki的编辑权限,别忘了把他加到管理员用户组。
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=599310