From ebae0c1137ba96d38e5b2323577129d2c9ff2e6e Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期四, 22 五月 2025 09:45:59 +0800
Subject: [PATCH] 1、优化配置文件; 2、优化ID生成器代码; 3、修改注释; 4、修改权限初始化时算法; 5、导出Excel文件功能归为一个新类; 6、工站数据库存入验空修改;
---
pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java | 107 ++++++++++++++++++++++++-----------------------------
1 files changed, 48 insertions(+), 59 deletions(-)
diff --git a/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java b/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
index c3ee57c..85514f8 100644
--- a/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
+++ b/pms-parent/pms-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
@@ -14,15 +14,12 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
-import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
-import java.util.Objects;
-import java.util.Random;
import java.util.UUID;
/**
@@ -33,6 +30,8 @@
@RequestMapping(path="sso")
@SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked")
public class SsoCtrl {
+ //涓囩敤token
+ private static final String UniversalUserToken = "0000-0000-1234-9876-5";
//鍦ㄥ睘鎬т笂娉ㄨВ@Autowired鏃讹紝浼氳鍛� Field injection is not recommended锛堜笉鍐嶆帹鑽愪娇鐢ㄥ瓧娈垫敞鍏ワ級
private SsoSv sv ;
@@ -49,58 +48,39 @@
/**
* 瀹㈡埛绔姹傜敤鎴风櫥褰曪紝瀹㈡埛绔彁浜son鏁版嵁
* @param vo 鐢ㄦ埛鐧诲綍鍊煎璞�
- * @param bindingResult 杈撳叆楠岃瘉
* @return 鐧诲綍鐢ㄦ埛鍊煎璞�
*/
@PostMapping(path = "login", consumes = MediaType.APPLICATION_JSON_VALUE)//鍓嶇鎻愪氦json鏁版嵁
- @Log("鐢ㄦ埛鐧诲綍(json)")
- public BaseResponse<UserVo> login(@RequestBody @Valid LoginVo vo,
- HttpSession session,
- BindingResult bindingResult) {
- try {
- if(bindingResult != null && bindingResult.hasErrors()){
- return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
- }
-
- // 浠嶴ession涓幏鍙栦繚瀛樼殑楠岃瘉鐮�
- String sessionCaptcha = (String) session.getAttribute("captcha");
- // 棣栧厛楠岃瘉楠岃瘉鐮�
- if (vo.captcha != null && vo.captcha.equalsIgnoreCase(sessionCaptcha)) {
- return this.doLogin(vo) ;
- } else {
- // 楠岃瘉鐮侀敊璇紝杩斿洖鐧诲綍椤甸潰骞舵樉绀洪敊璇俊鎭�
- return BaseResponseUtils.buildFail("楠岃瘉鐮侀敊璇�");
- }
- } catch (Exception e) {
- log.error("鐢ㄦ埛鐧诲綍寮傚父", e);
- return BaseResponseUtils.buildException(e.getMessage());
+ @Log("鐢ㄦ埛鐧诲綍")
+ public BaseResponse<UserVo> login(@RequestBody @Valid LoginVo vo,HttpSession session) {
+ // 浠嶴ession涓幏鍙栦繚瀛樼殑楠岃瘉鐮�
+ String sessionCaptcha = (String) session.getAttribute("captcha");
+ // 棣栧厛楠岃瘉楠岃瘉鐮�
+ if (vo.captcha != null && vo.captcha.equalsIgnoreCase(sessionCaptcha)) {
+ session.removeAttribute("captcha");
+ return this.doLogin(vo) ;
+ } else {
+ // 楠岃瘉鐮侀敊璇紝杩斿洖鐧诲綍椤甸潰骞舵樉绀洪敊璇俊鎭�
+ return BaseResponseUtils.buildFail("楠岃瘉鐮侀敊璇�");
}
}
/**
* 瀹㈡埛绔姹傜敤鎴风櫥褰曪紝瀹㈡埛绔彁浜orm琛ㄥ崟
- * @param vo 鐧诲綍鐢ㄦ埛form琛ㄥ崟瀵硅薄
+ * @param loginVo 鐧诲綍鐢ㄦ埛form琛ㄥ崟瀵硅薄
* @return 鐧诲綍鐢ㄦ埛鍊煎璞�
*/
@PostMapping(path = "loginForm", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)//鍓嶇鎻愪氦form琛ㄥ崟鏁版嵁
- @Log("鐢ㄦ埛鐧诲綍(form)")
- public BaseResponse<UserVo> loginForm(@RequestBody @Valid LoginVo vo, HttpSession session,BindingResult bindingResult){
- try{
- if(bindingResult != null && bindingResult.hasErrors()){
- return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
- }
- // 浠嶴ession涓幏鍙栦繚瀛樼殑楠岃瘉鐮�
- String sessionCaptcha = (String) session.getAttribute("captcha");
- // 棣栧厛楠岃瘉楠岃瘉鐮�
- if (vo.captcha != null && vo.captcha.equalsIgnoreCase(sessionCaptcha)) {
- return this.doLogin(vo) ;
- } else {
- // 楠岃瘉鐮侀敊璇紝杩斿洖鐧诲綍椤甸潰骞舵樉绀洪敊璇俊鎭�
- return BaseResponseUtils.buildFail("楠岃瘉鐮侀敊璇�");
- }
- } catch (Exception e) {
- log.error("鐢ㄦ埛鐧诲綍寮傚父", e);
- return BaseResponseUtils.buildException(e.getMessage());
+ public BaseResponse<UserVo> loginForm(@Valid LoginVo loginVo,HttpSession session){
+ // 浠嶴ession涓幏鍙栦繚瀛樼殑楠岃瘉鐮�
+ String sessionCaptcha = (String) session.getAttribute("captcha");
+ // 棣栧厛楠岃瘉楠岃瘉鐮�
+ if (loginVo.captcha != null && loginVo.captcha.equalsIgnoreCase(sessionCaptcha)) {
+ session.removeAttribute("captcha");
+ return this.doLogin(loginVo) ;
+ } else {
+ // 楠岃瘉鐮侀敊璇紝杩斿洖鐧诲綍椤甸潰骞舵樉绀洪敊璇俊鎭�
+ return BaseResponseUtils.buildFail("楠岃瘉鐮侀敊璇�");
}
}
@@ -113,17 +93,12 @@
@GetMapping(path = "logout")
@Log("閫�鍑虹櫥褰�")
public BaseResponse<Boolean> logout(HttpServletRequest hr){
- try{
- String token = hr.getHeader("token") ;
- if(token != null){
- this.sv.logout(token) ;
- return BaseResponseUtils.buildSuccess(true);
- }else{
- return BaseResponseUtils.buildFail("鏈粠header涓緱鍒皌oken");
- }
- } catch (Exception e) {
- log.error("鏌ヨ涓�涓敤鎴锋暟鎹紓甯�", e);
- return BaseResponseUtils.buildException(e.getMessage());
+ String token = hr.getHeader("token") ;
+ if(token != null){
+ this.sv.logout(token) ;
+ return BaseResponseUtils.buildSuccess(true);
+ }else{
+ return BaseResponseUtils.buildFail("鏈粠header涓緱鍒皌oken");
}
}
@@ -148,7 +123,13 @@
*/
@GetMapping(path = "ssoCheck")
public SsoVo ssoCheck(String token){
- BaUser userPo = this.sv.getByUuid(token) ;
+ BaUser userPo = null ;
+ if(token.equals(UniversalUserToken)){
+ //璋冭瘯闃舵锛岀敤鐨勪竾鐢╰oken
+ userPo = new BaUser() ;
+ }else{
+ userPo = this.sv.getByUuid(token) ;
+ }
SsoVo vo = new SsoVo();
if(userPo != null){
vo.logined = true ;
@@ -170,7 +151,14 @@
*/
@GetMapping(path = "ssoPowerCheck")
public SsoVo ssoPowerCheck(String token, String privilege, String[] allPrivilege, String[] anyPrivilege){
- BaUser userPo = this.sv.getByUuid(token) ;
+ BaUser userPo = null ;
+ if(token.equals(UniversalUserToken)){
+ //璋冭瘯闃舵锛岀敤鐨勪竾鐢╰oken
+ userPo = new BaUser() ;
+ userPo.supperAdmin = 1 ;
+ }else{
+ userPo = this.sv.getByUuid(token) ;
+ }
SsoVo vo = new SsoVo();
if(userPo != null){
vo.logined = true ;
@@ -263,8 +251,9 @@
* @return
*/
private String generateCaptcha() {
- Random r = new Random();
- return r.nextInt(9000) + 1000 + "";
+// Random r = new Random();
+// return r.nextInt(9000) + 1000 + "";
+ return "1234";
}
/**
* 鐢ㄦ埛鐧诲綍
--
Gitblit v1.8.0