`
xurichusheng
  • 浏览: 335570 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

单点登录代码整理

阅读更多

 

参考了 dinguangx  写的6篇文章:

 

1. CAS服务器实验之一: CAS基本概念

 

2. CAS服务器实验之二:CAS Server部署

 

3. CAS服务器实验之三:启用Http协议

 

4. CAS服务器实验之四:单点登录测试

 

5. CAS服务器实验之五:单点退出测试

 

6. CAS服务器实验之六:自定义CAS服务器数据源

 

(这里只是引用了 dinguangx   的文章链接,希望不会造成侵权

 

这里使用的数据库是 oracle 10g2

 

在第四篇文章中,新建的maven工程,使用的maven见附件 apache-maven-3.0.4.rar

 

使用的开发工具是 eclipse-jee-indigo-SR2-win32

需要安装eclipse 的 maven 插件

eclipse中,maven的配置如下:


 

 


 

都按文章中配好之后,需要将maven工程转成web工程:

右键工程名,选择properties,找到 project facets,单击 Convert to faceted Form...

如下图所示,勾选 Dynamic Web Module 和 JavaScript,  我用的是 tomcat 6 的,所以 Dynamic Web Module

选择的是 2.4 



 

点击 Further configuration available..

在弹出的窗口中,将Content directory 的值改成项目中 webroot 的名称,我这里项目跟目录是 webapp



 
 

 

在第六篇文章中,insert 表数据的时候,使用了函数 md5(str),由于oracle并没有这个函数,所以在 insert

语句中的密码需使用 cas 包中的 DefaultPasswordEncoder 进行加密,代码如下:

junit 4

import org.jasig.cas.authentication.handler.DefaultPasswordEncoder;
import org.junit.Test;

public class Test1 {

	@Test
	public void encode() {
		
		String password= "dylan";
		
		System.out.println(new DefaultPasswordEncoder("MD5").encode(password));
	}

}

 

创建表:

CREATE TABLE t_user
(
u_id VARCHAR2(36) PRIMARY KEY,
u_name VARCHAR2(20) NOT NULL,
pwd VARCHAR2(50) NOT NULL
);

 插入数据:

INSERT INTO t_user VALUES(sys_guid(),'dylan','4f97319b308ed6bd3f0c195c176bbd77');
INSERT INTO t_user VALUES(sys_guid(),'admin','21232f297a57a5a743894a0e4a801fc3');
COMMIT;

 

退出登录 Filter

package cas.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

public class LogoutFilter implements Filter {

	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest req, ServletResponse resp,
			FilterChain chain) throws IOException, ServletException {

		HttpServletRequest httpRequest = (HttpServletRequest) req;

		String user = getCurrentUser(httpRequest);

		if (null != user) {
			String loginName = (String) httpRequest.getSession().getAttribute(
					"User_Info");
			httpRequest.getSession().removeAttribute("User_Info");
			user = null;
			System.out.println("用户'"+loginName+"'退出系统.");
		}

		chain.doFilter(req, resp);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
	}

	private String getCurrentUser(HttpServletRequest request) {
		return (String) request.getSession().getAttribute("User_Info");
	}
}

 

2个工程 都需要加这个 Filter

 

cas-server 、cas-client1、cas-client2 分别发布在3个不同的tomcat中,记得修改tomcat的端口

 

cas-client1、cas-client2 的代码见附件 cas-client1.rar、cas-client2.rar

 

cas-server  修改后见附件 cas.rar (由于iteye对上传附件大小有限制,这里就不上传jar包了)

 

  • 大小: 28.6 KB
  • 大小: 24.7 KB
  • cas.rar (115.5 KB)
  • 下载次数: 21
  • 大小: 31.2 KB
  • 大小: 17.8 KB
分享到:
评论

相关推荐

    WEBSSO-单点登录

    代码来源与编写你自己的单点登录,重新整理了博主的源码。

    springMVC+hibernate+oracle 采用注释开发 用户单点登录系统

    之前做.net开发,接触java一个多月了,这两天实践了一下ssh框架是怎么搭建的,借鉴了一些网上的博文,但在实际过程中,遇到很多问题,,苦于没有源代码...最终实现了功能,特此整理一份源代码供和我一样的初学者学习.

    java核心知识点整理

    java核心知识点整理 1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型...

    小程序 单点与多点触摸(源代码+截图).rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...

    移动机器人导航和rrt自主建图项目代码文件

    移动机器人项目组任务安排表 Day 01 上午 1.gmapping参数配置(李超) 2.总体launch文件的编写(钟浩) 3.机器人tf,状态,滤波器launch文件的编写(李博) 4.移动机器人调试(李超,...1.完成代码整理,说明文档撰写。

    Java面向对象知识点整理.xmind

    自己学习Java面向对象时对知识点的整理总结,主要包括:一些关键字、权限修饰符的使用、重载、构造器、代码块、内部类、封装、继承、多态、抽象、javabean、单元测试、包装类Object类、设计模式的理解与总结。...

    C语言源代码格式化 完工 V1.08 20120801 1627.7z

    TXTEditEnterX1单文件排版 20110729 1902.7z 排版用 原理:ASC 转 UNICODE(排版) 回转ASC(替换掉原来的文件)。 doyouhikeList 磨房报名人员ID格式化后发悄悄话 20110729 1856.7z 磨房报名人员ID格式化后发...

    日常工作搜索整理蓝凌低代码汇总

    说明:此文件是日常工作搜索整理的,便于日常解决问题,大概50小点的样子 蓝凌JS 常用功能 1:判断表单多值属性 (复选框/下拉菜单) 是否选了某个选顶 2:获取员工编号 3:获取所属机构 4:获取组织架构全路径,以/为分割...

    PerCM个人代码管理软件

    需要注意的是,这种全本浏览的方式,也可能是整理的方式,也是我所需要的,就是能够对自己所掌握的知识进行一个系统的整理,这个目前不去实现。 如果简化成为这样一个状态,perCDM不但可以搜索代码,而且可以同时搜索...

    java核心知识点整理.pdf

    27 标记整理算法(Mark-Compact).................................................................................................. 28 分代收集算法 ..........................................................

    2018年最新中国行政区划代码省市区县MySQL数据库单表,包含港澳台,最新整理,严禁盗版

    新版本,比上个版本chen6013143发布的更全点,自己辛苦编辑的,禁止盗版,其中区号、邮编和坐标太麻烦了,没有添加全,有需要的自己在编辑下吧,表结构如下: id bigint(45) (NULL) YES (NULL) select,insert,update...

    应用源码之单点与多点触摸.zip

    android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台

    JAVA 五年的工作经验和学习笔记

    本文档包括JAVA/FLEX/数据建模/Database/移动办公/项目管理/单点登录/软件架构/测试等相关性技术。 本文档还在持续维护中,各位可以通过《笔记变更说明》查看升级日志。 在这里声明下,本文档一部分是个人从学习...

    ACM经典、常用代码

    这是我整理过的关于ACM题目常用到的算法代码,word文档,条理清晰,绝对有用。目录如下: 一.数论 1.阶乘最后非零位 2. 模线性方程(组) 3. 素数表 4. 素数随机判定(miller_rabin) 5. 质因数分解 6. 最大公...

    JAVA核心知识点整理.rar

    2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型语言,即必须声明变量的类型,Java中有8种类型,6种数值类型(4个...

    Python小课知识点.docx

    很基础很基础的简单的代码书写规范与基本使用,适合没有基础的新手 里面是这样的内容: Q:代码等于号两边要不要空格,有影响吗 A:没有影响,要习惯空格,这样更加规范美观,有辨识度,如: a = 0 b = input...

Global site tag (gtag.js) - Google Analytics