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

来源:互联网 发布:淘宝聚沙塔 编辑:程序博客网 时间:2024/05/10 20:49


题记:


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


正文:

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

解决方案:

    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中的数据,来判断隐藏或显示。


    总结:

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


1 1