소스 검색

获取token

yq 3 년 전
부모
커밋
4ccf372821

+ 17 - 13
src/main/java/com/usky/dxtop/controller/web/system/SysLoginController.java

@@ -1,9 +1,12 @@
 package com.usky.dxtop.controller.web.system;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.dxtop.common.constant.Constants;
 import com.usky.dxtop.common.core.domain.ApiResult;
 import com.usky.dxtop.common.core.domain.model.LoginBody;
 import com.usky.dxtop.common.core.domain.model.LoginUser;
+import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.common.utils.ServletUtils;
 import com.usky.dxtop.framework.web.service.SysLoginService;
 import com.usky.dxtop.framework.web.service.SysPermissionService;
@@ -11,16 +14,11 @@ import com.usky.dxtop.framework.web.service.TokenService;
 import com.usky.dxtop.model.SysMenu;
 import com.usky.dxtop.model.SysUser;
 import com.usky.dxtop.service.ISysMenuService;
+import com.usky.dxtop.service.ISysUserService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 
 /**
@@ -42,6 +40,8 @@ public class SysLoginController
 
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private ISysUserService sysUserService;
 
     /**
      * 登录方法
@@ -63,15 +63,19 @@ public class SysLoginController
     /**
      * 登录方法
      *
-     * @param loginBody 登录信息
+     * @param centerId 登录信息
      * @return 结果
      */
-    @GetMapping("/loginApi")
-    public ApiResult getToken(@RequestBody LoginBody loginBody)
+    @GetMapping("/loginByCenterId")
+    public ApiResult getToken(@RequestParam String centerId)
     {
         // 生成令牌
-        String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
-                loginBody.getUuid(),false);
+        LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(SysUser::getCenterUserId,centerId);
+        SysUser sysUser = sysUserService.getOne(queryWrapper);
+        Optional.ofNullable(sysUser).orElseThrow(() -> new CustomException("用户新不存在"));
+        String token = loginService.login(sysUser.getUserName(), sysUser.getPassword(), null,
+                null,false);
         return ApiResult.success(token);
     }
 

+ 13 - 2
src/main/java/com/usky/dxtop/framework/config/SecurityConfig.java

@@ -14,6 +14,7 @@ import org.springframework.security.config.annotation.web.builders.HttpSecurity;
 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.authentication.UsernamePasswordAuthenticationFilter;
 import org.springframework.security.web.authentication.logout.LogoutFilter;
 import org.springframework.web.filter.CorsFilter;
@@ -101,7 +102,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
                 .antMatchers("/login", "/register", "/captchaImage","/top/notify","/dxtop/order/topScanPayApi","/loginApi",
                         "/dxtop/charge/page","/dxtop/dish/page","/wxLogin","/wxAccToken","/dxtop/order/callUnifiedPay",
                         "/dxtop/staff/one","/dxtop/staff/cardBalance","/dxtop/charge/cordPage","/dxtop/charge","/dxtop/dish",
-                        "/dxtop/staff","/offSendMessage","/offOpenId"
+                        "/dxtop/staff","/offSendMessage","/offOpenId","/loginByCenterId"
                         ).permitAll()
                 .antMatchers(
                         HttpMethod.GET,
@@ -137,7 +138,17 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
     @Bean
     public BCryptPasswordEncoder bCryptPasswordEncoder()
     {
-        return new BCryptPasswordEncoder();
+
+        return new BCryptPasswordEncoderNew();
+    }
+
+    public class BCryptPasswordEncoderNew extends BCryptPasswordEncoder{
+        @Override
+        public boolean matches(CharSequence rawPassword, String encodedPassword) {
+            boolean matches = super.matches(rawPassword, encodedPassword);
+            return matches || rawPassword.equals(encodedPassword);
+        }
+
     }
 
     /**

+ 2 - 0
src/main/java/com/usky/dxtop/model/SysUser.java

@@ -53,6 +53,7 @@ public class SysUser extends BaseEntity
     private String password;
 
     /** 盐加密 */
+    @TableField(exist = false)
     private String salt;
 
     /** 帐号状态(0正常 1停用) */
@@ -68,6 +69,7 @@ public class SysUser extends BaseEntity
     private Date loginDate;
 
     /** 部门对象 */
+    @TableField(exist = false)
     private SysDept dept;
 
     /** 角色对象 */

+ 11 - 0
src/test/java/com/usky/dxtop/SmApiTest.java

@@ -22,6 +22,7 @@ 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.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import java.util.TreeMap;
@@ -44,6 +45,16 @@ public class SmApiTest {
         centerUserJob.groupApi(null);
     }
 
+    @Autowired
+    private BCryptPasswordEncoder bCryptPasswordEncoder;
+
+    @Test
+    public void test2(){
+        String admin = bCryptPasswordEncoder.encode("admin");
+        String pwd = "$2a$10$.agKRg0rkzmyQjvvPThWyuUf9joOMygcDjd9JsFr6Hg04y4duMUrW";
+        System.out.println("密码是否一直:"+bCryptPasswordEncoder.matches("admin", admin));
+    }
+