参考了 dinguangx 写的6篇文章:
(这里只是引用了 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包了)
相关推荐
代码来源与编写你自己的单点登录,重新整理了博主的源码。
之前做.net开发,接触java一个多月了,这两天实践了一下ssh框架是怎么搭建的,借鉴了一些网上的博文,但在实际过程中,遇到很多问题,,苦于没有源代码...最终实现了功能,特此整理一份源代码供和我一样的初学者学习.
java核心知识点整理 1.Java中没有多继承,而是用接口来代替多继承 2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
移动机器人项目组任务安排表 Day 01 上午 1.gmapping参数配置(李超) 2.总体launch文件的编写(钟浩) 3.机器人tf,状态,滤波器launch文件的编写(李博) 4.移动机器人调试(李超,...1.完成代码整理,说明文档撰写。
自己学习Java面向对象时对知识点的整理总结,主要包括:一些关键字、权限修饰符的使用、重载、构造器、代码块、内部类、封装、继承、多态、抽象、javabean、单元测试、包装类Object类、设计模式的理解与总结。...
TXTEditEnterX1单文件排版 20110729 1902.7z 排版用 原理:ASC 转 UNICODE(排版) 回转ASC(替换掉原来的文件)。 doyouhikeList 磨房报名人员ID格式化后发悄悄话 20110729 1856.7z 磨房报名人员ID格式化后发...
说明:此文件是日常工作搜索整理的,便于日常解决问题,大概50小点的样子 蓝凌JS 常用功能 1:判断表单多值属性 (复选框/下拉菜单) 是否选了某个选顶 2:获取员工编号 3:获取所属机构 4:获取组织架构全路径,以/为分割...
需要注意的是,这种全本浏览的方式,也可能是整理的方式,也是我所需要的,就是能够对自己所掌握的知识进行一个系统的整理,这个目前不去实现。 如果简化成为这样一个状态,perCDM不但可以搜索代码,而且可以同时搜索...
27 标记整理算法(Mark-Compact).................................................................................................. 28 分代收集算法 ..........................................................
新版本,比上个版本chen6013143发布的更全点,自己辛苦编辑的,禁止盗版,其中区号、邮编和坐标太麻烦了,没有添加全,有需要的自己在编辑下吧,表结构如下: id bigint(45) (NULL) YES (NULL) select,insert,update...
android 源码学习. 资料部分来源于合法的互联网渠道收集和整理,供大家学习参考与交流。本人不对所涉及的版权问题或内容负法律责任。如有侵权,请通知本人删除。感谢CSDN官方提供大家交流的平台
本文档包括JAVA/FLEX/数据建模/Database/移动办公/项目管理/单点登录/软件架构/测试等相关性技术。 本文档还在持续维护中,各位可以通过《笔记变更说明》查看升级日志。 在这里声明下,本文档一部分是个人从学习...
这是我整理过的关于ACM题目常用到的算法代码,word文档,条理清晰,绝对有用。目录如下: 一.数论 1.阶乘最后非零位 2. 模线性方程(组) 3. 素数表 4. 素数随机判定(miller_rabin) 5. 质因数分解 6. 最大公...
2.运行一个已经编译的程序时,Java解释器总是从指定类的main方法中的代码开始执行,因此,执行代码中必须有一个main函数。 3.Java是典型的强类型语言,即必须声明变量的类型,Java中有8种类型,6种数值类型(4个...
很基础很基础的简单的代码书写规范与基本使用,适合没有基础的新手 里面是这样的内容: Q:代码等于号两边要不要空格,有影响吗 A:没有影响,要习惯空格,这样更加规范美观,有辨识度,如: a = 0 b = input...