sso-cas全攻略(java版)------cas如何加验证码功能

加个验证码在一定程度上可以防止robot不停访问猜测用户名密码

如何在cas server端加验证码呢?

以典型的cas server端为例,

我们来实际操作下

验证码一般来说,是放在session中

session又是从request中拿来的

我们的用户名,密码验证是在哪儿做的呢?

在SimpleTestUsernamePasswordAuthenticationHandler这个类中

OK

只要把请求的request拿到

set到SimpleTestUsernamePasswordAuthenticationHandler中就OK了

先做准备工作

在以下interface中加void setHttpServletRequest(HttpServletRequest request);

方法并在其所有实现中添加private变量httpservletrequest

同时,所有实现中也要实现这个方法

CentralAuthenticationService

AuthenticationHandler

在AuthenticationViaFormAction中

的submit方法中添加以下两行

final HttpServletRequest request = WebUtils.getHttpServletRequest(context);
this.centralAuthenticationService.setHttpServletRequest(request);

在CentralAuthenticationServiceImpl中的适当若干位置

this.authenticationManager.setHttpServletRequest(request);

OK

SimpleTestUsernamePasswordAuthenticationHandler中的request就传递进来了

可以用了

同时呢

casloginview.jsp中要加入验证码输入框

同时你自己的Credentials中也要加验证码的变量及get set字段

login-webflow中也有要相应的bind逻辑才行

前提是有产生验证码的相关类并在request的session中写了验证码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值