项目采用jeeweb框架,要启用shiro登陆的验证码功能,调试总是不经有验证就成功登陆,好不容易实现了验证码非空校验,随便输入也能校验成功,以下简述调试经历,做下笔记,欢迎指正。

分析shiro默认加载配置

直接开启验证码不再做次数验证

跟踪发现如下类

RetryLimitHashedCredentialsMatcher中有次数校验,直接去掉、

接下来

JCaptchaValidateFilter.java

跟踪进来多次发现 验证码关键

JCaptcha.validateResponse(httpServletRequest, httpServletRequest.getParameter(jcaptchaParam));

这里简单交代一下  validateResponsehe 和 hasCaptcha区别,

validateResponse():验证当前请求输入的验证码否正确;并从CaptchaService中删除已经生成的验证码;

hasCaptcha():验证当前请求输入的验证码是否正确;但不从CaptchaService中删除已经生成的验证码(比如Ajax验证时可以使用,防止多次生成验证码);

改造:

注意标红处开始是true  不论是否检验成功都直接登陆了,问题找到,改成false 解决。

另还需注意一点:

验证码名称要统一。

Jeeweb 中shiro验证码启用问题相关推荐

  1. 辛星php函数,辛星和您用更简略的方式去实现PHP中的验证码

    辛星和您用更简单的方式去实现PHP中的验证码 说实话,提到验证码我想大家都不会陌生,确实,验证码还是挺常见的,现在搜索一下PHP的验证码类简直是海量的数据,那我们今天就来实现一个自己的验证码把,不过它 ...

  2. tp中php验证码程序,thinkPHP 验证码生成与验证

    您现在的位置是:网站首页>>PHP>>thinkPHP thinkPHP 验证码生成与验证 发布时间:2018-12-06 13:34:11作者:wangjian浏览量:842 ...

  3. edge无法上网dns_如何在Microsoft Edge中通过HTTPS启用DNS

    edge无法上网dns Microsoft will one day enable DNS over HTTPS (DoH) for all Windows applications, but you ...

  4. Django中示例验证码的实现总结

    验证码 在用户注册.登录页面,为了防止暴力请求,可以加入验证码功能,如果验证码错误,则不需要继续处理,可以减轻业务服务器.数据库服务器的压力. 1)安装包Pillow3.4.1. 1 pip inst ...

  5. java shiro做页面显示_Java-Shiro(八):Shiro集成SpringMvc、Themeleaf,如何实现Themeleaf视图引擎下解析*.html中shiro权限验证...

    我们知道如果是采用jsp视图引擎,直接在jsp中加入shiro的tag就可以,然而在thymeleaf视图引擎下,并未有shiro的tag lib.实际上目前shiro+Thymeleaf的html页 ...

  6. Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代理的问题

    Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代理的问题 参考文章: (1)Spring AOP动态代理实现,解决Spring Boot中无法正常启用JDK动态代 ...

  7. 论坛中的验证码的作用

    论坛中的验证码的作用 因为你的WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是 身份欺骗_它通过 在客户端脚 本写入一些代码,然后利用其,客户机在网站,论坛反复登陆,或者攻击者创建一个H ...

  8. 在Windows Server 2012 R2的Hyper-V中设置虚拟机启用增强会话模式

    在Windows Server 2012 R2的Hyper-V中,可以为虚拟机提供一种全新的连接方式,就是"增强会话模式",它将让您更加方便的对虚拟机进行操作,比如分辨率的调整.设 ...

  9. springBoot中shiro与Redis整合的配置文件

                                                                 springBoot中shiro与Redis整合的配置文件 整合依赖: < ...

最新文章

  1. 索尼发布全球首款内置AI传感器,1200万像素,660元起售
  2. Python中使用ElementTree解析xml
  3. 多线程间通信之AutoResetEvent和ManualResetEvent的原理分析
  4. securecrt切换会话(session)的显示方式
  5. 爬虫学习笔记(七)——Scrapy框架(二):Scrapy shell、选择器
  6. 收藏:通信网络基础知识
  7. hdu2457 Trie图+dp
  8. javascript遍历对象的属性
  9. STM32F103:三.(3)MPU6050
  10. scrolling=no 无法根据坐标获取元素_科曼尼KOMANIE三坐标测量仪命令不执行【维修】北京303所...
  11. 从零基础入门Tensorflow2.0 ----九、44.2 keras加载保存的参数
  12. 华硕FX50JK4200安装Win8.1后如何禁用触摸板
  13. c语言ABCDEF前中后序遍历,c语言实现二叉树及前中后序遍历
  14. echarts世界地图各个国家及中国城市的经纬度数组
  15. CS academy Binary Flips(dp)
  16. R语言将dataframe数据中指定数据列的数据从小数转化为百分比表示、数据转换为百分数
  17. 淘宝自动查券找券返利机器人实现方法分享
  18. 深蓝学院-多传感器融合定位课程-第2章-3D激光里程计I
  19. java-net-php-python-jsp家具进销存管理系统1计算机毕业设计程序
  20. python2048游戏的未来展望_不敢想!不敢想!我用Python自动玩转2048游戏

热门文章

  1. 【西瓜书笔记】前两章
  2. 示波器相关术语介绍(上)
  3. delphi小写金额转大写的函数《转》
  4. vbs中msgbox你不知道的用法
  5. JavaScript实现输入圆的半径,输出周长、体积和面积的代码
  6. 基于DCF的跟踪算法综述
  7. java毕业设计网站SSM幼儿园信息管理系统
  8. 三星教父李健熙去世!被与乔布斯相提并论,把一个韩国山寨家电厂打造为全球电子巨头...
  9. ar.js 追踪图片mark播放视频,并且根据是否识别控制视频播放操作
  10. 分享88个ASP交友会员源码,总有一款适合您