From 98b5ad8c75cda0bbc46436923d673949708b1107 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 28 四月 2024 14:14:31 +0800
Subject: [PATCH] 认证权限

---
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java  |   24 +++
 /dev/null                                                                                                |   18 ---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/com/mes/UnLoadGlassApplicationTest.java  |   42 +++++++
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java          |   63 ++++++++++
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java |   51 +++++++-
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java             |    2 
 hangzhoumesParent/gateway/pom.xml                                                                        |    8 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java             |   33 -----
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/request/UserRequest.java   |   17 ++
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java         |    4 
 hangzhoumesParent/moduleService/pom.xml                                                                  |   10 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java       |   53 ++++++++
 12 files changed, 253 insertions(+), 72 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
index 8a8dca4..f95b3bb 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
@@ -49,43 +49,10 @@
                 .globalOperationParameters(pars);
     }
 
-    @Bean
-    public Docket adminApiConfig() {
-        List<Parameter> pars = new ArrayList<>();
-        ParameterBuilder tokenPar = new ParameterBuilder();
-        tokenPar.name("adminId")
-                .description("鐢ㄦ埛token")
-                .defaultValue("1")
-                .modelRef(new ModelRef("string"))
-                .parameterType("header")
-                .required(false)
-                .build();
-        pars.add(tokenPar.build());
-
-        return new Docket(DocumentationType.SWAGGER_2)
-                .groupName("adminApi")
-                .apiInfo(adminApiInfo())
-                .select()
-                //鍙樉绀篴dmin璺緞涓嬬殑椤甸潰
-                .apis(RequestHandlerSelectors.basePackage("com.mes"))
-                .paths(PathSelectors.any())
-                .build()
-                .globalOperationParameters(pars);
-    }
-
     private ApiInfo webApiInfo() {
         return new ApiInfoBuilder()
                 .title("缃戠珯-API鏂囨。")
                 .description("鏈枃妗f弿杩颁簡mes缃戠珯寰湇鍔℃帴鍙e畾涔�")
-                .version("1.0")
-                .contact(new Contact("zhan_py", "", ""))
-                .build();
-    }
-
-    private ApiInfo adminApiInfo() {
-        return new ApiInfoBuilder()
-                .title("鍚庡彴绠$悊绯荤粺-API鏂囨。")
-                .description("鏈枃妗f弿杩颁簡mes鍚庡彴绯荤粺鏈嶅姟鎺ュ彛瀹氫箟")
                 .version("1.0")
                 .contact(new Contact("zhan_py", "", ""))
                 .build();
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
index e4a543e..cfe6197 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
@@ -8,17 +8,27 @@
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
 import org.springframework.security.config.http.SessionCreationPolicy;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.security.web.access.AccessDeniedHandler;
+import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 
 @Configuration
-//@EnableWebSecurity
+@EnableWebSecurity
 @EnableGlobalMethodSecurity(prePostEnabled = true)
 public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter {
     @Autowired
     private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+
+    @Autowired
+    private AuthenticationEntryPoint authenticationEntryPoint;
+
+    @Autowired
+    private AccessDeniedHandler accessDeniedHandler;
 
     @Bean
     public PasswordEncoder passwordEncoder() {
@@ -39,10 +49,16 @@
                 .authorizeRequests()
                 // 瀵逛簬鐧诲綍鎺ュ彛 鍏佽鍖垮悕璁块棶
                 .antMatchers("/userinfo/login").anonymous()
-                .antMatchers("/hello").permitAll()
                 // 闄や笂闈㈠鐨勬墍鏈夎姹傚叏閮ㄩ渶瑕侀壌鏉冭璇�
-                .anyRequest().permitAll();
-//        http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
+                .anyRequest().authenticated();
+        http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
+
+        //閰嶇疆寮傚父澶勭悊鍣�
+        http.exceptionHandling()
+                .authenticationEntryPoint(authenticationEntryPoint)
+                .accessDeniedHandler(accessDeniedHandler);
+        //鍏佽璺ㄥ煙
+        http.cors();
     }
 
     @Bean
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/config/TokenWebSecurityConfig.java
deleted file mode 100644
index 610451e..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/config/TokenWebSecurityConfig.java
+++ /dev/null
@@ -1,69 +0,0 @@
-//package com.mes.config;
-//
-//
-//import com.mes.filter.TokenAuthFilter;
-//import com.mes.filter.TokenLoginFilter;
-//import com.mes.security.DefaultPasswordEncoder;
-//import com.mes.security.TokenLogoutHandler;
-//import com.mes.security.TokenManager;
-//import com.mes.security.UnauthEntryPoint;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.context.annotation.Configuration;
-//import org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-//import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
-//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-//import org.springframework.security.config.annotation.web.builders.WebSecurity;
-//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-//import org.springframework.security.core.userdetails.UserDetailsService;
-//
-//@Configuration
-//@EnableWebSecurity
-//@EnableGlobalMethodSecurity(prePostEnabled = true)
-//public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter {
-//
-//    private TokenManager tokenManager;
-//    private RedisTemplate redisTemplate;
-//    private DefaultPasswordEncoder defaultPasswordEncoder;
-//    private UserDetailsService userDetailsService;
-//
-//    @Autowired
-//    public TokenWebSecurityConfig(UserDetailsService userDetailsService, DefaultPasswordEncoder defaultPasswordEncoder,
-//                                  TokenManager tokenManager, RedisTemplate redisTemplate) {
-//        this.userDetailsService = userDetailsService;
-//        this.defaultPasswordEncoder = defaultPasswordEncoder;
-//        this.tokenManager = tokenManager;
-//        this.redisTemplate = redisTemplate;
-//    }
-//
-//    /**
-//     * 閰嶇疆璁剧疆
-//     * @param http
-//     * @throws Exception
-//     */
-//    //璁剧疆閫�鍑虹殑鍦板潃鍜宼oken锛宺edis鎿嶄綔鍦板潃
-//    @Override
-//    protected void configure(HttpSecurity http) throws Exception {
-//        http.exceptionHandling()
-//                .authenticationEntryPoint(new UnauthEntryPoint())//娌℃湁鏉冮檺璁块棶
-//                .and().csrf().disable()
-//                .authorizeRequests()
-//                .anyRequest().authenticated()
-//                .and().logout().logoutUrl("/admin/acl/index/logout")//閫�鍑鸿矾寰�
-//                .addLogoutHandler(new TokenLogoutHandler(tokenManager,redisTemplate)).and()
-//                .addFilter(new TokenLoginFilter(authenticationManager(), tokenManager, redisTemplate))
-//                .addFilter(new TokenAuthFilter(authenticationManager(), tokenManager, redisTemplate)).httpBasic();
-//    }
-//
-//    //璋冪敤userDetailsService鍜屽瘑鐮佸鐞�
-//    @Override
-//    public void configure(AuthenticationManagerBuilder auth) throws Exception {
-//        auth.userDetailsService(userDetailsService).passwordEncoder(defaultPasswordEncoder);
-//    }
-//    //涓嶈繘琛岃璇佺殑璺緞锛屽彲浠ョ洿鎺ヨ闂�
-//    @Override
-//    public void configure(WebSecurity web) throws Exception {
-//        web.ignoring().antMatchers("/api/**");
-//    }
-//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/SecurityUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/SecurityUser.java
deleted file mode 100644
index b0f9c1a..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/SecurityUser.java
+++ /dev/null
@@ -1,73 +0,0 @@
-//package com.mes.entity;
-//
-//import lombok.Data;
-//import org.springframework.security.core.GrantedAuthority;
-//import org.springframework.security.core.authority.SimpleGrantedAuthority;
-//import org.springframework.security.core.userdetails.UserDetails;
-//import org.springframework.util.StringUtils;
-//
-//import java.util.ArrayList;
-//import java.util.Collection;
-//import java.util.List;
-//
-//@Data
-//public class SecurityUser implements UserDetails {
-//
-//    //褰撳墠鐧诲綍鐢ㄦ埛
-//    private transient User currentUserInfo;
-//
-//    //褰撳墠鏉冮檺
-//    private List<String> permissionValueList;
-//
-//    public SecurityUser() {
-//    }
-//
-//    public SecurityUser(User user) {
-//        if (user != null) {
-//            this.currentUserInfo = user;
-//        }
-//    }
-//
-//    @Override
-//    public Collection<? extends GrantedAuthority> getAuthorities() {
-//        Collection<GrantedAuthority> authorities = new ArrayList<>();
-//        for(String permissionValue : permissionValueList) {
-//            if(StringUtils.isEmpty(permissionValue)) continue;
-//            SimpleGrantedAuthority authority = new SimpleGrantedAuthority(permissionValue);
-//            authorities.add(authority);
-//        }
-//
-//        return authorities;
-//    }
-//
-//    @Override
-//    public String getPassword() {
-//        return currentUserInfo.getPassword();
-//    }
-//
-//    @Override
-//    public String getUsername() {
-//        return currentUserInfo.getUsername();
-//    }
-//
-//    @Override
-//    public boolean isAccountNonExpired() {
-//        return true;
-//    }
-//
-//    @Override
-//    public boolean isAccountNonLocked() {
-//        return true;
-//    }
-//
-//    @Override
-//    public boolean isCredentialsNonExpired() {
-//        return true;
-//    }
-//
-//    @Override
-//    public boolean isEnabled() {
-//        return true;
-//    }
-//}
-//
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/User.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/User.java
deleted file mode 100644
index 2e3ec7e..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/User.java
+++ /dev/null
@@ -1,31 +0,0 @@
-//package com.mes.entity;
-//
-//import io.swagger.annotations.ApiModel;
-//import io.swagger.annotations.ApiModelProperty;
-//import lombok.Data;
-//
-//import java.io.Serializable;
-//
-//@Data
-//@ApiModel(description = "鐢ㄦ埛瀹炰綋绫�")
-//public class User implements Serializable {
-//
-//    private static final long serialVersionUID = 1L;
-//
-//    @ApiModelProperty(value = "寰俊openid")
-//    private String username;
-//
-//    @ApiModelProperty(value = "瀵嗙爜")
-//    private String password;
-//
-//    @ApiModelProperty(value = "鏄电О")
-//    private String nickName;
-//
-//    @ApiModelProperty(value = "鐢ㄦ埛澶村儚")
-//    private String salt;
-//
-//    @ApiModelProperty(value = "鐢ㄦ埛绛惧悕")
-//    private String token;
-//
-//}
-//
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenAuthFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenAuthFilter.java
deleted file mode 100644
index 5b1fd72..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenAuthFilter.java
+++ /dev/null
@@ -1,60 +0,0 @@
-//package com.mes.filter;
-//
-//import com.mes.security.TokenManager;
-//import org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.security.authentication.AuthenticationManager;
-//import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-//import org.springframework.security.core.GrantedAuthority;
-//import org.springframework.security.core.authority.SimpleGrantedAuthority;
-//import org.springframework.security.core.context.SecurityContextHolder;
-//import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
-//
-//import javax.servlet.FilterChain;
-//import javax.servlet.ServletException;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//import java.util.ArrayList;
-//import java.util.Collection;
-//import java.util.List;
-//
-//public class TokenAuthFilter extends BasicAuthenticationFilter {
-//
-//    private TokenManager tokenManager;
-//    private RedisTemplate redisTemplate;
-//    public TokenAuthFilter(AuthenticationManager authenticationManager,TokenManager tokenManager,RedisTemplate redisTemplate) {
-//        super(authenticationManager);
-//        this.tokenManager = tokenManager;
-//        this.redisTemplate = redisTemplate;
-//    }
-//
-//    @Override
-//    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
-//        //鑾峰彇褰撳墠璁よ瘉鎴愬姛鐢ㄦ埛鏉冮檺淇℃伅
-//        UsernamePasswordAuthenticationToken authRequest = getAuthentication(request);
-//        //鍒ゆ柇濡傛灉鏈夋潈闄愪俊鎭紝鏀惧埌鏉冮檺涓婁笅鏂囦腑
-//        if(authRequest != null) {
-//            SecurityContextHolder.getContext().setAuthentication(authRequest);
-//        }
-//        chain.doFilter(request,response);
-//    }
-//
-//    private UsernamePasswordAuthenticationToken getAuthentication(HttpServletRequest request) {
-//        //浠巋eader鑾峰彇token
-//        String token = request.getHeader("token");
-//        if(token != null) {
-//            //浠巘oken鑾峰彇鐢ㄦ埛鍚�
-//            String username = tokenManager.getUserInfoFromToken(token);
-//            //浠巖edis鑾峰彇瀵瑰簲鏉冮檺鍒楄〃
-//            List<String> permissionValueList = (List<String>)redisTemplate.opsForValue().get(username);
-//            Collection<GrantedAuthority> authority = new ArrayList<>();
-//            for(String permissionValue : permissionValueList) {
-//                SimpleGrantedAuthority auth = new SimpleGrantedAuthority(permissionValue);
-//                authority.add(auth);
-//            }
-//            return new UsernamePasswordAuthenticationToken(username,token,authority);
-//        }
-//        return null;
-//    }
-//
-//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenLoginFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenLoginFilter.java
deleted file mode 100644
index d3f5f4c..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenLoginFilter.java
+++ /dev/null
@@ -1,74 +0,0 @@
-//package com.mes.filter;
-//
-//import com.fasterxml.jackson.databind.ObjectMapper;
-//import com.mes.utils.Result;
-//import com.mes.entity.SecurityUser;
-//import com.mes.entity.User;
-//import com.mes.security.TokenManager;
-//import com.mes.utils.ResponseUtil;
-//import org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.security.authentication.AuthenticationManager;
-//import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-//import org.springframework.security.core.Authentication;
-//import org.springframework.security.core.AuthenticationException;
-//import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-//import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
-//
-//import javax.servlet.FilterChain;
-//import javax.servlet.ServletException;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//import java.util.ArrayList;
-//
-//public class TokenLoginFilter extends UsernamePasswordAuthenticationFilter {
-//
-//    private TokenManager tokenManager;
-//    private RedisTemplate redisTemplate;
-//    private AuthenticationManager authenticationManager;
-//
-//    public TokenLoginFilter(AuthenticationManager authenticationManager, TokenManager tokenManager, RedisTemplate redisTemplate) {
-//        this.authenticationManager = authenticationManager;
-//        this.tokenManager = tokenManager;
-//        this.redisTemplate = redisTemplate;
-//        this.setPostOnly(false);
-//        this.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher("/admin/acl/login","POST"));
-//    }
-//
-//    //1 鑾峰彇琛ㄥ崟鎻愪氦鐢ㄦ埛鍚嶅拰瀵嗙爜
-//    @Override
-//    public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
-//            throws AuthenticationException {
-//        //鑾峰彇琛ㄥ崟鎻愪氦鏁版嵁
-//        try {
-//            User user = new ObjectMapper().readValue(request.getInputStream(), User.class);
-//            return authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(user.getUsername(),user.getPassword(),
-//                    new ArrayList<>()));
-//        } catch (IOException e) {
-//            e.printStackTrace();
-//            throw new RuntimeException();
-//        }
-//    }
-//
-//    //2 璁よ瘉鎴愬姛璋冪敤鐨勬柟娉�
-//    @Override
-//    protected void successfulAuthentication(HttpServletRequest request,
-//                                            HttpServletResponse response, FilterChain chain, Authentication authResult)
-//            throws IOException, ServletException {
-//        //璁よ瘉鎴愬姛锛屽緱鍒拌璇佹垚鍔熶箣鍚庣敤鎴蜂俊鎭�
-//        SecurityUser user = (SecurityUser)authResult.getPrincipal();
-//        //鏍规嵁鐢ㄦ埛鍚嶇敓鎴恡oken
-//        String token = tokenManager.createToken(user.getCurrentUserInfo().getUsername());
-//        //鎶婄敤鎴峰悕绉板拰鐢ㄦ埛鏉冮檺鍒楄〃鏀惧埌redis
-//        redisTemplate.opsForValue().set(user.getCurrentUserInfo().getUsername(),user.getPermissionValueList());
-//        //杩斿洖token
-//        ResponseUtil.out(response, Result.success(token));
-//    }
-//
-//    //3 璁よ瘉澶辫触璋冪敤鐨勬柟娉�
-//    @Override
-//    protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed)
-//            throws IOException, ServletException {
-//        ResponseUtil.out(response, Result.error());
-//    }
-//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/DefaultPasswordEncoder.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/DefaultPasswordEncoder.java
deleted file mode 100644
index fe7efc7..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/DefaultPasswordEncoder.java
+++ /dev/null
@@ -1,25 +0,0 @@
-//package com.mes.security;
-//
-//import com.mes.utils.MD5;
-//import org.springframework.security.crypto.password.PasswordEncoder;
-//import org.springframework.stereotype.Component;
-//
-//@Component
-//public class DefaultPasswordEncoder implements PasswordEncoder {
-//
-//    public DefaultPasswordEncoder() {
-//        this(-1);
-//    }
-//    public DefaultPasswordEncoder(int strength) {
-//    }
-//    //杩涜MD5鍔犲瘑
-//    @Override
-//    public String encode(CharSequence charSequence) {
-//        return MD5.encrypt(charSequence.toString());
-//    }
-//    //杩涜瀵嗙爜姣斿
-//    @Override
-//    public boolean matches(CharSequence charSequence, String encodedPassword) {
-//        return encodedPassword.equals(MD5.encrypt(charSequence.toString()));
-//    }
-//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenLogoutHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenLogoutHandler.java
deleted file mode 100644
index e696abc..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenLogoutHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-//package com.mes.security;
-//
-//import com.mes.utils.Result;
-//import com.mes.utils.ResponseUtil;
-//import org.springframework.data.redis.core.RedisTemplate;
-//import org.springframework.security.core.Authentication;
-//import org.springframework.security.web.authentication.logout.LogoutHandler;
-//
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//
-////閫�鍑哄鐞嗗櫒
-//public class TokenLogoutHandler implements LogoutHandler {
-//    private TokenManager tokenManager;
-//    private RedisTemplate redisTemplate;
-//
-//    public TokenLogoutHandler(TokenManager tokenManager,RedisTemplate redisTemplate) {
-//        this.tokenManager = tokenManager;
-//        this.redisTemplate = redisTemplate;
-//    }
-//    @Override
-//    public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
-//        //1 浠巋eader閲岄潰鑾峰彇token
-//        //2 token涓嶄负绌猴紝绉婚櫎token锛屼粠redis鍒犻櫎token
-//        String token = request.getHeader("token");
-//        if(token != null) {
-//            //绉婚櫎
-//            tokenManager.removeToken(token);
-//            //浠巘oken鑾峰彇鐢ㄦ埛鍚�
-//            String username = tokenManager.getUserInfoFromToken(token);
-//            redisTemplate.delete(username);
-//        }
-//        ResponseUtil.out(response, Result.success());
-//    }
-//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenManager.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenManager.java
deleted file mode 100644
index 61cf3ee..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenManager.java
+++ /dev/null
@@ -1,30 +0,0 @@
-//package com.mes.security;
-//
-//import io.jsonwebtoken.CompressionCodecs;
-//import io.jsonwebtoken.Jwts;
-//import io.jsonwebtoken.SignatureAlgorithm;
-//import org.springframework.stereotype.Component;
-//
-//import java.util.Date;
-//
-//@Component
-//public class TokenManager {
-//    //token鏈夋晥鏃堕暱
-//    private long tokenEcpiration = 24*60*60*1000;
-//    //缂栫爜绉橀挜
-//    private String tokenSignKey = "123456";
-//    //1 浣跨敤jwt鏍规嵁鐢ㄦ埛鍚嶇敓鎴恡oken
-//    public String createToken(String username) {
-//        String token = Jwts.builder().setSubject(username)
-//                .setExpiration(new Date(System.currentTimeMillis()+tokenEcpiration))
-//                .signWith(SignatureAlgorithm.HS512, tokenSignKey).compressWith(CompressionCodecs.GZIP).compact();
-//        return token;
-//    }
-//    //2 鏍规嵁token瀛楃涓插緱鍒扮敤鎴蜂俊鎭�
-//    public String getUserInfoFromToken(String token) {
-//        String userinfo = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token).getBody().getSubject();
-//        return userinfo;
-//    }
-//    //3 鍒犻櫎token
-//    public void removeToken(String token) { }
-//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/UnauthEntryPoint.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/UnauthEntryPoint.java
deleted file mode 100644
index bc09439..0000000
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/UnauthEntryPoint.java
+++ /dev/null
@@ -1,18 +0,0 @@
-//package com.mes.security;
-//
-//import com.mes.utils.Result;
-//import com.mes.utils.ResponseUtil;
-//import org.springframework.security.core.AuthenticationException;
-//import org.springframework.security.web.AuthenticationEntryPoint;
-//
-//import javax.servlet.ServletException;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.IOException;
-//
-//public class UnauthEntryPoint implements AuthenticationEntryPoint {
-//    @Override
-//    public void commence(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException {
-//        ResponseUtil.out(httpServletResponse, Result.error());
-//    }
-//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
index 326e4d0..4351325 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
@@ -2,10 +2,20 @@
 
 
 import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.entity.request.UserRequest;
+import com.mes.userinfo.entity.vo.SysUserVO;
 import com.mes.userinfo.service.SysUserService;
 import com.mes.utils.Result;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+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 java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -15,6 +25,7 @@
  * @author zhoush
  * @since 2024-04-11
  */
+@ApiModel("鐢ㄦ埛淇℃伅")
 @RestController
 @RequestMapping("/userinfo")
 public class SysUserController {
@@ -22,14 +33,42 @@
     @Autowired
     private SysUserService sysUserService;
 
+    @ApiOperation("鐢ㄦ埛鐧诲綍")
     @PostMapping("/login")
-    public Result login(@RequestBody SysUser user) {
-        return sysUserService.login(user);
+    public Result<Map<String, String>> login(@RequestBody SysUser user) {
+        return Result.success(sysUserService.login(user));
     }
 
-    @GetMapping("/hello")
-    public Result hello() {
-        return Result.success("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlZjMyMjQ4NDcyODE0ZWFlYWRlOTBkYmZjYWFlZmNmZSIsInN1YiI6IjEiLCJpc3MiOiJzZyIsImlhdCI6MTcxMjkwMjI0NCwiZXhwIjoxNzEyOTA1ODQ0fQ.DlJkhkiwjZSqprdLzKaTB3yuyxGukerKeF0FbJK_6HY");
+    @ApiOperation("閫�鍑虹櫥褰�")
+    @PostMapping("/logout")
+    public Result<String> logout() {
+        return Result.success(sysUserService.logout());
     }
+
+    @ApiOperation("鏂板鐢ㄦ埛淇℃伅")
+    @PostMapping("/saveUser")
+    public Result<SysUserVO> saveUser(@RequestBody SysUserVO sysUser) {
+        return Result.success(sysUserService.saveUser(sysUser));
+    }
+
+    @ApiOperation("鑾峰彇鐢ㄦ埛鍒楄〃")
+    @PostMapping("/listByUserName")
+    public Result<List<SysUserVO>> listByUserName(@RequestBody UserRequest request) {
+        return Result.success(sysUserService.listByUserName(request));
+    }
+
+    @ApiOperation("鏇存柊鐢ㄦ埛淇℃伅")
+    @PostMapping("/updateUser")
+    public Result<SysUserVO> updateUser(@RequestBody SysUserVO sysUser) {
+        return Result.success(sysUserService.updateUser(sysUser));
+    }
+
+    @ApiOperation("鍒犻櫎鐢ㄦ埛淇℃伅")
+    @PostMapping("/deleteUser")
+    public Result<String> deleteUser(@RequestBody SysUserVO sysUser) {
+        return Result.success(sysUserService.deleteUser(sysUser));
+    }
+
+
 }
 
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
index d60a05f..97e036f 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
@@ -28,7 +28,7 @@
     /**
      * 瀛樺偍SpringSecurity璋冪敤getAuthorities()鏂规硶鑾峰彇鐨勬潈闄愪俊鎭殑闆嗗悎
      */
-    @JSONField(serialize = false)
+//    @JSONField(serialize = false)
     private List<GrantedAuthority> authorities;
 
 
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/request/UserRequest.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/request/UserRequest.java
new file mode 100644
index 0000000..e58f366
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/request/UserRequest.java
@@ -0,0 +1,17 @@
+package com.mes.userinfo.entity.request;
+
+import cn.hutool.db.Page;
+import lombok.Data;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/22 11:21
+ * @Description:
+ */
+@Data
+public class UserRequest {
+
+    private String userName;
+
+    private Page page;
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java
new file mode 100644
index 0000000..109ccfd
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/vo/SysUserVO.java
@@ -0,0 +1,63 @@
+package com.mes.userinfo.entity.vo;
+
+import com.mes.role.entity.SysRole;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@ApiModel(description = "<p> 鐢ㄦ埛淇℃伅 </p>")
+@Data
+public class SysUserVO implements Serializable {
+
+    @ApiModelProperty(hidden = true)
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓婚敭
+     */
+    @ApiModelProperty(value = "涓婚敭", position = 2)
+    private Long id;
+
+    /**
+     * 鐢ㄦ埛鍚�
+     */
+    @ApiModelProperty(value = "鐢ㄦ埛鍚�", position = 3)
+    private String userName;
+
+    /**
+     * 鏄电О
+     */
+    @ApiModelProperty(value = "鏄电О", position = 4)
+    private String nickName;
+
+    /**
+     * 瀵嗙爜
+     */
+    @ApiModelProperty(value = "瀵嗙爜", position = 5)
+    private String password;
+
+    /**
+     * 澶村儚
+     */
+    @ApiModelProperty(value = "澶村儚", position = 6)
+    private String avatar;
+
+    /**
+     * 鐢ㄦ埛鐨勮鑹蹭俊鎭�
+     */
+    @ApiModelProperty(value = "鐢ㄦ埛鐨勮鑹蹭俊鎭�", position = 7)
+    private List<SysRole> roleList;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
index 093812d..f3e2f25 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
@@ -1,6 +1,6 @@
 package com.mes.userinfo.mapper;
 
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.userinfo.entity.SysUser;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -13,6 +13,6 @@
  * @since 2024-04-11
  */
 @Mapper
-public interface SysUserMapper extends BaseMapper<SysUser> {
+public interface SysUserMapper extends MPJBaseMapper<SysUser> {
 
 }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
index ca49aa0..83caa2d 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.userinfo.entity.SysUser;
-import com.mes.utils.Result;
+import com.mes.userinfo.entity.request.UserRequest;
+import com.mes.userinfo.entity.vo.SysUserVO;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -14,7 +18,50 @@
  */
 public interface SysUserService extends IService<SysUser> {
 
-    Result login(SysUser user);
+    /**
+     * 鐢ㄦ埛鐧诲綍
+     *
+     * @param user
+     * @return
+     */
+    Map<String, String> login(SysUser user);
 
-    Result logout();
+    /**
+     * 閫�鍑虹櫥褰�
+     *
+     * @return
+     */
+    String logout();
+
+    /**
+     * 鏂板鐢ㄦ埛淇℃伅
+     *
+     * @param user
+     * @return
+     */
+    SysUserVO saveUser(SysUserVO user);
+
+    /**
+     * 鎸夊悕绉拌幏鍙栫敤鎴蜂俊鎭�
+     *
+     * @param sysUser
+     * @return
+     */
+    SysUserVO updateUser(SysUserVO sysUser);
+
+    /**
+     * 鎸夊悕绉拌幏鍙栫敤鎴蜂俊鎭�
+     *
+     * @param request
+     * @return
+     */
+    List<SysUserVO> listByUserName(UserRequest request);
+
+    /**
+     * 鍒犻櫎鐢ㄦ埛淇℃伅
+     *
+     * @param user
+     * @return
+     */
+    String deleteUser(SysUserVO user);
 }
diff --git a/hangzhoumesParent/gateway/pom.xml b/hangzhoumesParent/gateway/pom.xml
index 6334bf7..ec368a6 100644
--- a/hangzhoumesParent/gateway/pom.xml
+++ b/hangzhoumesParent/gateway/pom.xml
@@ -28,5 +28,13 @@
             <artifactId>spring-cloud-starter-gateway</artifactId>
         </dependency>
     </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/com/mes/UnLoadGlassApplicationTest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/com/mes/UnLoadGlassApplicationTest.java
new file mode 100644
index 0000000..69557c4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/test/java/com/mes/UnLoadGlassApplicationTest.java
@@ -0,0 +1,42 @@
+package com.mes;
+
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.mapper.DownGlassTaskMapper;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Arrays;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = UnLoadGlassApplication.class)
+public class UnLoadGlassApplicationTest {
+
+    @Autowired
+    DownGlassTaskMapper downGlassTaskMapper;
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+
+    @Test
+    public void testCacheGlass() {
+        DownGlassTask glassTask = new DownGlassTask();
+        glassTask.setId(1L);
+        glassTask.setTaskType("1");
+        glassTask.setHeight(100.01);
+        glassTask.setWidth(200.02);
+        int i = downGlassTaskMapper.insert(glassTask);
+        log.info("鎻掑叆缁撴灉锛歿}", i);
+    }
+}
diff --git a/hangzhoumesParent/moduleService/pom.xml b/hangzhoumesParent/moduleService/pom.xml
index c3bf5ce..005b896 100644
--- a/hangzhoumesParent/moduleService/pom.xml
+++ b/hangzhoumesParent/moduleService/pom.xml
@@ -56,11 +56,11 @@
         </dependency>
 
         <!--寮�鍙戣�呭伐鍏�-->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-devtools</artifactId>
-            <optional>true</optional>
-        </dependency>
+        <!--        <dependency>-->
+        <!--            <groupId>org.springframework.boot</groupId>-->
+        <!--            <artifactId>spring-boot-devtools</artifactId>-->
+        <!--            <optional>true</optional>-->
+        <!--        </dependency>-->
 
         <dependency>
             <groupId>org.springframework.boot</groupId>

--
Gitblit v1.8.0