日志记录提交
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
package com.baiyue.iam.service;
|
||||
|
||||
import com.baiyue.common.audit.BusinessAudit;
|
||||
import com.baiyue.iam.dto.MemberDtos.ResetMemberPasswordRequest;
|
||||
import com.baiyue.iam.dto.PlatformInternalUserDtos.ResetInternalUserPasswordRequest;
|
||||
import com.baiyue.iam.dto.PlatformUserManagementDtos.ResetPasswordRequest;
|
||||
import com.baiyue.iam.dto.RbacDtos.AssignRolesRequest;
|
||||
import com.baiyue.iam.dto.RbacDtos.CreateRoleRequest;
|
||||
import com.baiyue.iam.dto.RbacDtos.GrantPermissionsRequest;
|
||||
import com.baiyue.iam.dto.RbacDtos.UpdateRoleRequest;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
class BusinessAuditCoverageTest {
|
||||
@Test
|
||||
void shouldAuditRbacChanges() throws Exception {
|
||||
assertAudit(RbacService.class, "createRole", "ROLE_CREATE", "ROLE", "#request.roleCode",
|
||||
long.class, String.class, CreateRoleRequest.class);
|
||||
assertAudit(RbacService.class, "updateRole", "ROLE_UPDATE", "ROLE", "#roleId",
|
||||
long.class, String.class, Long.class, UpdateRoleRequest.class);
|
||||
assertAudit(RbacService.class, "changeStatus", "ROLE_STATUS_CHANGE", "ROLE", "#roleId",
|
||||
long.class, String.class, Long.class,
|
||||
com.baiyue.iam.dto.RbacDtos.ChangeRoleStatusRequest.class);
|
||||
assertAudit(RbacService.class, "deleteRole", "ROLE_DELETE", "ROLE", "#roleId",
|
||||
long.class, String.class, Long.class);
|
||||
assertAudit(RbacService.class, "assignRoles", "MEMBER_ROLE_ASSIGN", "MEMBERSHIP", "#request.membershipId",
|
||||
long.class, String.class, AssignRolesRequest.class);
|
||||
assertAudit(RbacService.class, "grantPermissions", "ROLE_PERMISSION_GRANT", "ROLE", "#request.roleId",
|
||||
long.class, String.class, GrantPermissionsRequest.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldNeverCapturePasswordSnapshots() throws Exception {
|
||||
assertPasswordAudit(MemberService.class, "resetPassword", long.class, Long.class,
|
||||
ResetMemberPasswordRequest.class);
|
||||
assertPasswordAudit(PlatformUserManagementService.class, "resetPassword", Long.class,
|
||||
ResetPasswordRequest.class);
|
||||
assertPasswordAudit(PlatformInternalUserService.class, "resetPassword", Long.class,
|
||||
ResetInternalUserPasswordRequest.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldAuditCustomerReview() throws Exception {
|
||||
assertAudit(TenantService.class, "review", "TENANT_REVIEW", "TENANT_REVIEW", "#reviewId",
|
||||
long.class, long.class, boolean.class, String.class);
|
||||
}
|
||||
|
||||
private void assertAudit(Class<?> type, String methodName, String event, String resourceType,
|
||||
String resourceId, Class<?>... parameterTypes) throws Exception {
|
||||
BusinessAudit audit = annotation(type, methodName, parameterTypes);
|
||||
assertEquals(event, audit.event());
|
||||
assertEquals(resourceType, audit.resourceType());
|
||||
assertEquals(resourceId, audit.resourceId());
|
||||
}
|
||||
|
||||
private void assertPasswordAudit(Class<?> type, String methodName, Class<?>... parameterTypes) throws Exception {
|
||||
BusinessAudit audit = annotation(type, methodName, parameterTypes);
|
||||
assertFalse(audit.captureBefore());
|
||||
assertFalse(audit.captureAfter());
|
||||
}
|
||||
|
||||
private BusinessAudit annotation(Class<?> type, String methodName, Class<?>... parameterTypes) throws Exception {
|
||||
Method method = type.getDeclaredMethod(methodName, parameterTypes);
|
||||
return method.getAnnotation(BusinessAudit.class);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user