From 9a56c5710eb281afc06e2f3a211b8b595f24bbe1 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 16 八月 2023 09:39:34 +0800
Subject: [PATCH] update
---
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java | 76 +++++++++++--------------------------
1 files changed, 23 insertions(+), 53 deletions(-)
diff --git a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
index f8f86c5..1c19d87 100644
--- a/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
+++ b/management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/system/LoginController.java
@@ -19,6 +19,7 @@
import com.stylefeng.guns.modular.system.service.IMenuService;
import com.stylefeng.guns.modular.system.service.IUserService;
import com.stylefeng.guns.modular.system.util.AESUtils;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
import org.apache.shiro.authc.SimpleAuthenticationInfo;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.subject.Subject;
@@ -49,12 +50,11 @@
@Autowired
private IUserService userService;
-
- private Map<String, Long> loginTime = new HashMap<>();
+ @Autowired
+ private RedisUtil redisUtil;
private Map<String, Integer> loginFailures = new HashMap<>();
- private List<String> ips = Arrays.asList("127.0.0.1","192.168.0.247");
@@ -120,43 +120,12 @@
* 点击登录执行的动作
*/
@RequestMapping(value = "/login", method = RequestMethod.POST)
- public String loginVali(String username, String password, String remember, Model model, HttpServletRequest request) {
- String ip = request.getHeader("x-forwarded-for");
- if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
- // 多次反向代理后会有多个ip值,第一个ip才是真实ip
- if (ip.indexOf(",") != -1) {
- ip = ip.split(",")[0];
- }
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getHeader("Proxy-Client-IP");
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getHeader("WL-Proxy-Client-IP");
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getHeader("HTTP_CLIENT_IP");
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getHeader("HTTP_X_FORWARDED_FOR");
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getHeader("X-Real-IP");
- }
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
- ip = request.getRemoteAddr();
- }
- if(!ips.contains(ip)){
- model.addAttribute("tips", "请在特定的网络下使用系统");
- return "/login.html";
- }
-
+ public String loginVali(String username, String password,String sms_code, String remember, Model model, HttpServletRequest request) {
Integer f = loginFailures.get(username);
f = f == null ? 0 : f;
// 校验账号,密码是否正确,如果错误,对次数进行加1
IShiro shiroFactory = ShiroFactroy.me();
User user = userService.getByAccount(username);
- password = AESUtils.decrypt(password);
if(null == user){
f++;
loginFailures.put(username, f);
@@ -174,29 +143,30 @@
if(f==5){
model.addAttribute("number", "5");
}
+ model.addAttribute("tips","账号或密码错误!");
return "/login.html";
}
}
- model.addAttribute("number", "3");
- /*if(f > 5 ){
- model.addAttribute("tips", "登录次数过多,请等30分钟再试!");
- if (KaptchaUtil.getKaptchaOnOff()) {
- String kaptcha = super.getPara("kaptcha").trim();
- String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
- if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
- throw new InvalidKaptchaException();
- }
- }
- return "/login.html";
- }*/
- //验证验证码是否正确
-// if (KaptchaUtil.getKaptchaOnOff()) {
-// String kaptcha = super.getPara("kaptcha").trim();
-// String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
-// if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
-// throw new InvalidKaptchaException();
+
+// if(!"aaaa".equals(sms_code)){
+// String value = redisUtil.getValue(user.getPhone());
+// if(ToolUtil.isEmpty(value) || !sms_code.equals(value)){
+// model.addAttribute("tips", "无效的验证码");
+// return "/login.html";
// }
// }
+
+
+ //验证验证码是否正确
+ if (KaptchaUtil.getKaptchaOnOff()) {
+ String kaptcha = super.getPara("kaptcha").trim();
+ String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
+ if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
+ throw new InvalidKaptchaException();
+ }
+ }
+
+ model.addAttribute("number", "3");
Subject currentUser = ShiroKit.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray());
--
Gitblit v1.7.1