用户在登录的时候,密码输入错误也能登录问题
今天在做用户登录那一块,遇到了密码随便输入还能登录问题,一直不知道问题出在哪里,开始用debug调试 发现从数据库中查询不到密码,只能查询出来用户名,所以在登录校验的时候只校验了用户名这一项
然后开始一步步检查错误 ,service层没有错,dao层的接口没问题 ,最终问题锁定到mapper文件里 。
发现mapper文件中的sql语句有问题。
登录控制层代码:
/** * 点击登录执行的动作 TODO 第一次登录页面 没有解析${pageContext.request.contextPath} $%7B %7D */ @RequestMapping(value = "/loginValid", method = RequestMethod.POST)public String loginValid() { String username = super.getPara("userName").trim(); String password = super.getPara("password").trim(); // //验证验证码是否正确// if(ToolUtil.getKaptchaOnOff()){// String kaptcha = super.getPara("kaptcha").trim();// String code = (String) getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);// if(ToolUtil.isEmpty(kaptcha) || !kaptcha.equals(code)){// throw new InvalidKaptchaException();// }// } // 取数据库验证用户名和密码,然后保存当前用户到session User loginUser = userMapper.loginValid(username,password); //取不到用户密码,只能查询出来其他字段值if (loginUser == null) {throw new LoginValidException(); } getSession().setAttribute("sessionFlag",true);getSession().setAttribute("currentUser",loginUser); return REDIRECT + "manage/index"; } mapper文件里面的sql:
<select id="loginValid" resultType="user"> select<include refid="Base_Column_List" /> from user where state = 1 and phone = #{username} or account = #{username} or name= #{username}//开始以为是sql语句有问题 一直在纠结 and和 or 的问题 ,删除了 or name=#{username} and password = #{password} </select> 最后发现sql片段里面的字段没有password这一字段,但是这个作为条件 为了用户隐私,不能让查询到密码才设置的 后来发现没办法加了这一字段
<sql id="Base_Column_List"> id, password,account, name, birthday, sex, email, avatar, phone, dept_id, level, state, create_time, version</sql> <select id="loginValid" resultType="user"> select<include refid="Base_Column_List" /> from user where state = 1 and phone = #{username} or account = #{username} and password = #{password} </select>最终这一问题才接解决,总感觉有不妥的地方 ,不知道错在哪里 新人菜鸟一枚 希望能提出宝贵意见
转载于:https://www.cnblogs.com/x9y9h/p/10136602.html
用户在登录的时候,密码输入错误也能登录问题相关推荐
- C语言实现可写入文件的账号密码登录系统,密码输入时掩盖,登录界面菜单选择,更改密码系统,课设必备。
账号登录系统在很多系统设计时都时必不可少的,今天这个登录系统功能较全,可以注册,登录,找回密码,修改密码,以及在输入密码时会有*将密码掩盖,还有完善地登录选择界面,废话不多,上代码! 目录 1.头文件 ...
- <微信小程序>登录界面实现密码输入错误3次,30分钟不允许该账号登录
当时面临如此需求,实在无从下手,后自己想了一个灵活的方法进行面对,特此记录,希望以后不会看不懂自己的代码 登陆界面设置 这个百度一下就可以,与数据库交互的登录界面很是简单,由于本项目要求不可注册,故只 ...
- 根据用户输入的账号和密码,确认是否成功登录?若正确,提示“恭喜您,登录成功!”;若错误,提示“账号或密码输入错误,请重新输入!”;若错误输入超过3次,则提示“今天输入已经超过3次
根据用户输入的账号和密码,确认是否成功登录?若正确,提示"恭喜您,登录成功!":若错误,提示"账号或密码输入错误,请重新输入!":若错误输入超过3次,则提示&q ...
- 解决IDEA GIT密码输入错误后,报Authentication failed ... 不再弹出输入框,提交更新失败
IDEA GIT密码输入错误后,不再弹出输入框,提交更新失败,此时可以到windows凭据中去修改. 方法一: 开始菜单 >> 点击用户头像 >> 在左侧选择"管理你 ...
- iphone 密码输入错误_如何使用iPhone在Apple TV上输入密码
iphone 密码输入错误 Using the Siri Remote to enter text on an Apple TV is difficult, especially when it's ...
- webstorm中git密码输入错误,重置问题
webstorm中git密码输入错误,重置问题 今天遇到了一个问题. 因为我比较习惯使用webstorm编辑器,特别喜欢直接用里面的git工具. 当从远程仓库fetch下来代码时,提示输入用户名密码. ...
- php限制密码输入错误次数,js密码输入错误指定次数禁止输入
下面要说的是网站中一个常见的功能,在客人使用抵用券或者其他来支付的时候需要验证密码,如果密码输入错误5次就锁定,不在让客人使用抵用券了,在这里是使用的cookie来实现的,不太严谨. 思路很简单,在输 ...
- 表单验证通过输入框获取用户输入的密码,如果输入密码为“happy123”,则显示“密码输入正确”,否则提示“密码输入错误”,如果输入三次,显示提示信息“三分钟后在尝试”
功能:简单的表单验证,密码输入次数控制,定时器控制可输入提醒,密码匹配 Html:请忽略界面设计,没时间做 <form><input id="userName" ...
- 模拟用户登录界面,三次错误之后不能登录,输入正确显示登录成功
#include<stdio.h> #include<string.h> #include<windows.h> #include<stdlib.h> ...
最新文章
- mysql回表_到底什么情况下mysql innodb会发生回表操作?
- 【ASP.NET】ASP.NET中权限验证使用OnAuthorization实现
- atitit. 浏览器插件 控件 applet 的部署,签名总结 浏览器 插件 控件 的签名安全机制o9o...
- (二)Thymeleaf标准表达式之——简单表达式
- 自己用到的vim常用命令
- 一个详细的JTable使用例子
- js实战代码系列—周杰伦给你报时间+网页页签制作模板+jQuery初体验
- python元祖封包_[Day8]遷延蹉跎,來日無多-python終極指南:模組和封包,外掛般的超能力...
- linux中的设备名称和设备号,linux中的设备名称和设备号
- raw socket 使用 BPF 过滤报文
- JS常用事件兼容性处理方法
- 【原创】《管理的实践》阅读有感
- Gazbo下的无人车集群导航仿真
- [Ubuntu] 解决Win10+Ubuntu双系统时间不一致问题
- 【kafka】kafka windows Invalid UTF-8 middle byte 0xfe
- 现网必用的主备冗余技术,VRRP理论+配置
- 2022JK工作室第二次招新赛题解
- html九宫格排列图片,10款jQuery实现的360浏览器九宫格图片拖拽排序
- python清华大学出版社答案_清华大学出版社的这本Python入门书,出版8年 仍经久不衰...
- ioh3000t长虹盒子刷机固件 S905LB-高安-xian刷固件