Compare commits
No commits in common. "29734c18e99cbdbdd0a27ae898c7761180925410" and "37221a2a94d0ddbc40c1f0a4b98d55999466eff1" have entirely different histories.
29734c18e9
...
37221a2a94
|
@ -1,35 +0,0 @@
|
|||
FROM openjdk:24-ea-17-jdk-oraclelinux9
|
||||
MAINTAINER server
|
||||
|
||||
#系统编码
|
||||
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
|
||||
|
||||
# 设置时区,构建镜像时执行的命令
|
||||
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
|
||||
RUN echo "Asia/Shanghai" > /etc/timezone
|
||||
|
||||
# 设定工作目录
|
||||
WORKDIR /home/server
|
||||
|
||||
# 复制jar包
|
||||
COPY target/*.jar /home/server/app.jar
|
||||
|
||||
# 程序内部挂在目录
|
||||
VOLUME /usr/bin/docker
|
||||
VOLUME ["/var/run/docker.sock"]
|
||||
VOLUME /etc/docker/daemon.json
|
||||
VOLUME ["/www/root/backup"]
|
||||
VOLUME ["/www/root/server"]
|
||||
|
||||
# 启动容器时的进程
|
||||
ENTRYPOINT ["java","-jar","/home/server/app.jar"]
|
||||
|
||||
#暴露 8000 端口
|
||||
EXPOSE 8000
|
||||
|
||||
# 生产环境
|
||||
# mvn clean package -Pprod -DskipTests
|
||||
|
||||
# 测试环境
|
||||
# mvn clean package -Ptest -DskipTests
|
||||
|
|
@ -84,7 +84,7 @@ public class PermissionController {
|
|||
@PutMapping("file/import")
|
||||
public Result<String> importPermission(@RequestParam(value = "file") MultipartFile file, String type) {
|
||||
permissionService.importPermission(file, type);
|
||||
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
|
||||
return Result.success(ResultCodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
@Operation(summary = "获取所有权限", description = "获取所有权限", tags = {"permission::query"})
|
||||
|
|
|
@ -88,6 +88,6 @@ public class RoleController {
|
|||
@PutMapping("file/import")
|
||||
public Result<String> updateRoleByFile(MultipartFile file) {
|
||||
roleService.updateRoleByFile(file);
|
||||
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
|
||||
return Result.success();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
@ -15,6 +16,7 @@ import java.util.List;
|
|||
* 邮件发送对象
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Schema(name = "EmailSend", title = "邮件发送表单", description = "邮件发送表单")
|
||||
|
|
|
@ -4,10 +4,12 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Schema(name = "EmailSendInit", title = "邮件发送初始化", description = "邮件发送初始化")
|
||||
|
|
|
@ -7,6 +7,7 @@ import com.alibaba.excel.enums.BooleanEnum;
|
|||
import com.alibaba.excel.enums.poi.FillPatternTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
@ -14,6 +15,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@HeadFontStyle(fontHeightInPoints = 22, color = 14, bold = BooleanEnum.TRUE)
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
package cn.bunny.services.domain.common.model.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -16,6 +13,7 @@ import java.util.List;
|
|||
@EqualsAndHashCode(callSuper = true)
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "LoginVo对象", title = "登录成功返回内容", description = "登录成功返回内容")
|
||||
public class LoginVo extends BaseVo {
|
||||
|
||||
|
|
|
@ -4,12 +4,14 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "EmailUsersAddDto对象", title = "添加邮箱用户发送配置", description = "添加邮箱用户发送配置")
|
||||
public class EmailUsersAddDto {
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ import jakarta.validation.constraints.Min;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
@ -14,6 +15,7 @@ import java.util.List;
|
|||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "FilesAddDto对象", title = "添加文件", description = "添加文件")
|
||||
public class FilesAddDto {
|
||||
|
||||
|
|
|
@ -3,12 +3,14 @@ package cn.bunny.services.domain.system.i18n.dto;
|
|||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "I18nTypeAddDto对象", title = "多语言类型添加", description = "多语言类型添加内容")
|
||||
public class I18nTypeAddDto {
|
||||
|
||||
|
|
|
@ -4,12 +4,14 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "I18nTypeUpdateDto对象", title = "多语言类型更新", description = "多语言类型更新内容")
|
||||
public class I18nTypeUpdateDto {
|
||||
|
||||
|
|
|
@ -4,15 +4,16 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "MessageAddDto对象", title = "添加系统消息", description = "添加系统消息")
|
||||
public class MessageAddDto {
|
||||
|
||||
|
@ -21,7 +22,7 @@ public class MessageAddDto {
|
|||
private String title;
|
||||
|
||||
@Schema(name = "receivedUserIds", title = "接收人用户ID")
|
||||
private List<Long> receivedUserIds = new ArrayList<>();
|
||||
private List<Long> receivedUserIds;
|
||||
|
||||
@Schema(name = "sendUserId", title = "发送人用户ID")
|
||||
private Long sendUserId;
|
||||
|
|
|
@ -3,12 +3,14 @@ package cn.bunny.services.domain.system.message.dto;
|
|||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "MessageTypeAddDto对象", title = "添加系统消息类型", description = "添加系统消息类型")
|
||||
public class MessageTypeAddDto {
|
||||
|
||||
|
|
|
@ -5,12 +5,14 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "AdminUserAddDto对象", title = "添加用户", description = "用户管理")
|
||||
public class AdminUserAddDto {
|
||||
|
||||
|
|
|
@ -5,12 +5,14 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "AdminUserUpdateByLocalUserDto对象", title = "更新本地用户信息", description = "更新本地用户信息")
|
||||
public class AdminUserUpdateByLocalUserDto {
|
||||
|
||||
|
|
|
@ -5,12 +5,14 @@ import jakarta.validation.constraints.NotBlank;
|
|||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "LoginDto", title = "登录表单内容", description = "登录表单内容")
|
||||
public class LoginDto {
|
||||
|
||||
|
|
|
@ -4,12 +4,14 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "RefreshTokenDto对象", title = "登录成功返回内容", description = "登录成功返回内容")
|
||||
public class RefreshTokenDto {
|
||||
|
||||
|
|
|
@ -7,10 +7,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
|
|||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@ -19,6 +16,7 @@ import java.util.List;
|
|||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
@Schema(name = "RouterControllerVo对象", title = "管理员用户看到菜单内容", description = "管理员用户管理菜单")
|
||||
public class RouterManageVo extends BaseUserVo {
|
||||
|
||||
|
|
|
@ -4,12 +4,14 @@ import jakarta.validation.constraints.NotBlank;
|
|||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class VmsArgumentDto {
|
||||
|
|
|
@ -7,27 +7,22 @@ import cn.bunny.services.domain.common.model.vo.result.ResultCodeEnum;
|
|||
import cn.bunny.services.security.exception.CustomAuthenticationException;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.security.authorization.AuthorizationDecision;
|
||||
import org.springframework.security.authorization.AuthorizationManager;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.web.access.intercept.RequestAuthorizationContext;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
|
||||
/**
|
||||
* 自定义授权管理器服务实现
|
||||
*
|
||||
* <p>负责处理API请求的授权决策,主要功能:</p>
|
||||
* <ol>
|
||||
* <li>验证请求Token的有效性</li>
|
||||
* <li>检查用户状态(是否禁用)</li>
|
||||
* <li>设置当前请求上下文信息</li>
|
||||
* <li>执行权限检查</li>
|
||||
* </ol>
|
||||
* 自定义权限判断
|
||||
* 判断用户有哪些权限
|
||||
*/
|
||||
@Service
|
||||
@Component
|
||||
@Slf4j
|
||||
public class CustomAuthorizationManagerServiceImpl implements AuthorizationManager<RequestAuthorizationContext> {
|
||||
|
||||
@Resource
|
||||
|
@ -37,17 +32,11 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag
|
|||
private PermissionCheckService permissionCheckService;
|
||||
|
||||
/**
|
||||
* 授权决策主方法
|
||||
* <ul>
|
||||
* <li>Token验证失败</li>
|
||||
* <li>用户状态异常</li>
|
||||
* <li>权限检查失败</li>
|
||||
* </ul>
|
||||
* 检查请求的Token是否携带,并判断是否过期
|
||||
*
|
||||
* @param authentication 认证信息提供者
|
||||
* @param context 请求授权上下文
|
||||
* @return 授权决策结果(允许/拒绝)
|
||||
* @throws CustomAuthenticationException 当出现以下情况时抛出:
|
||||
* @param authentication Supplier
|
||||
* @param context RequestAuthorizationContext
|
||||
* @return AuthorizationDecision
|
||||
*/
|
||||
@Override
|
||||
public AuthorizationDecision check(Supplier<Authentication> authentication, RequestAuthorizationContext context) {
|
||||
|
@ -70,12 +59,6 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag
|
|||
return new AuthorizationDecision(hasPermission);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证用户状态
|
||||
*
|
||||
* @param loginVo 用户登录信息
|
||||
* @throws CustomAuthenticationException 当用户状态异常时抛出
|
||||
*/
|
||||
private void validateUserStatus(LoginVo loginVo) {
|
||||
// 登录信息为空
|
||||
if (loginVo == null) {
|
||||
|
@ -88,4 +71,3 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue