From bb56629b6a9dd4527a32905bfbbb8d9a19e5faf9 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Fri, 5 Dec 2025 15:40:36 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/compiler.xml | 4 +- .idea/jarRepositories.xml | 5 - .idea/misc.xml | 2 +- .idea/workspace.xml | 237 +++++++++++++++++- .../controller/PublicLoginController.java | 38 +++ .../login/service/PublicLoginService.java | 71 ++++++ .../bonus/hnrn/rnbmw/login/vo/LoginForm.java | 11 + .../manager/config/BnsSecurityConfig.java | 4 +- .../hnrn/rnbmw/manager/entity/Token.java | 22 +- .../src/main/resources/bootstrap.yml | 4 +- .../controller/PublicLoginController.java | 1 + .../PublicLoginService.java | 3 +- HnRealNameMw/src/main/resources/bootstrap.yml | 4 +- .../controller/PublicLoginController.java | 37 +++ .../login/service/PublicLoginService.java | 103 ++++++++ .../backstage/login/vo/LoginForm.java | 11 + .../manager/config/BnsSecurityConfig.java | 2 +- .../backstage/manager/entity/Token.java | 21 ++ .../src/main/resources/bootstrap.yml | 4 +- .../com/bonus/gateway/filter/AuthFilter.java | 2 +- .../src/main/resources/bootstrap-dev.yml | 4 +- .../src/main/resources/bootstrap-druid.yml | 4 +- .../src/main/resources/bootstrap-prod.yml | 4 +- .../controller/PublicLoginController.java | 38 +++ .../login/service/PublicLoginService.java | 74 ++++++ .../capacity/screen/login/vo/LoginForm.java | 11 + .../manager/config/BnsSecurityConfig.java | 2 +- .../manager/config/SecurityHandlerConfig.java | 4 +- .../capacity/screen/manager/entity/Token.java | 20 ++ .../screen/manager/filter/VerifyFilter.java | 1 + .../src/main/resources/bootstrap.yml | 4 +- 31 files changed, 719 insertions(+), 33 deletions(-) create mode 100644 HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java create mode 100644 HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/PublicLoginService.java create mode 100644 HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/LoginForm.java rename HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/{controller => service}/PublicLoginService.java (95%) create mode 100644 hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java create mode 100644 hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java create mode 100644 hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/LoginForm.java create mode 100644 hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/controller/PublicLoginController.java create mode 100644 hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/service/PublicLoginService.java create mode 100644 hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/vo/LoginForm.java diff --git a/.idea/compiler.xml b/.idea/compiler.xml index f474627..6444e93 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -7,7 +7,6 @@ - @@ -23,6 +22,7 @@ + @@ -32,7 +32,7 @@ diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml index 6827ae6..3dfb61d 100644 --- a/.idea/jarRepositories.xml +++ b/.idea/jarRepositories.xml @@ -6,11 +6,6 @@ - + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1ac928b..ac746a6 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,4 +1,239 @@ - {} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1764900432287 + + + + + + + + + + + + + + + + + file://$PROJECT_DIR$/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/controller/UserController.java + 58 + + + file://$PROJECT_DIR$/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/service/impl/UserServiceImpl.java + 93 + + + file://$PROJECT_DIR$/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/service/impl/UserServiceImpl.java + 126 + + + + \ No newline at end of file diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java new file mode 100644 index 0000000..f8bef2d --- /dev/null +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java @@ -0,0 +1,38 @@ +package com.bonus.hnrn.rnbmw.login.controller; + + +import com.bonus.hnrn.rnbmw.login.service.PublicLoginService; +import com.bonus.hnrn.rnbmw.login.vo.LoginForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +/** + * 默认公共登录方法 + */ +@RestController +@RequestMapping(value = "/publicLogin") +public class PublicLoginController { + + @Autowired + private PublicLoginService loginService; + + /** + * 系统登录 + * @param token + * @param response + */ + @PostMapping("defaultLogin") + public void login(@RequestBody LoginForm token, HttpServletResponse response) { + loginService.login(token,response); + } + + + + + +} diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/PublicLoginService.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/PublicLoginService.java new file mode 100644 index 0000000..7bcf953 --- /dev/null +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/PublicLoginService.java @@ -0,0 +1,71 @@ +package com.bonus.hnrn.rnbmw.login.service; + + + +import com.bonus.hnrn.rnbmw.login.vo.LoginForm; +import com.bonus.hnrn.rnbmw.manager.dao.PermissionDao; +import com.bonus.hnrn.rnbmw.manager.entity.LoginUser; +import com.bonus.hnrn.rnbmw.manager.entity.Token; +import com.bonus.hnrn.rnbmw.manager.model.Permission; +import com.bonus.hnrn.rnbmw.manager.model.SysUser; +import com.bonus.hnrn.rnbmw.manager.service.TokenService; +import com.bonus.hnrn.rnbmw.manager.service.UserService; +import com.bonus.hnrn.rnbmw.manager.utils.AESCBCUtils; +import com.bonus.hnrn.rnbmw.manager.utils.ResponseUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; +import org.springframework.security.authentication.DisabledException; +import org.springframework.security.authentication.LockedException; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 系统登录 + */ +@Service +@Slf4j +public class PublicLoginService { + + + @Autowired + private UserService userService; + @Autowired + private PermissionDao permissionDao; + @Autowired + private TokenService tokenService; + /** + * 系统登录 + * @param us + * @param response + */ + public void login(LoginForm us, HttpServletResponse response) { + String username = AESCBCUtils.decrypt(us.getUsername()); + SysUser sysUser = userService.getUser(username); + if (sysUser == null) { + throw new AuthenticationCredentialsNotFoundException("用户名不存在"); + } else if (sysUser.getStatus() == SysUser.Status.LOCKED) { + throw new LockedException("用户被锁定,请联系管理员"); + } else if (sysUser.getStatus() == SysUser.Status.DISABLED) { + throw new DisabledException("用户已作废"); + } + LoginUser loginUser = new LoginUser(); + BeanUtils.copyProperties(sysUser, loginUser); + + List permissions = permissionDao.listByUserId(sysUser.getId()); + loginUser.setPermissions(permissions); + try{ + Token token = tokenService.saveToken(loginUser); + token.setCode("200"); + token.setUsername(username); + ResponseUtil.responseJson(response, HttpStatus.OK.value(), token); + + } catch (Exception e) { + log.error(e.toString(),e); + } + } +} \ No newline at end of file diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/LoginForm.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/LoginForm.java new file mode 100644 index 0000000..1dfe854 --- /dev/null +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/LoginForm.java @@ -0,0 +1,11 @@ +package com.bonus.hnrn.rnbmw.login.vo; + +import lombok.Data; + +@Data +public class LoginForm { + + private String username; + + private String type; +} diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java index 5d00fad..aaefa78 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java @@ -68,8 +68,8 @@ public class BnsSecurityConfig extends WebSecurityConfigurerAdapter { http.authorizeRequests() .antMatchers("/", "/gzRealName/**","/attendance/**","/*.html", "/favicon.ico", "/css/**", "/js/**", "/fonts/**", "/layui/**", "/layui-v2.9.2/**","/layui2.3.6/**", "/layer-v3.1.0/**","/img/**", - "/v2/api-docs/**", "/swagger-resources/**", "/webjars/**", "/pages/**", "/druid/**","/interface/**", - "/statics/**","/download/**","/allSystem/login","/realname/allSystem/login","/register/**","/companyManager/resetUserPwd","/getCode/**","/OwnContract/updateDownloadState") + "/v2/api-docs/**", "/swagger-resources/**", "/webjars/**", "/pages/**", "/druid/**","/interface/**","/publicLogin/**", + "/statics/**","/download/**","/allSystem/login","/register/**","/companyManager/resetUserPwd","/getCode/**","/OwnContract/updateDownloadState") .permitAll(). anyRequest().authenticated(); http.formLogin().loginProcessingUrl("/login") diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/entity/Token.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/entity/Token.java index e2e904e..739cc65 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/entity/Token.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/entity/Token.java @@ -18,7 +18,27 @@ public class Token implements Serializable { /** 登陆时间戳(毫秒) */ private Long loginTime; - public Token(String token, Long loginTime,String roleId) { + private String code; + + private String username; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public Token(String token, Long loginTime, String roleId) { super(); this.token = token; this.loginTime = loginTime; diff --git a/HnRealNameBmw/src/main/resources/bootstrap.yml b/HnRealNameBmw/src/main/resources/bootstrap.yml index 82a8654..9ccfa38 100644 --- a/HnRealNameBmw/src/main/resources/bootstrap.yml +++ b/HnRealNameBmw/src/main/resources/bootstrap.yml @@ -20,7 +20,7 @@ spring: nacos: config: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 # 配置文件格式 file-extension: yml group: DEFAULT_GROUP @@ -28,7 +28,7 @@ spring: discovery: # nacos地址 server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 logging: level: diff --git a/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/controller/PublicLoginController.java b/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/controller/PublicLoginController.java index ae078ec..167bfb1 100644 --- a/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/controller/PublicLoginController.java +++ b/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/controller/PublicLoginController.java @@ -1,6 +1,7 @@ package com.bonus.hnrn.rnmw.core.controller; import com.bonus.hnrn.rnmw.core.entity.LoginForm; +import com.bonus.hnrn.rnmw.core.service.PublicLoginService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/controller/PublicLoginService.java b/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/service/PublicLoginService.java similarity index 95% rename from HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/controller/PublicLoginService.java rename to HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/service/PublicLoginService.java index af7519d..92d6421 100644 --- a/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/controller/PublicLoginService.java +++ b/HnRealNameMw/src/main/java/com/bonus/hnrn/rnmw/core/service/PublicLoginService.java @@ -1,9 +1,8 @@ -package com.bonus.hnrn.rnmw.core.controller; +package com.bonus.hnrn.rnmw.core.service; import com.bonus.hnrn.rnmw.core.dao.UserDao; import com.bonus.hnrn.rnmw.core.entity.LoginForm; import com.bonus.hnrn.rnmw.core.entity.UserBean; -import com.bonus.hnrn.rnmw.core.service.TokenService; import com.bonus.hnrn.rnmw.core.util.AESCBCUtils; import com.bonus.hnrn.rnmw.core.util.ResponseUtil; import com.bonus.hnrn.rnmw.core.util.StringHelper; diff --git a/HnRealNameMw/src/main/resources/bootstrap.yml b/HnRealNameMw/src/main/resources/bootstrap.yml index e79860e..47417d2 100644 --- a/HnRealNameMw/src/main/resources/bootstrap.yml +++ b/HnRealNameMw/src/main/resources/bootstrap.yml @@ -20,7 +20,7 @@ spring: nacos: config: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 # 配置文件格式 file-extension: yml group: DEFAULT_GROUP @@ -28,7 +28,7 @@ spring: discovery: # nacos地址 server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 logging: diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java new file mode 100644 index 0000000..4f0d191 --- /dev/null +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java @@ -0,0 +1,37 @@ +package com.bonus.hn.bearing.capacity.backstage.login.controller; + +import com.bonus.hn.bearing.capacity.backstage.login.service.PublicLoginService; +import com.bonus.hn.bearing.capacity.backstage.login.vo.LoginForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +/** + * 默认公共登录方法 + */ +@RestController +@RequestMapping(value = "/publicLogin") +public class PublicLoginController { + + @Autowired + private PublicLoginService loginService; + + /** + * 系统登录 + * @param token + * @param response + */ + @PostMapping("defaultLogin") + public void login(@RequestBody LoginForm token, HttpServletResponse response) { + loginService.login(token,response); + } + + + + + +} diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java new file mode 100644 index 0000000..a705053 --- /dev/null +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java @@ -0,0 +1,103 @@ +package com.bonus.hn.bearing.capacity.backstage.login.service; + + +import com.bonus.hn.bearing.capacity.backstage.login.vo.LoginForm; +import com.bonus.hn.bearing.capacity.backstage.manager.dao.PermissionDao; +import com.bonus.hn.bearing.capacity.backstage.manager.dao.UtilDao; +import com.bonus.hn.bearing.capacity.backstage.manager.entity.LoginUser; +import com.bonus.hn.bearing.capacity.backstage.manager.entity.Token; +import com.bonus.hn.bearing.capacity.backstage.manager.model.Permission; +import com.bonus.hn.bearing.capacity.backstage.manager.model.SysUser; +import com.bonus.hn.bearing.capacity.backstage.manager.service.TokenService; +import com.bonus.hn.bearing.capacity.backstage.manager.service.UserService; +import com.bonus.hn.bearing.capacity.backstage.manager.utils.ResponseUtil; +import com.bonus.hn.bearing.capacity.backstage.utils.Aes; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; +import org.springframework.security.authentication.DisabledException; +import org.springframework.security.authentication.LockedException; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.*; + +/** + * 系统登录 + */ +@Service +@Slf4j +public class PublicLoginService { + + + @Autowired + private UserService userService; + @Autowired + private PermissionDao permissionDao; + @Autowired + private UtilDao utilDao; + + @Autowired + private TokenService tokenService; + + /** + * 系统登录 + * @param us + * @param response + */ + public void login(LoginForm us, HttpServletResponse response) { + String username= Aes.aesDecrypt(us.getUsername()); + SysUser sysUser = userService.getUser(username); + if (sysUser == null) { + throw new AuthenticationCredentialsNotFoundException("用户名不存在"); + } else if (sysUser.getStatus() == SysUser.Status.LOCKED) { + throw new LockedException("用户被锁定,请联系管理员"); + } else if (sysUser.getStatus() == SysUser.Status.DISABLED) { + throw new DisabledException("用户已作废"); + } + LoginUser loginUser = new LoginUser(); + BeanUtils.copyProperties(sysUser, loginUser); + List permissions = permissionDao.listByUserId(sysUser.getId()); + loginUser.setPermissions(permissions); + try { + // 获取当前IP地址 + InetAddress ipAddress = InetAddress.getLocalHost(); + String ip = ipAddress.getHostAddress(); + // 获取系统名称 + String systemName = System.getProperty("os.name"); + + // 获取所在位置(主机名) + String hostName = ipAddress.getHostName(); + + LocalDate currentYearMonth = LocalDate.now(); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + String formattedYearMonth = currentYearMonth.format(formatter); + + // 创建SysUser对象并设置值 + SysUser b = new SysUser(); + b.setIpAddress(ip); + b.setSystemName(systemName); + b.setHostName(hostName); + b.setMonth(formattedYearMonth); + b.setUserId(sysUser.getId().toString()); + utilDao.insertLoginInfo(b); + + //创建token + Token token = tokenService.saveToken(loginUser); + token.setCode("200"); + token.setUserName(username); + ResponseUtil.responseJson(response, HttpStatus.OK.value(), token); + } catch (UnknownHostException e) { + log.error(e.toString(),e); + } + } +} \ No newline at end of file diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/LoginForm.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/LoginForm.java new file mode 100644 index 0000000..5970df2 --- /dev/null +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/LoginForm.java @@ -0,0 +1,11 @@ +package com.bonus.hn.bearing.capacity.backstage.login.vo; + +import lombok.Data; + +@Data +public class LoginForm { + + private String username; + + private String type; +} diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/config/BnsSecurityConfig.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/config/BnsSecurityConfig.java index 9a2090c..e306e37 100644 --- a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/config/BnsSecurityConfig.java +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/config/BnsSecurityConfig.java @@ -63,7 +63,7 @@ public class BnsSecurityConfig extends WebSecurityConfigurerAdapter { http.authorizeRequests() .antMatchers("/", "/*.html", "/favicon.ico", "/css/**", "/js/**", "/fonts/**", "/layui/**", "/img/**","/layui-v2.8.18/**","/downloadTemplateController/**", "/newPro/**","/v2/api-docs/**", "/swagger-resources/**", "/webjars/**", "/pages/**", "/druid/**","/getCode/**", - "/statics/**") + "/statics/**","/publicLogin/**") .permitAll().anyRequest().authenticated(); http.formLogin().loginProcessingUrl("/login") .successHandler(authenticationSuccessHandler).failureHandler(authenticationFailureHandler).and() diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/entity/Token.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/entity/Token.java index 7125bed..0bc3ba6 100644 --- a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/entity/Token.java +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/entity/Token.java @@ -14,6 +14,27 @@ public class Token implements Serializable { private static final long serialVersionUID = 6314027741784310221L; private String token; + + private String code; + + private String userName; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + /** 登陆时间戳(毫秒) */ private Long loginTime; diff --git a/hn-czl-service/src/main/resources/bootstrap.yml b/hn-czl-service/src/main/resources/bootstrap.yml index a10597b..5f3475d 100644 --- a/hn-czl-service/src/main/resources/bootstrap.yml +++ b/hn-czl-service/src/main/resources/bootstrap.yml @@ -24,10 +24,10 @@ spring: discovery: # nacos地址 server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 config: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 # 配置文件格式 file-extension: yml group: DEFAULT_GROUP diff --git a/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java b/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java index 4598e1d..ed75abb 100644 --- a/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java +++ b/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java @@ -56,7 +56,7 @@ public class AuthFilter implements GlobalFilter, Ordered { } } String token = getToken(request); - if (StringUtils.isEmpty(token)) { + if (StringUtils.isEmpty(token) || "null".equals(token)) { return unauthorizedResponse(exchange, "令牌不能为空"); } Claims claims = JwtUtils.parseToken(token); diff --git a/hn-gateway/bonus-gateway/src/main/resources/bootstrap-dev.yml b/hn-gateway/bonus-gateway/src/main/resources/bootstrap-dev.yml index de41b26..86f8ace 100644 --- a/hn-gateway/bonus-gateway/src/main/resources/bootstrap-dev.yml +++ b/hn-gateway/bonus-gateway/src/main/resources/bootstrap-dev.yml @@ -7,11 +7,11 @@ spring: discovery: # 服务注册地址 server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 config: # 配置中心地址 server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-druid.yml b/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-druid.yml index 5330f76..65a6864 100644 --- a/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-druid.yml +++ b/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-druid.yml @@ -9,10 +9,10 @@ spring: nacos: discovery: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 config: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 # 配置文件格式 file-extension: yml group: DEFAULT_GROUP diff --git a/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-prod.yml b/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-prod.yml index c91c845..e754df0 100644 --- a/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-prod.yml +++ b/hn-ldlz/ldlz-admin/src/main/resources/bootstrap-prod.yml @@ -9,10 +9,10 @@ spring: nacos: discovery: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 config: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 # 配置文件格式 file-extension: yml group: DEFAULT_GROUP diff --git a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/controller/PublicLoginController.java b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/controller/PublicLoginController.java new file mode 100644 index 0000000..8fe5f2f --- /dev/null +++ b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/controller/PublicLoginController.java @@ -0,0 +1,38 @@ +package com.bonus.hn.bearing.capacity.screen.login.controller; + + +import com.bonus.hn.bearing.capacity.screen.login.service.PublicLoginService; +import com.bonus.hn.bearing.capacity.screen.login.vo.LoginForm; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; + +/** + * 默认公共登录方法 + */ +@RestController +@RequestMapping(value = "/publicLogin") +public class PublicLoginController { + + @Autowired + private PublicLoginService loginService; + + /** + * 系统登录 + * @param token + * @param response + */ + @PostMapping("defaultLogin") + public void login(@RequestBody LoginForm token, HttpServletResponse response) { + loginService.login(token,response); + } + + + + + +} diff --git a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/service/PublicLoginService.java b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/service/PublicLoginService.java new file mode 100644 index 0000000..101d5e6 --- /dev/null +++ b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/service/PublicLoginService.java @@ -0,0 +1,74 @@ +package com.bonus.hn.bearing.capacity.screen.login.service; + + + +import com.bonus.hn.bearing.capacity.screen.login.vo.LoginForm; +import com.bonus.hn.bearing.capacity.screen.manager.dao.PermissionDao; +import com.bonus.hn.bearing.capacity.screen.manager.entity.LoginUser; +import com.bonus.hn.bearing.capacity.screen.manager.entity.Token; +import com.bonus.hn.bearing.capacity.screen.manager.model.Permission; +import com.bonus.hn.bearing.capacity.screen.manager.model.SysUser; +import com.bonus.hn.bearing.capacity.screen.manager.service.TokenService; +import com.bonus.hn.bearing.capacity.screen.manager.service.UserService; +import com.bonus.hn.bearing.capacity.screen.manager.utils.Aes; +import com.bonus.hn.bearing.capacity.screen.manager.utils.ResponseUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; +import org.springframework.security.authentication.DisabledException; +import org.springframework.security.authentication.LockedException; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; + +/** + * 系统登录 + */ +@Service +@Slf4j +public class PublicLoginService { + + @Autowired + private UserService userService; + @Autowired + private PermissionDao permissionDao; + + @Autowired + private TokenService tokenService; + /** + * 系统登录 + * @param us + * @param response + */ + public void login(LoginForm us, HttpServletResponse response) { + + String username= Aes.aesDecrypt(us.getUsername()); + SysUser sysUser = userService.getUser(username); + if (sysUser == null) { + throw new AuthenticationCredentialsNotFoundException("用户名不存在"); + } else if (sysUser.getStatus() == SysUser.Status.LOCKED) { + throw new LockedException("用户被锁定,请联系管理员"); + } else if (sysUser.getStatus() == SysUser.Status.DISABLED) { + throw new DisabledException("用户已作废"); + } + try { + LoginUser loginUser = new LoginUser(); + BeanUtils.copyProperties(sysUser, loginUser); + List permissions = permissionDao.listByUserId(sysUser.getId()); + loginUser.setPermissions(permissions); + Token token = tokenService.saveToken(loginUser); + token.setCode("200"); + token.setUserame(username); + ResponseUtil.responseJson(response, HttpStatus.OK.value(), token); + } catch (Exception e) { + log.error(e.toString(),e); + } + } +} \ No newline at end of file diff --git a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/vo/LoginForm.java b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/vo/LoginForm.java new file mode 100644 index 0000000..a40d439 --- /dev/null +++ b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/login/vo/LoginForm.java @@ -0,0 +1,11 @@ +package com.bonus.hn.bearing.capacity.screen.login.vo; + +import lombok.Data; + +@Data +public class LoginForm { + + private String username; + + private String type; +} diff --git a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/BnsSecurityConfig.java b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/BnsSecurityConfig.java index 39be27b..07e36c5 100644 --- a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/BnsSecurityConfig.java +++ b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/BnsSecurityConfig.java @@ -59,7 +59,7 @@ public class BnsSecurityConfig extends WebSecurityConfigurerAdapter { http.authorizeRequests() .antMatchers("/", "/*.html", "/favicon.ico", "/css/**", "/js/**", "/fonts/**", "/layui/**", "/img/**", "/v2/api-docs/**", "/swagger-resources/**", "/webjars/**", "/pages/**", "/druid/**","/getCode/**", - "/statics/**","/dataInterface/**","/static/pages/img/home/**") + "/statics/**","/dataInterface/**","/static/pages/img/home/**","/publicLogin/**") .permitAll().anyRequest().authenticated(); http.formLogin().loginProcessingUrl("/login") .successHandler(authenticationSuccessHandler) diff --git a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/SecurityHandlerConfig.java b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/SecurityHandlerConfig.java index 3440801..5b9c045 100644 --- a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/SecurityHandlerConfig.java +++ b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/config/SecurityHandlerConfig.java @@ -73,8 +73,8 @@ public class SecurityHandlerConfig { } else { msg = exception.getMessage(); } - ResponseInfo info = new ResponseInfo(HttpStatus.UNAUTHORIZED.value() + "", msg); - ResponseUtil.responseJson(response, HttpStatus.UNAUTHORIZED.value(), info); + ResponseInfo info = new ResponseInfo(HttpStatus.INTERNAL_SERVER_ERROR.value() + "", msg); + ResponseUtil.responseJson(response, HttpStatus.INTERNAL_SERVER_ERROR.value(), info); } }; diff --git a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/entity/Token.java b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/entity/Token.java index d17a504..e87b086 100644 --- a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/entity/Token.java +++ b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/entity/Token.java @@ -17,6 +17,26 @@ public class Token implements Serializable { /** 登陆时间戳(毫秒) */ private Long loginTime; + private String code; + + private String userame; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getUserame() { + return userame; + } + + public void setUserame(String userame) { + this.userame = userame; + } + public Token(String token, Long loginTime) { super(); this.token = token; diff --git a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/filter/VerifyFilter.java b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/filter/VerifyFilter.java index 21fec26..fbbb19f 100644 --- a/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/filter/VerifyFilter.java +++ b/hn_czl_screen/src/main/java/com/bonus/hn/bearing/capacity/screen/manager/filter/VerifyFilter.java @@ -41,6 +41,7 @@ public class VerifyFilter extends OncePerRequestFilter { String vCode = request.getParameter("verifyCode");// 图片验证码的 value String s = validateVerify(request, uuid, vCode); if(!"".equals(s)) { + response.setStatus(HttpServletResponse.SC_PAYMENT_REQUIRED); // 401 状态码 authenticationFailureHandler.onAuthenticationFailure(request, response,new VerifyCodeException(s)); } else { filterChain.doFilter(request,response); diff --git a/hn_czl_screen/src/main/resources/bootstrap.yml b/hn_czl_screen/src/main/resources/bootstrap.yml index f5d9012..35f0825 100644 --- a/hn_czl_screen/src/main/resources/bootstrap.yml +++ b/hn_czl_screen/src/main/resources/bootstrap.yml @@ -24,10 +24,10 @@ spring: discovery: # nacos地址 server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 config: server-addr: 192.168.0.14:18848 - namespace: e0337b55-080d-456e-8449-46d68dceee5b + namespace: 7c801fed-8b1c-4e57-8099-fe4e5e2b6b64 # 配置文件格式 file-extension: yml group: DEFAULT_GROUP