参考了 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包了)
相关推荐
单点登录(Single Sign-On,简称SSO)是一种网络身份验证机制,...本文档详尽地整理了 CAS 单点登录的各个方面,旨在为开发者提供全面的参考资料。通过实际操作和不断实践,可以更熟练地运用 CAS 实现单点登录功能。
SSH框架中的单元测试,尤其是涉及到Hibernate的部分,需要考虑以下关键知识点: 1. **隔离测试**:确保每个测试用例独立运行,不受其他测试影响,避免使用静态变量或全局状态。 2. **数据准备**:在测试前创建所需...
"很实用的js代码整理工具" 提供了一种有效管理JS代码的方法,帮助开发者将零散、混乱的代码片段进行有序化整理,提升工作效率。 1. **代码模块化**:JS代码整理的一个关键方面是模块化。通过使用模块,可以将大项目...
在进行Xcode代码整理时,除了使用Uncrustify这样的工具,还可以考虑以下几点: 1. **遵循编码规范**:Apple提供了一套名为“Apple Style Guide”的编码规范,包括Objective-C和Swift,建议所有Apple平台的开发者...
《龙之谷资源相关代码整理详解》 在游戏开发领域,资源管理是至关重要的部分,尤其是在大型游戏如《龙之谷》中。本篇将详细探讨“dn_asset”项目,这是一个针对《龙之谷》资源处理的代码集合,旨在帮助开发者理解和...
### Java编程知识点解析 #### 知识点一:基本输入输出操作 在Java中,进行基本的输入输出操作主要依赖于`java.util.Scanner`类。此类可以读取用户输入的标准输入、文件中的数据等,并自动根据所用类型进行转换。 ...
在IT接单过程中,代码的编写是一项核心工作,可能涉及到以下知识点: 1. **Python编程**:Python是一种高级编程语言,因其简洁的语法和丰富的库支持而被广泛用于Web开发、数据分析、自动化任务和爬虫等领域。这里...
【标题】"文件整理基础部分C#代码"的描述中提到了C#编程语言的应用基础知识,这可能包括了变量声明、数据类型、控制结构(如if语句、for循环、while循环)、函数定义与调用、类与对象、继承、接口、异常处理等核心...
标题“代码坏味道整理”指的是在编程过程中,代码可能会出现的一些不良习惯或低效的编程实践,这些被称为“代码坏味道”。这些坏味道通常会使代码难以理解、维护和扩展,降低了软件的质量。为了提高代码可读性和可...
以下是这份代码规范整理的主要知识点: 1. PHP代码格式规范: - 只允许使用长标签`<?php ?>`和短输出式标签`<?= ?>`,避免使用其他格式的标签。 - 所有PHP代码必须使用不带字节顺序标记(BOM)的UTF-8编码格式。 -...
【标题】"2020电赛A题代码整理.zip" 涉及的是2020年电子设计大赛(简称“电赛”)的A题解决方案,这是一份包含了参赛者或指导教师整理的代码资源。电赛通常是一项面向大学生的年度竞赛,旨在提升学生的实践能力和...
为了编写程序或进行故障诊断,可以直接从手册中提取这些代码并复制到报警列表中使用,方便快捷地定位故障点,迅速排除故障,恢复设备正常运行。 整理完成的S120故障代码列表,可以作为工程师在进行设备调试和维护时...
黄苏敏同学负责的企业基本信息管理、企业招聘信息管理和企业级别自动更新模块都经过了复审,以保证以下几点: - 功能完整性:确认代码实现的所有功能符合需求规格。 - 性能优化:检查代码是否有效利用资源,避免...
【标题】"ios代码整理-gl"涉及到的是iOS开发中的Objective-C或Swift编程知识,主要是一些基础且实用的代码片段集合,适用于初学者和团队内部分享,以便于快速理解和应用到项目中。 【描述】"ios 代码 整理 基础版 ...
标题“FFT-hdl源代码整理”表明这是一份关于快速傅里叶变换(FFT)的硬件描述语言(HDL)源代码集合。FFT是一种在数字信号处理领域中广泛使用的算法,用于将时域信号转换为频域信号。HDL则是用于设计数字电子系统的...
2. **代码整理**:代码整理涉及到重构、模块化和逻辑优化。重构是指在不改变代码外在行为的前提下,改进代码的内部结构,提高可读性和可维护性。模块化则是将代码分解为小的、独立的功能单元,便于管理和重用。逻辑...
Xen的保存和恢复功能允许虚拟机在不关闭的情况下暂停,然后在稍后的时间点恢复运行。这在迁移、故障恢复或资源调度等场景中非常有用。保存过程涉及将虚拟机的状态(包括内存、CPU寄存器、设备状态等)持久化到存储中...