소스 검색

fix:登录认证改系统用户,所有接口加前缀v1

wangzaijun 7 달 전
부모
커밋
c220cdb1a8

+ 7 - 13
service-base/src/main/java/com/simuwang/base/components/ShiroLoginAuthAdapter.java

@@ -1,9 +1,8 @@
 package com.simuwang.base.components;
 
 import cn.hutool.core.collection.ListUtil;
-import cn.hutool.crypto.asymmetric.KeyType;
-import cn.hutool.crypto.asymmetric.RSA;
-import com.simuwang.base.config.DaqProperties;
+import com.simuwang.base.pojo.dos.SysUserDO;
+import com.simuwang.base.service.UserAuthService;
 import com.simuwang.shiro.core.ShiroUser;
 import com.simuwang.shiro.core.adapter.LoginAuthAdapter;
 
@@ -12,20 +11,15 @@ import java.util.List;
 /**
  * 自定义的登录认证适配器实现,从数据库获取数据并且bean注入要调整为当前实现
  */
-public class ShiroLoginAuthAdapter implements LoginAuthAdapter {
-    private final DaqProperties properties;
-
-    public ShiroLoginAuthAdapter(DaqProperties properties) {
-        this.properties = properties;
-    }
+public record ShiroLoginAuthAdapter(UserAuthService userAuthService) implements LoginAuthAdapter {
 
     @Override
     public ShiroUser findUserByUsername(String username) {
+        SysUserDO userInfo = this.userAuthService.getUserInfoByUsername(username);
         ShiroUser sysUser = new ShiroUser();
-        sysUser.setUserId("0");
-        sysUser.setUsername("system");
-        String encryptBase64Pwd = new RSA(null, this.properties.getSecurityRsa().getPublicKey()).encryptBase64("123456", KeyType.PublicKey);
-        sysUser.setPassword(encryptBase64Pwd);
+        sysUser.setUserId(userInfo.getUserId().toString());
+        sysUser.setUsername(userInfo.getUserName());
+        sysUser.setPassword(userInfo.getPassword());
         return sysUser;
     }
 

+ 5 - 2
service-base/src/main/java/com/simuwang/base/config/ShiroConfig.java

@@ -3,6 +3,7 @@ package com.simuwang.base.config;
 import cn.hutool.core.map.MapUtil;
 import com.simuwang.base.components.ShiroLoginAuthAdapter;
 import com.simuwang.base.components.ShiroRsaCredentialsMatcher;
+import com.simuwang.base.service.UserAuthService;
 import com.simuwang.shiro.core.ShiroDbRealm;
 import com.simuwang.shiro.core.adapter.LoginAuthAdapter;
 import com.simuwang.shiro.core.bridge.AuthBridgeService;
@@ -29,10 +30,12 @@ import java.util.Map;
 public class ShiroConfig {
     private final JwtContext jwtContext;
     private final DaqProperties properties;
+    private final UserAuthService userAuthService;
 
-    public ShiroConfig(DaqProperties properties, JwtContext jwtContext) {
+    public ShiroConfig(JwtContext jwtContext, DaqProperties properties, UserAuthService userAuthService) {
         this.jwtContext = jwtContext;
         this.properties = properties;
+        this.userAuthService = userAuthService;
     }
 
     /**
@@ -51,7 +54,7 @@ public class ShiroConfig {
     @Bean
     public LoginAuthAdapter authAdapter() {
 //        return new SimpleLoginAuthAdapter();
-        return new ShiroLoginAuthAdapter(this.properties);
+        return new ShiroLoginAuthAdapter(this.userAuthService);
     }
 
     @Bean

+ 9 - 0
service-base/src/main/java/com/simuwang/base/mapper/SysUserMapper.java

@@ -0,0 +1,9 @@
+package com.simuwang.base.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.simuwang.base.pojo.dos.SysUserDO;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface SysUserMapper extends BaseMapper<SysUserDO> {
+}

+ 48 - 0
service-base/src/main/java/com/simuwang/base/pojo/dos/BaseEntity.java

@@ -0,0 +1,48 @@
+package com.simuwang.base.pojo.dos;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author wangzaijun
+ * @date 2023/11/7 17:23
+ * @description base数据模型
+ */
+@Setter
+@Getter
+public class BaseEntity implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 999;
+    /**
+     * 创建人
+     */
+    @TableField("creatorid")
+    private Integer creatorId;
+    /**
+     * 创建时间
+     */
+    @TableField("createtime")
+    private Date createTime;
+    /**
+     * 更新人
+     */
+    @TableField("updaterid")
+    private Integer updaterId;
+    /**
+     * 更新时间
+     */
+    @TableField("updatetime")
+    private Date updateTime;
+    /**
+     * 是否有效标识
+     */
+    @TableLogic(value = "1", delval = "0")
+    @TableField("isvalid")
+    private Integer valid;
+}

+ 48 - 58
service-base/src/main/java/com/simuwang/base/pojo/dos/SysUserDO.java

@@ -1,11 +1,10 @@
 package com.simuwang.base.pojo.dos;
 
 import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
 
 /**
  * FileName: SysUserDO
@@ -13,80 +12,71 @@ import java.util.Date;
  * Date:     2024/9/8 12:45
  * Description: ${DESCRIPTION}
  */
-@Data
+@Setter
+@Getter
 @TableName("sys_user")
-public class SysUserDO
-{
-    /** 用户ID */
-    @TableId(value = "user_id",type = IdType.AUTO)
+public class SysUserDO extends BaseEntity {
+    /**
+     * 用户ID
+     */
+    @TableId(value = "user_id", type = IdType.AUTO)
     private Long userId;
 
-    /** 用户名称 */
-    @TableId(value = "user_name")
+    /**
+     * 用户名称
+     */
     private String userName;
 
-    /** 用户类型 */
-    @TableId(value = "user_type")
+    /**
+     * 用户类型
+     */
     private String userType;
 
-    /** 用户邮箱 */
-    @TableId(value = "email")
+    /**
+     * 用户邮箱
+     */
     private String email;
 
-    /** 手机号码 */
-    @TableId(value = "phonenumber")
+    /**
+     * 手机号码
+     */
     private String phonenumber;
 
-    /** 用户性别 */
-    @TableId(value = "sex")
-    private String sex;
-
-    /** 用户头像 */
-    @TableId(value = "avatar")
-    private String avatar;
-
-    /** 密码 */
-    @TableId(value = "password")
-    private String password;
-    /** 帐号状态(0正常 1停用) */
-    @TableId(value = "status")
-    private String status;
-
-    /** 删除标志(0代表存在 1代表删除) */
-    @TableId(value = "del_flag")
-    private String delFlag;
-    /** 备注 */
-    @TableId(value = "start_date")
-    private String startDate;
-    /** 备注 */
-    @TableId(value = "end_date")
-    private String endDate;
-    /** 备注 */
-    @TableId(value = "remark")
-    private String remark;
     /**
-     * 记录的有效性;1-有效;0-无效;
+     * 用户性别
      */
-    @TableField(value = "isvalid")
-    private Integer isvalid;
+    private String sex;
+
     /**
-     * 创建者Id;第一次创建时与Creator值相同,修改时与修改人值相同
+     * 用户头像
      */
-    @TableField(value = "creatorid")
-    private Integer creatorId;
+    private String avatar;
+
     /**
-     * 修改者Id;第一次创建时与Creator值相同,修改时与修改人值相同
+     * 密码
      */
-    @TableField(value = "updaterid")
-    private Integer updaterId;
+    private String password;
     /**
-     * 创建时间,默认第一次创建的getdate()时间
+     * 帐号状态(0正常 1停用)
      */
-    @TableField(value = "createtime")
-    private Date createTime;
+    private String status;
+
+//    /**
+//     * 删除标志(0代表存在 1代表删除)
+//     */
+//    @TableId(value = "del_flag")
+//    private String delFlag;
+//    /**
+//     * 备注
+//     */
+//    private String startDate;
+//    /**
+//     * 备注
+//     */
+//    @TableId(value = "end_date")
+//    private String endDate;
     /**
-     * 修改时间;第一次创建时与CreatTime值相同,修改时与修改时间相同
+     * 备注
      */
-    @TableField(value = "updatetime")
-    private Date updateTime;
+    private String remark;
 }

+ 28 - 0
service-base/src/main/java/com/simuwang/base/service/UserAuthService.java

@@ -0,0 +1,28 @@
+package com.simuwang.base.service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.simuwang.base.mapper.SysUserMapper;
+import com.simuwang.base.pojo.dos.SysUserDO;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserAuthService {
+    private final SysUserMapper userMapper;
+
+    public UserAuthService(SysUserMapper userMapper) {
+        this.userMapper = userMapper;
+    }
+
+    /**
+     * 根据用户账号获取用户信息
+     *
+     * @param username 用户账号
+     * @return /
+     */
+    public SysUserDO getUserInfoByUsername(String username) {
+        LambdaQueryWrapper<SysUserDO> wrapper = Wrappers.lambdaQuery(SysUserDO.class)
+                .eq(SysUserDO::getUserName, username).eq(SysUserDO::getValid, 1);
+        return this.userMapper.selectOne(wrapper);
+    }
+}

+ 2 - 2
service-manage/src/main/java/com/simuwang/manage/api/LoginController.java

@@ -33,7 +33,7 @@ public class LoginController {
     }
 
     @PostMapping("login")
-    public ResultVo<String> login(@RequestBody LoginUser loginUser, HttpServletResponse response) {
+    public ResultVo<Void> login(@RequestBody LoginUser loginUser, HttpServletResponse response) {
         ShiroToken shiroToken = new ShiroToken(loginUser.getUsername(), loginUser.getPassword());
         Subject subject = SecurityUtils.getSubject();
         subject.login(shiroToken);
@@ -42,7 +42,7 @@ public class LoginController {
         this.jwtContext.setUserCache(token);
         response.setHeader(JwtContext.HEADER, token);
         response.setHeader("Access-control-Expost-Headers", JwtContext.HEADER);
-        return ResultVo.ok(ResultCode.SUCCESS.getCode(), "登录成功", token);
+        return ResultVo.ok(ResultCode.SUCCESS.getCode(), "登录成功", null);
     }
 
     @RequiresAuthentication

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/api/company/CompanyEmailConfigController.java

@@ -18,7 +18,7 @@ import java.util.List;
  * Description: ${DESCRIPTION}
  */
 @RestController
-@RequestMapping("/company")
+@RequestMapping("/v1/company")
 public class CompanyEmailConfigController {
     private static final Logger logger = LoggerFactory.getLogger(CompanyEmailConfigController.class);
 

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/api/company/CompanyEmailSendHistoryController.java

@@ -24,7 +24,7 @@ import java.util.List;
  * Description: ${DESCRIPTION}
  */
 @RestController
-@RequestMapping("/company")
+@RequestMapping("/v1/company")
 public class CompanyEmailSendHistoryController extends BaseController {
     private static final Logger logger = LoggerFactory.getLogger(CompanyEmailSendHistoryController.class);
     @Autowired

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/api/company/CompanyInformationController.java

@@ -16,7 +16,7 @@ import java.util.Map;
  * Description: ${DESCRIPTION}
  */
 @RestController
-@RequestMapping("/company")
+@RequestMapping("/v1/company")
 public class CompanyInformationController {
     @Autowired
     private CompanyInformationService companyInformationService;

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/api/fund/FundInformationController.java

@@ -23,7 +23,7 @@ import java.util.Map;
  * Description: ${DESCRIPTION}
  */
 @RestController
-@RequestMapping("/fund")
+@RequestMapping("/v1/fund")
 public class FundInformationController extends BaseController {
 
     private static final Logger logger = LoggerFactory.getLogger(FundInformationController.class);

+ 1 - 1
service-manage/src/main/java/com/simuwang/manage/api/system/SysConfigController.java

@@ -20,7 +20,7 @@ import java.util.List;
  * @author ruoyi
  */
 @Controller
-@RequestMapping("/system/config")
+@RequestMapping("/v1/system/config")
 public class SysConfigController extends BaseController
 {
     private String prefix = "system/config";

+ 71 - 71
service-manage/src/main/java/com/simuwang/manage/api/system/SysLoginController.java

@@ -1,75 +1,75 @@
-package com.simuwang.manage.api.system;
-
-
-import com.simuwang.base.common.text.Convert;
-import com.simuwang.base.common.util.ServletUtils;
-import com.simuwang.manage.api.base.BaseController;
-import com.simuwang.manage.service.system.SysConfigService;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.ModelMap;
-import org.springframework.web.bind.annotation.GetMapping;
-
-/**
- * 登录验证
- * 
- * @author ruoyi
- */
-@Controller
-public class SysLoginController extends BaseController
-{
-    /**
-     * 是否开启记住我功能
-     */
-    @Value("${shiro.rememberMe.enabled: false}")
-    private boolean rememberMe;
-
-    @Autowired
-    private SysConfigService configService;
-
-    @GetMapping("/login")
-    public String login(HttpServletRequest request, HttpServletResponse response, ModelMap mmap)
-    {
-        // 如果是Ajax请求,返回Json字符串。
-        if (ServletUtils.isAjaxRequest(request))
-        {
-            return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}");
-        }
-        // 是否开启记住我
-        mmap.put("isRemembered", rememberMe);
-        // 是否开启用户注册
-        mmap.put("isAllowRegister", Convert.toBool(configService.getKey("sys.account.registerUser"), false));
-        return "login";
-    }
-
-//    @PostMapping("/login")
-//    @ResponseBody
-//    public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
+//package com.simuwang.manage.api.system;
+//
+//
+//import com.simuwang.base.common.text.Convert;
+//import com.simuwang.base.common.util.ServletUtils;
+//import com.simuwang.manage.api.base.BaseController;
+//import com.simuwang.manage.service.system.SysConfigService;
+//import jakarta.servlet.http.HttpServletRequest;
+//import jakarta.servlet.http.HttpServletResponse;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.stereotype.Controller;
+//import org.springframework.ui.ModelMap;
+//import org.springframework.web.bind.annotation.GetMapping;
+//
+///**
+// * 登录验证
+// *
+// * @author ruoyi
+// */
+//@Controller
+//public class SysLoginController extends BaseController
+//{
+//    /**
+//     * 是否开启记住我功能
+//     */
+//    @Value("${shiro.rememberMe.enabled: false}")
+//    private boolean rememberMe;
+//
+//    @Autowired
+//    private SysConfigService configService;
+//
+//    @GetMapping("/login")
+//    public String login(HttpServletRequest request, HttpServletResponse response, ModelMap mmap)
 //    {
-//        UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);
-//        Subject subject = SecurityUtils.getSubject();
-//        try
+//        // 如果是Ajax请求,返回Json字符串。
+//        if (ServletUtils.isAjaxRequest(request))
 //        {
-//            subject.login(token);
-//            return success();
-//        }
-//        catch (AuthenticationException e)
-//        {
-//            String msg = "用户或密码错误";
-//            if (StringUtils.isNotEmpty(e.getMessage()))
-//            {
-//                msg = e.getMessage();
-//            }
-//            return error(msg);
+//            return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}");
 //        }
+//        // 是否开启记住我
+//        mmap.put("isRemembered", rememberMe);
+//        // 是否开启用户注册
+//        mmap.put("isAllowRegister", Convert.toBool(configService.getKey("sys.account.registerUser"), false));
+//        return "login";
+//    }
+//
+////    @PostMapping("/login")
+////    @ResponseBody
+////    public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)
+////    {
+////        UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);
+////        Subject subject = SecurityUtils.getSubject();
+////        try
+////        {
+////            subject.login(token);
+////            return success();
+////        }
+////        catch (AuthenticationException e)
+////        {
+////            String msg = "用户或密码错误";
+////            if (StringUtils.isNotEmpty(e.getMessage()))
+////            {
+////                msg = e.getMessage();
+////            }
+////            return error(msg);
+////        }
+////    }
+//
+//    @GetMapping("/unauth")
+//    public String unauth()
+//    {
+//        return "error/unauth";
 //    }
-
-    @GetMapping("/unauth")
-    public String unauth()
-    {
-        return "error/unauth";
-    }
-}
+//}