思想:
在数据库增加字段 1.登录次数 2.登录失败时间(类型TimeStamp)
当一个用户进来认证的时候当登录失败的时候更新登录次数 和最后登录失败的时间。
主要是在登录成功或者失败的时候判断时间差是不是大于定义的时间,要数大于得话得更新登陆次数和失败时间。
成功的时候把登陆次数更新,而不更新登录错误时间
登录失败的时候把登陆次数更新为最大次数减一,把错误时间更新到当前。
具体在CAS中的实现
修改web-flow 验证路口:先修改配置文件cas-servlet.xml
定义flow.AuthenticationViaFormAction类 原cas-server-core-3.3.3.jar中类
然后修改真正验证的核心类QueryDatabaseAuthenticationHandler cas-server-support-jdbc-3.3.3.jar包
首先修改deployerConfigContext.xml
新建自定义类QueryDatabaseAuthenticationHandler
最后修改 simple-loginflow.xml中的一个FLOW结果,这是我自己的自定义flow 其他的可以类似的改。
statusErrorCallbackView6中的内容为
这就是全部配置
整个的simple-loginflow.xml代码如下