(六)SSO之CAS框架扩展 修改CAS源码实现与ESS动态密码验证对接

题记:

偶尔的偶尔我们会听到这个网站的数据泄露了,那个网站的用户数据泄露了,让用户重新修改登录密码,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的网站,更需要增加安全性了。

正文:

对于安全性问题,我们如何解决呢?

解决方案:

1、避免sql注入问题。

2、用户登录密码加密。

3、使用https安全访问方式。

4、使用第三方设备,像银行一般使用的密码口令。

5、...

前三种方案是比较常见的,这里主要说第四种解决方案,我们在前三种方案的基础上,使用了第三方的设备,就像网银那样,需要动态口令,才可以登录进入系统。根据需求,公司使用的第三方设备,ESS设备,需要实现在CAS的基础上实现动态口令密码验证功能。也就是又要去改动CAS源码了,不能说CAS在功能的扩展方面做的不是十分的好,但是在代码的可扩展上还是可以的。

具体需求:

1、可以动态的切换页面,客户需要使用ESS动态密码安全,就切换到ESS页面,用户不需要使用ESS设备就切换到无动态密码口令的页面。

2、在添加用户的时候,如用户需要使用ESS设备,则显示,无需则用户不用看到相关的设备信息,也无须添加与之对应的设备信息。

具体的解决方案:

为了不去修改更多的源码而引起他的问题,让CAS与ESS设备结合,解决步骤如下。

1、动态切换页面

A  实现页面动态切换,首先需要两个登录页面,以便切换,复制cas的登录页面一份cas\WEB-INF\view\jsp\  复制default文件夹,重命名为ess,我们将其改名后再放进来。

B复制并改名cas\WEB-INF\classess下的default_views.properties,在这里改名为ess_views.properties
,打开我们添加的这个文件,将所有default的路径改为ess的路径,也就是修改成我们新建的文件夹的名称。

C然后打开cas\WEB-INF下的cas.properties,修改cas.viewResolver.basename=ess_views

2、动态密码验证

加上动态密码字段,和加入systemId过程一致:http://blog.csdn.net/lovesummerforever/article/details/38023385,当然在向数据库这验证用户名和密码是否正确之后,需要调用验证ESS设备的接口,来验证动态密码(ESS设备的动态密码验证,是他的客户端和服务器采用一致的算法,这样每一分钟生成相同的动态口令,调用接口来和服务器做匹配验证)

3、对于控制输入框的隐藏和显示

把修改配置的变量放到xml文件中或者放在.properties文件中,通过读取配置文件,写入到application或者session中,再界面通过EL表达式或者jstl表达式,取到session或者application中的数据,来判断隐藏或显示。

总结:

相信没有解决不了的问题,只要你想解决!办法总比问题多!

时间: 2024-10-10 12:55:41

(六)SSO之CAS框架扩展 修改CAS源码实现与ESS动态密码验证对接的相关文章

(六)SSO之CAS框架扩展 改动CAS源代码实现与ESS动态password验证对接

题记: 偶尔的偶尔我们会听到这个站点的数据泄露了,那个站点的用户数据泄露了.让用户又一次改动登录password,所以,对于用户数据安全性越发的引起我们的重视了,尤其是一些保密性要求高的站点.更须要添加安全性了. 正文: 对于安全性问题.我们怎样解决呢? 解决方式: 1.避免sql注入问题. 2.用户登录password加密. 3.使用https安全訪问方式. 4.使用第三方设备.像银行一般使用的password口令. 5.... 前三种方案是比較常见的.这里主要说第四种解决方式,我们在前三种方

Java学习-039-源码 jar 包的二次开发扩展实例(源码修改)

最近在使用已有的一些 jar 包时,发现有些 jar 包中的一些方法无法满足自己的一些需求,例如返回固定的格式,字符串处理等等,因而需要对原有 jar 文件中对应的 class 文件进行二次开发扩展,并重新打包文件,替换原有的 jar 文件,满足测试开发自身的需求. 下面以修改 eclipse 默认注释中的 ${date} 和 ${time} 对应的返回样式(如下图所示),进行实例说明. 整个二次开发的过程如下所示: 0.未修改之前,生成注释的日期.时间显示格式如下所示: 1.获取对应的 jar

Android学习笔记(十六)——碎片之间进行交互(附源码)

碎片之间进行交互 点击下载源码 很多时候,一个活动中包含一个或者多个碎片,它们彼此协作,向用户展示一个一致的UI.在这种情况下,碎片之间能进行通信并交换数据十分重要. 1.使用上一篇中创建的同一个项目,在fragment.xml中添加TextView的标识id: android:id="@+id/lblFragment1" 2.在fragment2.xml中添加一个Button,用于与fragment1进行交互: <Button android:id="@+id/btn

MyBatis框架的使用及源码分析(十一) StatementHandler

我们回忆一下<MyBatis框架的使用及源码分析(十) CacheExecutor,SimpleExecutor,BatchExecutor ,ReuseExecutor> , 这4个Excecutor执行sql操作的最终都调用了StatementHandler 来执行,我们拿SimpleExecutor来看: public int doUpdate(MappedStatement ms, Object parameter) throws SQLException { Statement st

修改extjs源码关闭按钮样式

首先通过文件引用找到extjs的样式文件: <link rel="stylesheet" type="text/css" href="<%=basePath%>/publicresource/extlib/resources/css/ext-all.css" /> 打开ext-all.css在文件最后添加下面代码 .x-tool-close {          background-position:-2 -380px;

基于Docker的TensorFlow机器学习框架搭建和实例源码解读

概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的机器学习开发环境,探索人工智能的奥秘,容器随开随用方便快捷.源码解析TensorFlow容器创建和示例程序运行,为热爱机器学者降低学习难度. 默认机器已经装好了Docker(Docker安装和使用可以看我另一篇博文:Ubuntu16.04安装Docker1.12+开发实例+hello world+w

spring mvc+ibatis+mysql的组合框架入门实例demo源码下载

原文:spring mvc+ibatis+mysql的组合框架入门实例demo源码下载 源代码下载地址:http://www.zuidaima.com/share/1550463678958592.htm spring mvc+ibatis+mysql的组合框架实例 首页 http://localhost:端口/项目/index.jsp 添加用户 添加地址 项目截图 jar包截图

openwrt路由器更换了Flash之后需要修改的源码

假如我使用的是WR703N,改为8M内存: 1 修改openwrt/target/linux/ar71xx/image/Makefile文件 $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLMR3420V2,tl-mr3420-v2,TL-MR3420-v2,ttyS0,115200,0x34200002,1,4Mlzma)) #$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR703,tl-w

九周第四次课(2月26日) 11.1 LAMP架构介绍 11.2 MySQL、MariaDB介绍 11.3/11.4/11.5 MySQL安装 扩展 mysql5.5源码编译安装

11.1 LAMP架构介绍11.2 MySQL.MariaDB介绍11.3/11.4/11.5 MySQL安装扩展mysql5.5源码编译安装   http://www.aminglinux.com/bbs/thread-1059-1-1.html mysql5.7二进制包安装(变化较大)  http://www.apelearn.com/bbs/thread-10105-1-1.html =====================================================