diff --git a/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmController.java b/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmController.java index d3e2438..1e235db 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmController.java @@ -153,7 +153,16 @@ public class AlgorithmController { if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmModelController.java b/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmModelController.java index a8e1c9b..c83ae00 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmModelController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/AlgorithmModelController.java @@ -295,7 +295,16 @@ public class AlgorithmModelController { if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/controller/CriticalDataController.java b/business-css/src/main/java/com/yfd/business/css/controller/CriticalDataController.java index 0a1cf2f..bb2d0f0 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/CriticalDataController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/CriticalDataController.java @@ -48,7 +48,16 @@ public class CriticalDataController { if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java b/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java index ba210fc..73f0978 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/DeviceController.java @@ -189,7 +189,16 @@ public class DeviceController { if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/controller/EventController.java b/business-css/src/main/java/com/yfd/business/css/controller/EventController.java index 9e55cf9..7a94594 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/EventController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/EventController.java @@ -442,7 +442,16 @@ public class EventController { if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/controller/MaterialController.java b/business-css/src/main/java/com/yfd/business/css/controller/MaterialController.java index 4390011..5a58a18 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/MaterialController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/MaterialController.java @@ -173,7 +173,16 @@ public class MaterialController { if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java b/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java index 811713d..7d335ba 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/ProjectController.java @@ -55,10 +55,9 @@ public class ProjectController { project.setVisibility(projectAccessHelper.normalizeVisibility(project.getVisibility())); } if (project.getCreator() == null || project.getCreator().isBlank()) { - var u = userService.getUserInfo(); - if (u != null) project.setCreator(u.getId()); + project.setCreator(currentAccount()); } - project.setModifier(currentUsername()); + project.setModifier(currentAccount()); return projectService.save(project); } @@ -76,12 +75,12 @@ public class ProjectController { if (project.getProjectId() != null) { projectAccessHelper.assertCanWriteProject(project.getProjectId()); } - project.setModifier(currentUsername()); + project.setModifier(currentAccount()); project.setUpdatedAt(LocalDateTime.now()); return projectService.updateById(project); } - @Log(value = "修改项目可见性", module = "项目管理") + @Log(value = "修改项目权限", module = "项目管理") @PutMapping("/{id}/visibility") @Operation(summary = "修改项目可见性", description = "仅项目所有者或管理员可修改(PRIVATE/READONLY/PUBLIC)") public boolean updateVisibility(@PathVariable @Parameter(description = "项目ID", required = true) String id, @@ -94,18 +93,27 @@ public class ProjectController { Project p = new Project(); p.setProjectId(id); p.setVisibility(projectAccessHelper.normalizeVisibility(visibility)); - p.setModifier(currentUsername()); + p.setModifier(currentAccount()); p.setUpdatedAt(LocalDateTime.now()); return projectService.updateById(p); } - private String currentUsername() { + private String currentAccount() { try { Authentication auth = SecurityContextHolder.getContext().getAuthentication(); if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } @@ -218,11 +226,13 @@ public class ProjectController { qw.like("name", name); } if (!projectAccessHelper.isAdmin()) { + String account = projectAccessHelper.currentAccount(); String uid = projectAccessHelper.currentUserId(); qw.and(w -> w.isNull("visibility") .or().eq("visibility", "") .or().eq("visibility", "PUBLIC") .or().eq("visibility", "READONLY") + .or().eq("creator", account) .or().eq("creator", uid)); } Page page = new Page<>(pageNum, pageSize, true); @@ -287,7 +297,7 @@ public class ProjectController { Project updated = new Project(); updated.setProjectId(id); updated.setTopology(json); - updated.setModifier(currentUsername()); + updated.setModifier(currentAccount()); updated.setUpdatedAt(LocalDateTime.now()); projectService.updateById(updated); return ResponseEntity.ok(Map.of( diff --git a/business-css/src/main/java/com/yfd/business/css/controller/ScenarioController.java b/business-css/src/main/java/com/yfd/business/css/controller/ScenarioController.java index 83bafc0..c892c84 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/ScenarioController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/ScenarioController.java @@ -180,7 +180,16 @@ public class ScenarioController { if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/controller/ScenarioResultController.java b/business-css/src/main/java/com/yfd/business/css/controller/ScenarioResultController.java index 5a57e67..b5c46ff 100644 --- a/business-css/src/main/java/com/yfd/business/css/controller/ScenarioResultController.java +++ b/business-css/src/main/java/com/yfd/business/css/controller/ScenarioResultController.java @@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yfd.business.css.domain.Scenario; import com.yfd.business.css.domain.ScenarioResult; +import com.yfd.business.css.domain.Device; import com.yfd.business.css.security.ProjectAccessHelper; import com.yfd.business.css.service.ScenarioResultService; import com.yfd.business.css.service.ScenarioService; +import com.yfd.business.css.service.DeviceService; import java.io.IOException; @@ -30,6 +32,8 @@ public class ScenarioResultController { private ScenarioService scenarioService; @Resource private ProjectAccessHelper projectAccessHelper; + @Resource + private DeviceService deviceService; /** * 根据场景ID分页查询模拟结果 @@ -116,11 +120,11 @@ public class ScenarioResultController { queryWrapper.le("step", stepTo); } - List results = scenarioResultService.list(queryWrapper.orderByAsc("step")); + List results = scenarioResultService.list(queryWrapper.orderByAsc("device_id").orderByAsc("step")); // 创建Excel工作簿 Workbook workbook = new XSSFWorkbook(); - Sheet sheet = workbook.createSheet("情景结果数据"); + String scenarioName = sc != null && sc.getName() != null ? sc.getName() : scenarioId; // 创建表头样式 CellStyle headerStyle = workbook.createCellStyle(); @@ -145,50 +149,90 @@ public class ScenarioResultController { dataStyle.setWrapText(true); // 创建表头 - Row headerRow = sheet.createRow(0); - String[] headers = {"场景ID", "设备ID", "时点", "属性值", "Keff值"}; - for (int i = 0; i < headers.length; i++) { - Cell cell = headerRow.createCell(i); - cell.setCellValue(headers[i]); - cell.setCellStyle(headerStyle); - } + String[] headers = {"场景名称", "设备名称", "时点", "属性值", "Keff值"}; - // 填充数据 - int rowNum = 1; - for (ScenarioResult result : results) { - Row row = sheet.createRow(rowNum++); - - Cell cell0 = row.createCell(0); - cell0.setCellValue(result.getScenarioId()); - cell0.setCellStyle(dataStyle); - - Cell cell1 = row.createCell(1); - cell1.setCellValue(result.getDeviceId()); - cell1.setCellStyle(dataStyle); - - Cell cell2 = row.createCell(2); - cell2.setCellValue(result.getStep()); - cell2.setCellStyle(dataStyle); - - Cell cell3 = row.createCell(3); - cell3.setCellValue(result.getAttrState().toString()); - cell3.setCellStyle(dataStyle); - - Cell cell4 = row.createCell(4); - cell4.setCellValue(result.getKeffValue().doubleValue()); - cell4.setCellStyle(dataStyle); - } - - // 自动调整列宽 - for (int i = 0; i < headers.length; i++) { - sheet.autoSizeColumn(i); - // 设置最小列宽 - if (sheet.getColumnWidth(i) < 20 * 256) { - sheet.setColumnWidth(i, 20 * 256); + if (deviceId != null && !deviceId.isEmpty()) { + Device dev = deviceService.getById(deviceId); + String deviceName = dev != null && dev.getName() != null ? dev.getName() : deviceId; + Sheet sheet = workbook.createSheet(deviceName); + Row headerRow = sheet.createRow(0); + for (int i = 0; i < headers.length; i++) { + Cell cell = headerRow.createCell(i); + cell.setCellValue(headers[i]); + cell.setCellStyle(headerStyle); } - // 设置最大列宽 - if (sheet.getColumnWidth(i) > 50 * 256) { - sheet.setColumnWidth(i, 50 * 256); + int rowNum = 1; + for (ScenarioResult result : results) { + Row row = sheet.createRow(rowNum++); + Cell cell0 = row.createCell(0); + cell0.setCellValue(scenarioName); + cell0.setCellStyle(dataStyle); + Cell cell1 = row.createCell(1); + cell1.setCellValue(deviceName); + cell1.setCellStyle(dataStyle); + Cell cell2 = row.createCell(2); + cell2.setCellValue(result.getStep()); + cell2.setCellStyle(dataStyle); + Cell cell3 = row.createCell(3); + cell3.setCellValue(result.getAttrState()); + cell3.setCellStyle(dataStyle); + Cell cell4 = row.createCell(4); + cell4.setCellValue(result.getKeffValue() == null ? 0.0 : result.getKeffValue().doubleValue()); + cell4.setCellStyle(dataStyle); + } + for (int i = 0; i < headers.length; i++) { + sheet.autoSizeColumn(i); + if (sheet.getColumnWidth(i) < 20 * 256) { + sheet.setColumnWidth(i, 20 * 256); + } + if (sheet.getColumnWidth(i) > 50 * 256) { + sheet.setColumnWidth(i, 50 * 256); + } + } + } else { + java.util.Map> byDevice = new java.util.LinkedHashMap<>(); + for (ScenarioResult r : results) { + byDevice.computeIfAbsent(r.getDeviceId(), k -> new java.util.ArrayList<>()).add(r); + } + for (java.util.Map.Entry> entry : byDevice.entrySet()) { + String did = entry.getKey(); + Device dev = deviceService.getById(did); + String deviceName = dev != null && dev.getName() != null ? dev.getName() : did; + Sheet sheet = workbook.createSheet(deviceName); + Row headerRow = sheet.createRow(0); + for (int i = 0; i < headers.length; i++) { + Cell cell = headerRow.createCell(i); + cell.setCellValue(headers[i]); + cell.setCellStyle(headerStyle); + } + int rowNum = 1; + for (ScenarioResult result : entry.getValue()) { + Row row = sheet.createRow(rowNum++); + Cell cell0 = row.createCell(0); + cell0.setCellValue(scenarioName); + cell0.setCellStyle(dataStyle); + Cell cell1 = row.createCell(1); + cell1.setCellValue(deviceName); + cell1.setCellStyle(dataStyle); + Cell cell2 = row.createCell(2); + cell2.setCellValue(result.getStep()); + cell2.setCellStyle(dataStyle); + Cell cell3 = row.createCell(3); + cell3.setCellValue(result.getAttrState()); + cell3.setCellStyle(dataStyle); + Cell cell4 = row.createCell(4); + cell4.setCellValue(result.getKeffValue() == null ? 0.0 : result.getKeffValue().doubleValue()); + cell4.setCellStyle(dataStyle); + } + for (int i = 0; i < headers.length; i++) { + sheet.autoSizeColumn(i); + if (sheet.getColumnWidth(i) < 20 * 256) { + sheet.setColumnWidth(i, 20 * 256); + } + if (sheet.getColumnWidth(i) > 50 * 256) { + sheet.setColumnWidth(i, 50 * 256); + } + } } } diff --git a/business-css/src/main/java/com/yfd/business/css/domain/ModelTrainTask.java b/business-css/src/main/java/com/yfd/business/css/domain/ModelTrainTask.java index 234e56c..57fb3ed 100644 --- a/business-css/src/main/java/com/yfd/business/css/domain/ModelTrainTask.java +++ b/business-css/src/main/java/com/yfd/business/css/domain/ModelTrainTask.java @@ -1,6 +1,8 @@ package com.yfd.business.css.domain; import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.io.Serializable; @@ -49,7 +51,12 @@ public class ModelTrainTask implements Serializable { @TableField("error_log") private String errorLog; + @TableField(value = "feature_map_config") + @JsonIgnore + private String featureMapConfigJson; + @TableField(exist = false) + @JsonProperty("featureMapConfig") private Map featureMapConfig; @TableField(value = "created_at") diff --git a/business-css/src/main/java/com/yfd/business/css/security/ProjectAccessHelper.java b/business-css/src/main/java/com/yfd/business/css/security/ProjectAccessHelper.java index db907c2..e75ed3c 100644 --- a/business-css/src/main/java/com/yfd/business/css/security/ProjectAccessHelper.java +++ b/business-css/src/main/java/com/yfd/business/css/security/ProjectAccessHelper.java @@ -27,6 +27,53 @@ public class ProjectAccessHelper { return u == null ? null : u.getId(); } + public String currentAccount() { + try { + SysUser u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + } catch (Exception ignored) { + } + try { + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + } catch (Exception ignored) { + } + return null; + } + + public String currentNickname() { + try { + String n = userService.getUsername(); + if (n != null && !n.isBlank() && !"anonymous".equalsIgnoreCase(n)) return n; + } catch (Exception ignored) { + } + try { + SysUser u = userService.getUserInfo(); + if (u != null && u.getNickname() != null && !u.getNickname().isBlank()) { + return u.getNickname(); + } + } catch (Exception ignored) { + } + return null; + } + + private boolean isOwner(Project p) { + if (p == null) return false; + String creator = p.getCreator(); + if (creator == null || creator.isBlank()) return false; + String account = currentAccount(); + if (account != null && account.equals(creator)) return true; + String uid = currentUserId(); + if (uid != null && uid.equals(creator)) return true; + String nickname = currentNickname(); + return nickname != null && nickname.equals(creator); + } + public void assertCanReadProject(String projectId) { Project p = projectService.getById(projectId); if (p == null) { @@ -61,10 +108,10 @@ public class ProjectAccessHelper { if (p == null) return false; if (isAdmin()) return true; String visibility = normalizeVisibility(p.getVisibility()); + System.out.println("visibility="+visibility); if ("PUBLIC".equals(visibility) || "READONLY".equals(visibility)) return true; if ("PRIVATE".equals(visibility)) { - String uid = currentUserId(); - return uid != null && uid.equals(p.getCreator()); + return isOwner(p); } return true; } @@ -72,8 +119,7 @@ public class ProjectAccessHelper { public boolean canWrite(Project p) { if (p == null) return false; if (isAdmin()) return true; - String uid = currentUserId(); - if (uid != null && uid.equals(p.getCreator())) return true; + if (isOwner(p)) return true; String visibility = normalizeVisibility(p.getVisibility()); return "PUBLIC".equals(visibility); } @@ -81,8 +127,7 @@ public class ProjectAccessHelper { public boolean canManageVisibility(Project p) { if (p == null) return false; if (isAdmin()) return true; - String uid = currentUserId(); - return uid != null && uid.equals(p.getCreator()); + return isOwner(p); } public String normalizeVisibility(String visibility) { diff --git a/business-css/src/main/java/com/yfd/business/css/service/impl/CriticalDataServiceImpl.java b/business-css/src/main/java/com/yfd/business/css/service/impl/CriticalDataServiceImpl.java index 8ba9927..ab8c3a1 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/impl/CriticalDataServiceImpl.java +++ b/business-css/src/main/java/com/yfd/business/css/service/impl/CriticalDataServiceImpl.java @@ -236,7 +236,16 @@ public class CriticalDataServiceImpl if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java b/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java index c467946..b1f6bf3 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java +++ b/business-css/src/main/java/com/yfd/business/css/service/impl/DeviceServiceImpl.java @@ -204,7 +204,16 @@ public class DeviceServiceImpl if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/service/impl/MaterialServiceImpl.java b/business-css/src/main/java/com/yfd/business/css/service/impl/MaterialServiceImpl.java index a59b359..0fa774c 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/impl/MaterialServiceImpl.java +++ b/business-css/src/main/java/com/yfd/business/css/service/impl/MaterialServiceImpl.java @@ -202,7 +202,16 @@ public class MaterialServiceImpl if (auth == null || auth instanceof AnonymousAuthenticationToken) { return "anonymous"; } - return userService.getUsername(); + var u = userService.getUserInfo(); + if (u != null && u.getUsername() != null && !u.getUsername().isBlank()) { + return u.getUsername(); + } + var m = userService.getNameInfo(); + if (m != null) { + String username = m.get("username"); + if (username != null && !username.isBlank()) return username; + } + return "anonymous"; } catch (Exception e) { return "anonymous"; } diff --git a/business-css/src/main/java/com/yfd/business/css/service/impl/ModelTrainServiceImpl.java b/business-css/src/main/java/com/yfd/business/css/service/impl/ModelTrainServiceImpl.java index 3cda870..12b5710 100644 --- a/business-css/src/main/java/com/yfd/business/css/service/impl/ModelTrainServiceImpl.java +++ b/business-css/src/main/java/com/yfd/business/css/service/impl/ModelTrainServiceImpl.java @@ -157,6 +157,7 @@ public class ModelTrainServiceImpl extends ServiceImpl fm = objectMapper.readValue(task.getFeatureMapConfigJson(), new TypeReference>() {}); + task.setFeatureMapConfig(fm); + } catch (Exception ignored) { + } + } // 由于改为 WebSocket 异步推送,这里简化为直接查库返回 return task; } diff --git a/framework/pom.xml b/framework/pom.xml index cac16d5..6129a65 100644 --- a/framework/pom.xml +++ b/framework/pom.xml @@ -312,6 +312,20 @@ + + org.apache.maven.plugins + maven-compiler-plugin + + 17 + + + org.projectlombok + lombok + 1.18.32 + + + + diff --git a/framework/src/main/java/com/yfd/platform/config/MethodSecurityConfig.java b/framework/src/main/java/com/yfd/platform/config/MethodSecurityConfig.java new file mode 100644 index 0000000..cbc7bfc --- /dev/null +++ b/framework/src/main/java/com/yfd/platform/config/MethodSecurityConfig.java @@ -0,0 +1,10 @@ +package com.yfd.platform.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; + +@Configuration +@EnableMethodSecurity(prePostEnabled = true, securedEnabled = true, jsr250Enabled = true) +public class MethodSecurityConfig { +} +