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

@@ -0,0 +1,9 @@
package cn.nopj.chaos_api.mapper;
import cn.nopj.chaos_api.domain.entity.Permission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface PermissionMapper extends BaseMapper<Permission> {
}

View File

@@ -0,0 +1,10 @@
package cn.nopj.chaos_api.mapper;
import cn.nopj.chaos_api.domain.entity.Role;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface RoleMapper extends BaseMapper<Role> {
}

View File

@@ -0,0 +1,32 @@
package cn.nopj.chaos_api.mapper;
import cn.nopj.chaos_api.domain.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface UserMapper extends BaseMapper<User> {
/**
* 根据用户名查询用户的角色和权限信息
* @param username 用户名
* @return 权限编码列表 (包含角色和权限)
*/
@Select("""
SELECT p.code FROM t_permission p
LEFT JOIN t_role_permission rp ON p.id = rp.permission_id
LEFT JOIN t_role r ON r.id = rp.role_id
LEFT JOIN t_user_role ur ON r.id = ur.role_id
LEFT JOIN t_user u ON u.id = ur.user_id
WHERE u.username = #{username}
UNION
SELECT r.code FROM t_role r
LEFT JOIN t_user_role ur ON r.id = ur.role_id
LEFT JOIN t_user u ON u.id = ur.user_id
WHERE u.username = #{username}
""")
List<String> findAuthoritiesByUsername(@Param("username") String username);
}