1 mvnForum数据迁移
1.1 配置数据源
<Resource
name="PostgresqlDataSource"
auth="Container"
type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://192.168.0.180:5432/mvnforum?useUnicode=true&characterEncoding=utf-8&uSEOldUTF8Behavior=true"
username="pgsql" password="javac"
maxActive="5" maxIdle="2"
maxWait="-1"/>
在将mvnForum的Web项目中WEB-INF/classes目录下的mvnforum.xml文件中关于数据库配置部分删除,即将如下片断删除
<use_datasource>false</use_datasource>
<driver_class_name>com.MysqL.jdbc.Driver</driver_class_name>
<database_url>jdbc:MysqL://localhost/mvnforum?useUnicode=true&characterEncoding=utf-8&uSEOldUTF8Behavior=true</database_url>
<database_user>root</database_user>
<database_password/>
<max_connection>20</max_connection>
<max_time_to_wait>2000</max_time_to_wait>
<minutes_between_refresh>30</minutes_between_refresh>
<use_datasource>true</use_datasource>
<datasource_name>java:comp/env/PostgresqlDataSource</datasource_name>
1.3 创建数据库
在下载的mvnforum-1.1-bin目录下,找到sql目录下的mvnForum_postgresql.sql文件。在postgresql数据库执行该文件,创建数据库。
2 建立CAS Server
3 配置CAS Client
3.1 将CAS SSL证书导入到mvnForum所在的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
3.2 插入CAS CLIENT库文件
复制cas-client-core-
在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>/mvnforum/login</url-pattern>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3.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 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>
首先将该Web工程导入到Eclipse中,然后删除原Web项目中/WEB-INF/lib目录下的mvnforum.jar文件并将下载的mvnForum原文件导入到改项目中。
com.mvnforum.auth.OnlineUserFactoryImpl的validatePassword函数中(334行左右)
return encodedPassword.equals(DAOFactory.getMemberDAO().getpassword(memberId));
修改为
//return encodedPassword.equals(DAOFactory.getMemberDAO().getpassword(memberId));
return true;
com.mvnforum.user.UserModuleProcessor的process函数中(130行左右)中
onlineUser = onlineUserManager.getonlineUser(genericRequest);
onlineUser.updateNewMessageCount(false);
if(onlineUser.getMemberID() == 0 && !requestURI.equals("/login") && !requestURI.equals("/loginprocess"))
throw new AuthenticationException(AuthenticationException.NOT_LOGIN);
删除mvnForum Web项目中/WEB-INF/lib目录下的mvnforum.jar文件,并将上述Eclipse中编译生成的类文件复制到/WEB-INF目录中,即将com目录文件夹复制到/WEB-INF/classes目录文件夹下。
在mvnForum的Web项目中/mvnplugin/mvnforum/user目录下,删除login.jsp,创建自己的login.jsp文件,内容如下:
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page errorPage="fatalerror.jsp"%>
<%@ include file="inc_common.jsp"%>
<%@ include file="inc_doctype.jsp"%>
<%@ page import="net.myvietnam.mvncore.util.ParamUtil" %>
<%@ page import="net.myvietnam.mvncore.util.DateUtil" %>
<%@ page import="net.myvietnam.mvncore.filter.disableHtmlTagFilter" %>
<%@ page import="javax.servlet.http.HttpServletRequestWrapper "%>
<!DOCTYPE html PUBLIC "-//W
<html>
<body>
<%
String errorMessage = ParamUtil.getAttribute(request,"Reason");
if(errorMessage.length() > 0){
session.invalidate();
response.sendRedirect("https://www.test.com/cas-server/logout");
}else{
java.util.Map params = request.getParameterMap();
params.put("MemberName",request.getRemoteUser());
params.put("password","ISMvKXpXpadDiUoOSoAfww==");
params.put("FromLoginPage","true");
params.put("md5pw",160) none repeat scroll 0% 0%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;" align="left"> params.put("url",disableHtmlTagFilter.filter(ParamUtil.getParameter(request,"url")));
HttpServletRequestWrapper httpServletRequestWrapper = new HttpServletRequestWrapper(request){
public String getmethod(){
return "POST";
}
};
Requestdispatcher dispatcher=getServletContext().getRequestdispatcher("/mvnforum/" + urlResolver.encodeURL(request,response,"loginprocess",URLResolverService.ACTION_URL));
dispatcher.forward(httpServletRequestWrapper,response);
}
%>
</body>
</html>
原文地址:https://www.jb51.cc/postgresql/197354.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。