From 36ceaaf9e4a67df3e29d12139acf3c002fa225ad Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期二, 26 三月 2024 19:17:49 +0800
Subject: [PATCH] 增加登录校验
---
src/main/java/com/fzzy/sys/entity/SysUser.java | 10 +-
src/main/resources/templates/home/home.html | 5 +
src/main/resources/templates/login/login.html | 40 +++++-----
src/main/java/com/fzzy/conf/WebMvcConfig.java | 19 ++++
src/main/java/com/fzzy/sys/UserPR.java | 18 ++-
src/main/resources/templates/home/home2.html | 3
src/main/resources/templates/home/home-whjl.html | 3
src/main/java/com/fzzy/conf/LicenseHandlerAdepter.java | 45 +++++++++++
src/main/java/com/fzzy/web/LoginController.java | 38 +++++++--
src/main/java/com/fzzy/api/Constant.java | 2
10 files changed, 138 insertions(+), 45 deletions(-)
diff --git a/src/main/java/com/fzzy/api/Constant.java b/src/main/java/com/fzzy/api/Constant.java
index f91bc09..7ebc740 100644
--- a/src/main/java/com/fzzy/api/Constant.java
+++ b/src/main/java/com/fzzy/api/Constant.java
@@ -315,6 +315,6 @@
/**
* 榛樿鐢ㄦ埛瀵嗙爜锛岀敤鎴风淮鎶ら噸缃瘑鐮佷娇鐢�
*/
- public static final String DEFAULT_USER_PASSWORD = "123456";
+ public static final String DEFAULT_USER_PASSWORD = "abc123456";
}
diff --git a/src/main/java/com/fzzy/conf/LicenseHandlerAdepter.java b/src/main/java/com/fzzy/conf/LicenseHandlerAdepter.java
new file mode 100644
index 0000000..32ca25b
--- /dev/null
+++ b/src/main/java/com/fzzy/conf/LicenseHandlerAdepter.java
@@ -0,0 +1,45 @@
+package com.fzzy.conf;
+
+import com.fzzy.sys.entity.SysUser;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+/**
+ *
+ */
+@Slf4j
+public class LicenseHandlerAdepter implements HandlerInterceptor {
+
+ @Override
+ public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
+ throws Exception {
+ }
+
+ @Override
+ public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
+ throws Exception {
+ }
+
+ @Override
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
+ try{
+ HttpSession session = request.getSession();
+ SysUser user = (SysUser)session.getAttribute("user");
+ if(null == user){
+ response.sendRedirect("./login");
+ return false;
+ }
+ return true;
+ }catch (Exception e){
+ log.error("璇佷功楠岃瘉澶辫触:" + e.getMessage(),e);
+ response.sendRedirect("./login");
+ return false;
+ }
+
+ }
+
+}
diff --git a/src/main/java/com/fzzy/conf/WebMvcConfig.java b/src/main/java/com/fzzy/conf/WebMvcConfig.java
index e9e7317..adfbae3 100644
--- a/src/main/java/com/fzzy/conf/WebMvcConfig.java
+++ b/src/main/java/com/fzzy/conf/WebMvcConfig.java
@@ -19,7 +19,7 @@
*/
@Override
public void addViewControllers(ViewControllerRegistry registry) {
- registry.addViewController("/").setViewName("forward:/home");
+ registry.addViewController("/").setViewName("forward:/login");
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
super.addViewControllers(registry);
}
@@ -39,4 +39,21 @@
}
+
+ /**
+ * 鎷︽埅鍣ㄩ厤缃�
+ * license 璇锋眰鎷︽埅
+ *
+ * @param registry
+ */
+ @Override
+ public void addInterceptors(InterceptorRegistry registry) {
+ registry.addInterceptor(new LicenseHandlerAdepter())
+ //鎷︽埅璺緞
+ .addPathPatterns("/home")
+ .addPathPatterns("/home2")
+ .addPathPatterns("/home-whjl")
+ .excludePathPatterns("login")
+ .excludePathPatterns("/service/api/order");
+ }
}
diff --git a/src/main/java/com/fzzy/sys/UserPR.java b/src/main/java/com/fzzy/sys/UserPR.java
index a2d884d..8dfe4ba 100644
--- a/src/main/java/com/fzzy/sys/UserPR.java
+++ b/src/main/java/com/fzzy/sys/UserPR.java
@@ -59,14 +59,12 @@
if (null == entity.getCreateDate()) {
entity.setCreateDate(new Date());
}
-// if (null == entity.getCompanyId()) {
-// entity.setCompanyId(ContextUtil.getCompanyId(true));
-// }
+
//瀵嗙爜鍔犲瘑
int salt = RandomUtils.nextInt(27);
salt += 4;
- bCryptPasswordEncoder = new BCryptPasswordEncoder(salt);
- String password = bCryptPasswordEncoder.encode(entity.getPassword());
+ BCryptPasswordEncoder encode = new BCryptPasswordEncoder();
+ String password = encode.encode(entity.getPassword());
// boolean b= bCryptPasswordEncoder.matches(entity.getPassword(),password);
entity.setPassword(password);
entity.setSalt(String.valueOf(salt));
@@ -98,11 +96,12 @@
*/
@Expose
public String resetPassword(SysUser entity) {
+
//瀵嗙爜鍔犲瘑
int salt = RandomUtils.nextInt(27);
salt += 4;
- bCryptPasswordEncoder = new BCryptPasswordEncoder(salt);
- String password = bCryptPasswordEncoder.encode(Constant.DEFAULT_USER_PASSWORD);
+ BCryptPasswordEncoder encode = new BCryptPasswordEncoder();
+ String password = encode.encode(Constant.DEFAULT_USER_PASSWORD);
entity.setPassword(password);
entity.setSalt(String.valueOf(salt));
@@ -120,4 +119,9 @@
return null;
}
+ public boolean checkPassword(String inputPwd, SysUser user) {
+ BCryptPasswordEncoder encode = new BCryptPasswordEncoder();
+ return encode.matches(inputPwd, user.getPassword());
+ }
+
}
diff --git a/src/main/java/com/fzzy/sys/entity/SysUser.java b/src/main/java/com/fzzy/sys/entity/SysUser.java
index e5801ec..34eef2c 100644
--- a/src/main/java/com/fzzy/sys/entity/SysUser.java
+++ b/src/main/java/com/fzzy/sys/entity/SysUser.java
@@ -16,22 +16,22 @@
@Id
- @Column(name = "USERNAME_", length = 30, nullable = false)
+ @Column(name = "USERNAME_", length = 30)
private String username;
@Column(name = "COMPANY_ID_", length = 20)
private String companyId;
- @Column(name = "NAME_", length = 60, nullable = false)
+ @Column(name = "NAME_", length = 60)
private String name;
- @Column(name = "PASSWORD_", length = 70, nullable = false, updatable = false)
+ @Column(name = "PASSWORD_", length = 70)
private String password;
- @Column(name = "SALT_", length = 10, nullable = false, updatable = false)
+ @Column(name = "SALT_", length = 10)
private String salt;
- @Column(name = "MALE_", nullable = false)
+ @Column(name = "MALE_")
private boolean male = true;
@Column(name = "BIRTHDAY_")
diff --git a/src/main/java/com/fzzy/web/LoginController.java b/src/main/java/com/fzzy/web/LoginController.java
index 7ccbb6a..7edaff0 100644
--- a/src/main/java/com/fzzy/web/LoginController.java
+++ b/src/main/java/com/fzzy/web/LoginController.java
@@ -1,16 +1,15 @@
package com.fzzy.web;
+import com.fzzy.sys.UserPR;
+import com.fzzy.sys.entity.SysUser;
import com.wf.captcha.ArithmeticCaptcha;
import com.wf.captcha.utils.CaptchaUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@@ -25,6 +24,9 @@
@RequestMapping
public class LoginController {
+ @Autowired
+ private UserPR userPR;
+
/**
* 鐧诲綍楠岃瘉鍏ュ彛
*
@@ -33,7 +35,7 @@
* @param captcha
* @return
*/
- @PostMapping("/login-check")
+ @GetMapping("/login-check")
public String login(HttpServletRequest request,
@RequestParam(name = "username_") String username,
@RequestParam(name = "password_") String password,
@@ -42,9 +44,26 @@
if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) {
return "redirect:/login?tag=01&username=" + username;
}
+ if (StringUtils.isEmpty(captcha)) {
+ return "redirect:/login?tag=02&username=" + username;
+ }
+ //鏍¢獙楠岃瘉鐮�
boolean validateCode = CaptchaUtil.ver(captcha, request);
- log.info("-----------楠岃瘉鐮�-----------{}", validateCode);
+ if (!validateCode) {
+ return "redirect:/login?tag=04&username=" + username;
+ }
+
+ SysUser user = userPR.listById(username);
+ if (null == user) {
+ return "redirect:/login?tag=05&username=" + username;
+ }
+
+ boolean tag = userPR.checkPassword(password, user);
+ if (!tag){
+ return "redirect:/login?tag=06&username=" + username;
+ }
+ request.getSession().setAttribute("user", user);
return "redirect:/home";
}
@@ -101,8 +120,6 @@
public void captcha(HttpServletResponse response, HttpServletRequest request) {
//璁剧疆闀垮
try {
- //鐢熸垚鏅�氶獙璇佺爜
- // SpecCaptcha specCaptcha = new SpecCaptcha();
//鐢熸垚绠楁暟楠岃瘉鐮�
ArithmeticCaptcha arithmeticCaptcha = new ArithmeticCaptcha();
//璁剧疆2涓虹畻鏁�
@@ -125,7 +142,8 @@
* @return
*/
@RequestMapping("/log-out")
- public String logOut() {
+ public String logOut(HttpServletRequest request) {
+ request.getSession().removeAttribute("user");
return "redirect:/login";
}
diff --git a/src/main/resources/templates/home/home-whjl.html b/src/main/resources/templates/home/home-whjl.html
index 4d5f29a..c3ecea2 100644
--- a/src/main/resources/templates/home/home-whjl.html
+++ b/src/main/resources/templates/home/home-whjl.html
@@ -95,6 +95,9 @@
<dd>
<a lay-href="com.fzzy.api.view.GbCheckItem.d">妫�楠岄」閰嶇疆</a>
</dd>
+ <dd>
+ <a lay-href="com.fzzy.sys.User.d">鐢ㄦ埛绠$悊</a>
+ </dd>
</dl>
</li>
diff --git a/src/main/resources/templates/home/home.html b/src/main/resources/templates/home/home.html
index ebaf2ec..837a850 100644
--- a/src/main/resources/templates/home/home.html
+++ b/src/main/resources/templates/home/home.html
@@ -50,7 +50,7 @@
</dd>
<hr>
<dd>
- <a href="#" target="_self">閫�鍑�</a>
+ <a href="./log-out">閫�鍑�</a>
</dd>
</dl>
</li>
@@ -95,6 +95,9 @@
<dd>
<a lay-href="com.fzzy.api.view.GbCheckItem.d">妫�楠岄」閰嶇疆</a>
</dd>
+ <dd>
+ <a lay-href="com.fzzy.sys.User.d">鐢ㄦ埛绠$悊</a>
+ </dd>
</dl>
</li>
diff --git a/src/main/resources/templates/home/home2.html b/src/main/resources/templates/home/home2.html
index b567a95..9a0f52b 100644
--- a/src/main/resources/templates/home/home2.html
+++ b/src/main/resources/templates/home/home2.html
@@ -97,6 +97,9 @@
<dd>
<a lay-href="com.fzzy.api.view.GbCheckItem.d">妫�楠岄」閰嶇疆</a>
</dd>
+ <dd>
+ <a lay-href="com.fzzy.sys.User.d">鐢ㄦ埛绠$悊</a>
+ </dd>
</dl>
</li>
<li data-name="component" class="layui-nav-item"><a
diff --git a/src/main/resources/templates/login/login.html b/src/main/resources/templates/login/login.html
index 99ce7fe..3b8eb0c 100644
--- a/src/main/resources/templates/login/login.html
+++ b/src/main/resources/templates/login/login.html
@@ -89,26 +89,26 @@
}
});
- // 杩涜鐧诲綍鎿嶄綔
- form.on('submit(login)', function (data) {
- data = data.field;
- if (data.username_ == '') {
- layer.msg('鐢ㄦ埛鍚嶄笉鑳戒负绌�');
- return false;
- }
- if (data.password_ == '') {
- layer.msg('瀵嗙爜涓嶈兘涓虹┖');
- return false;
- }
- if (data.captcha_ == '') {
- layer.msg('楠岃瘉鐮佷笉鑳戒负绌�');
- return false;
- }
- layer.msg('鐧诲綍鎴愬姛', function () {
- window.location = './login';
- });
- return false;
- });
+ // // 杩涜鐧诲綍鎿嶄綔
+ // form.on('submit(login)', function (data) {
+ // data = data.field;
+ // if (data.username_ == '') {
+ // layer.msg('鐢ㄦ埛鍚嶄笉鑳戒负绌�');
+ // return false;
+ // }
+ // if (data.password_ == '') {
+ // layer.msg('瀵嗙爜涓嶈兘涓虹┖');
+ // return false;
+ // }
+ // if (data.captcha_ == '') {
+ // layer.msg('楠岃瘉鐮佷笉鑳戒负绌�');
+ // return false;
+ // }
+ // layer.msg('鐧诲綍鎴愬姛', function () {
+ // window.location = './login';
+ // });
+ // return false;
+ // });
});
window.onload = function () {
--
Gitblit v1.9.3