JSPWiki数据迁移以及同CAS整合
1 JSPWiki数据迁移
1.1 内容数据迁移
1. 配置内容数据源
在Tomcat的.xml中添加如下内容 <Resource name="PostgreSQLDataSource" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://192.168.0.180:5432/jspwiki_trial" username="pgsql" password="javac" maxActive="5" maxIdle="3" maxWait="-1"/>
2. 复制JDBC插件到lib
从下载的包中复制JDBCProvider.jar到WEB-INF下的lib目录中
3. 在/WEB-INF下创建文件jdbcprovider.properties
connectionProvider = com.forthgo.jspwiki.jdbcprovider.JNDIConnectionProvider jndi.datasource = PostgreSQLDataSource
database.flavour = pgsql ## POSTGRESQL; other,mysql,oracle etc. ## Copy the jdbcprovider.<flavour>.properties file to .../WEB-INF driver.useUnicode = true driver.characterEncoding = utf8 driver.connectionCollation = utf8_bin database.create = false continuationEditMinutes = 15
4. 复制文件
从下载的包中复制文件jdbcprovider.pgsql.properties到/WEB-INF目录下
5. 修改jspwiki.properties
注释如下内容
jspwiki.pageProvider = FileSystemProvider jspwiki.fileSystemProvider.pageDir = /p/web/www-data/jspwiki/ jspwiki.attachmentProvider = BasicAttachmentProvider jspwiki.basicAttachmentProvider.storageDir = /p/web/www-data/jspwiki/
在文件中添加如下内容 jspwiki.pageProvider = com.forthgo.jspwiki.jdbcprovider.JDBCPageProvider jspwiki.attachmentProvider = com.forthgo.jspwiki.jdbcprovider.JDBCAttachmentProvider jspwiki.jdbcprovider.configuration=jdbcprovider.properties
6. 新建数据库
在新建180上新建数据库jspwiki_trial,字符集编码UTF-8 脚本如下: CREATE TABLE "WIKI_PAGE" ( "NAME" character varying(100) NOT NULL, "VERSION" integer NOT NULL,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "CHANGE_TIME" timestamp without time zone,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "CHANGE_BY" character varying(50),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "CHANGE_NOTE" character varying(100),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "CONTENT" text ); ALTER TABLE ONLY "WIKI_PAGE" ADD CONSTRAINT "WIKI_PAGE_UNIQUE_KEY" UNIQUE ("NAME","VERSION"); ADD CONSTRAINT "WIKI_PAGE_PKEY" PRIMARY KEY ("NAME",160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> CREATE INDEX "WIKI_PAGE_CHANGE_TIME_IX" ON "WIKI_PAGE" USING btree ("CHANGE_TIME"); CREATE TABLE "WIKI_ATT" "PAGENAME" character varying(100) NOT NULL,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "FILENAME" character varying(100) NOT NULL,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "CHANGE_BY" character varying(50),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "LENGTH" integer,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> "DATA" bytea ALTER TABLE ONLY "WIKI_ATT" ADD CONSTRAINT "WIKI_ATT_UNIQUE_KEY" UNIQUE ("PAGENAME","FILENAME",160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> ADD CONSTRAINT "WIKI_ATT_PKEY" PRIMARY KEY ("PAGENAME",160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">CREATE INDEX "WIKI_ATT_CHANGE_TIME_IX" ON "WIKI_ATT" USING btree ("CHANGE_TIME");
1.2 用户数据迁移
1. 新建数据表
create table wiki_users ( email varchar(100),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> full_name varchar(100),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> login_name varchar(100) not null primary key,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> password varchar(100),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> wiki_name varchar(100),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> created timestamp,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> modified timestamp ); create table wiki_role ( login_name varchar(100) not null,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> wiki_role varchar(100) not null create table wiki_groups ( name varchar(100) not null primary key,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> creator varchar(100),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> modifier varchar(100),160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">create table wiki_member ( name varchar(100) not null,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> wiki_member varchar(100) not null,160) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"> constraint wiki_member_pk primary key (name,wiki_member) grant select,insert,update,delete on wiki_users to pgsql;
2. 配置用户数据源
用户数据源可以与内容数据源相同。如果用不同的数据源,同第一节所示,在Tomcat的server.xml添加数据源即可。本例使用相同的数据源。
3. 修改jspwiki.properties文件
注释如下内容 jspwiki.groupdatabase = com.ecyrd.jspwiki.auth.authorize.XMLGroupDatabase jspwiki.userdatabase = com.ecyrd.jspwiki.auth.user.XMLUserDatabase jspwiki.userdatabase.isSharedWithContainer = false
添加如下内容 jspwiki.groupdatabase =com.ecyrd.jspwiki.auth.authorize.JDBCGroupDatabase jspwiki.userdatabase = com.ecyrd.jspwiki.auth.user.JDBCUserDatabase jspwiki.userdatabase.datasource=PostgreSQLDataSource jspwiki.groupdatabase.datasource=PostgreSQLDataSource jspwiki.userdatabase.table=wiki_users jspwiki.userdatabase.email=email jspwiki.userdatabase.fullName=full_name jspwiki.userdatabase.loginName=login_name jspwiki.userdatabase.password=password jspwiki.userdatabase.wikiName=wiki_name jspwiki.userdatabase.created=created jspwiki.userdatabase.modified=modified jspwiki.userdatabase.roleTable=wiki_role jspwiki.userdatabase.role=wiki_role jspwiki.groupdatabase.table=wiki_groups jspwiki.groupdatabase.membertable=wiki_member jspwiki.groupdatabase.created=created jspwiki.groupdatabase.creator=creator jspwiki.groupdatabase.name=name jspwiki.groupdatabase.member=wiki_member jspwiki.groupdatabase.modified=modified jspwiki.groupdatabase.modifier=modifier jspwiki.userdatabase.isSharedWithContainer = true
4. 注册管理员用户
访问:http://localhost:8080/wiki/后,单击右上角登录按钮,后选择注册新用户 登录名: admin 密码: 123456 密码验证: 123456 名字: Administrator
创建组Admin,后将Administrator加入到Admin组中
注意: 在将数据存储路径改为数据库后,禁止访问Install.jsp页面,否则会丢失修改。
2 CAS整合
2.1 建立CAS Server
同CAS学习笔记中建立
2.2 配置CAS Client
1. 将CAS SSL证书导入到jspWiki所在的JDK中
(1)复制CAS服务器上tomcatsso.crt 文件到%JAVA_HOME%/jre/lib/security。 (2)然后用下面命令将证书tomcatsso.crt 文件导入到cacerts文件中。 Cd %JAVA_HOME%/jre/lib/security keytool -import -alias tomcatsso -file tomcatsso.crt -keystore cacerts -storepass changeit
2. 插入CAS CLIENT库文件
复制cas-client-core-
3. 修改web.xml文件
在web.xml中添加CAS Filter <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-appContext.xml</param-value> </context-param> <filter> <filter-name>CAS Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class> </listener>
<filter-name>CAS Authentication Filter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetBeanName</param-name> <param-value>casAuthenticationFilter</param-value> </init-param> <filter-name>CAS Validation Filter</filter-name> <param-value>casValidationFilter</param-value> </init-param> <filter-name>CAS HttpServletRequestWrapperFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetBeanName</param-name> <param-value>casHttpServletRequestWrapperFilter</param-value> <url-pattern>/Login.jsp</url-pattern> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
4. 插入spring-appContext.xml
在WEB-INF目录下添加spring-appContext.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="casAuthenticationFilter" class="org.jasig.cas.client.authentication.AuthenticationFilter"> <property name ="casServerLoginUrl" value="https://www.test.com:443/cas-server/login"/> <property name ="serverName" value="http://192.168.0.116:8080"/> </bean>
<bean id="casValidationFilter" class="org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter"> <property name="ticketValidator"> <ref bean="Cas20ProxyTicketValidator"/> </property> <property name="useSession" value="true"/> <property name="serverName" value="http://192.168.0.116:8080"/> <property name="redirectAfterValidation" value="false"/> </bean>
<bean id="Cas20ProxyTicketValidator" class="org.jasig.cas.client.validation.Cas20ProxyTicketValidator"> <constructor-arg index="0" value="https://www.test.com:443/cas-server" /> <bean id="casHttpServletRequestWrapperFilter" class="org.jasig.cas.client.util.HttpServletRequestWrapperFilter"/> </beans>
5. 修改jspWiki的Login.jsp文件
注释掉
/* if( wikiSession.isAuthenticated() ) { response.sendError( HttpServletResponse.SC_FORBIDDEN, rb.getString("login.error.noaccess") ); return; } */
6. 修改jspWiki的Logout.jsp文件
response.sendRedirect("https://www.test.com:443/cas-server/logout?url=http://192.168.0.116:8080/wiki"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |