mvnForum同CAS整合实现单点登录

mvnForum同CAS整合实现单点登录,第1张

概述1 mvnForum数据迁移 1.1 配置数据源 在Tomcat的server.xml中添加如下内容 <Resource name="PostgreSQLDataSource"   auth="Container"   type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"   url="jdbc:postgresql @H_419_0@

1 mvnForum数据迁移

1.1 配置数据源

Tomcatserver.xml中添加如下内容

<Resource

name="PostgresqlDataSource"

auth="Container"

type="javax.sql.DataSource" driverClassname="org.postgresql.Driver"

url="jdbc:postgresql://192.168.0.180:5432/mvnforum?useUnicode=true&amp;characterEnCoding=utf-8&amp;uSEOldUTF8Behavior=true"

username="pgsql" password="javac"

maxActive="5" maxIDle="2"

maxWait="-1"/>

1.2 修改mvnForum配置文件

在将mvnForumWeb项目中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&amp;characterEnCoding=utf-8&amp;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

CAS学习笔记中建立

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- 3.1.3 .jarspring.jar2个文件到mvnForumWeb项目中的WEB-INF/lib目录文件夹下

3.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>/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"

>

<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"

>

<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"

>

<constructor-arg index="0" value="https://www.test.com:443/cas-server" />

<bean ID="cashttpServletRequestWrapperFilter"

/>

</beans>

3.5 修改mvnForum Java项目中的代码

3.5.1 项目导入到Eclipse

首先将该Web工程导入到Eclipse中,然后删除原Web项目中/WEB-INF/lib目录下的mvnforum.jar文件并将下载的mvnForum原文件导入到改项目中。

3.5.2 Java代码修改

com.mvnforum.auth.OnlineUserFactoryImplvalIDatePassword函数中(334行左右)

return encodedPassword.equals(DAOFactory.getMemberDAO().getpassword(memberID));

修改为

//return encodedPassword.equals(DAOFactory.getMemberDAO().getpassword(memberID));

return true;

com.mvnforum.user.UserModuleProcessorprocess函数中130行左右)

onlineUser = onlineUserManager.getonlineUser(genericRequest);

onlineUser.updateNewMessageCount(false);

后面添加一行代码(在随后的try模块之前)

if(onlineUser.getMemberID() == 0 && !requestURI.equals("/login") && !requestURI.equals("/loginprocess"))

throw new AuthenticationException(AuthenticationException.NOT_LOGIN);

3.6 修改mvnForum Web项目中的代码

3.6.1 复制mvnForum库文件

删除mvnForum Web项目中/WEB-INF/lib目录下的mvnforum.jar文件,并将上述Eclipse中编译生成的类文件复制到/WEB-INF目录中,即将com目录文件夹复制到/WEB-INF/classes目录文件夹下。

3.6.2 修改JsP文件

mvnForumWeb项目中/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 3C //DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/HTML4/loose.dtd">

<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>

总结

以上是内存溢出为你收集整理的mvnForum同CAS整合实现单点登录全部内容,希望文章能够帮你解决mvnForum同CAS整合实现单点登录所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1180744.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存