feat(auth): 添加用户认证和 JWT 令牌管理功能

- 新增用户注册和登录接口
- 实现 JWT 令牌生成和验证逻辑
- 添加用户权限管理相关实体和 mapper
- 更新安全配置,支持 JWT 认证
-移除 log4j2 相关配置,改为使用 logback
This commit is contained in:
chaos
2025-07-18 17:33:11 +08:00
parent 20c05c41f0
commit 6e5f735fcc
20 changed files with 499 additions and 58 deletions

View File

@@ -24,5 +24,10 @@
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,14 @@
package cn.nopj.chaos_api.domain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
@Data
@TableName("t_permission")
public class Permission implements Serializable {
private Long id;
private String name;
private String code;
}

View File

@@ -0,0 +1,13 @@
package cn.nopj.chaos_api.domain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
@Data
@TableName("t_role")
public class Role implements Serializable {
private Long id;
private String name;
private String code;
}

View File

@@ -0,0 +1,21 @@
package cn.nopj.chaos_api.domain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
@Data
@TableName("t_user")
public class User implements Serializable {
private Long id;
private String username;
private String password;
private Boolean enabled;
private Boolean accountNonExpired;
private Boolean credentialsNonExpired;
private Boolean accountNonLocked;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,12 @@
package cn.nopj.chaos_api.dto;
import lombok.Data;
/**
* 登录请求参数
*/
@Data
public class LoginRequest {
private String username;
private String password;
}

View File

@@ -0,0 +1,12 @@
package cn.nopj.chaos_api.dto;
import lombok.Data;
/**
* 注册请求参数
*/
@Data
public class RegisterRequest {
private String username;
private String password;
}