mirror of
https://github.com/iflytek/skillhub.git
synced 2026-10-11 03:37:57 +00:00
test(auth): persist initial grant audit in PostgreSQL
Signed-off-by: XiaoSeS <87064762+XiaoSeS@users.noreply.github.com>
This commit is contained in:
parent
e8de0059ef
commit
6842b40132
2 changed files with 10 additions and 2 deletions
|
|
@ -22,4 +22,4 @@
|
|||
|
||||
- [x] 验证两个开关的四种组合、直接 API 绕过尝试、已有会话、DB 故障与多实例设置可见性(本地 Compose HTTP 实测;DB 故障与两个服务实例读取使用 `LocalAuthSettingsServiceTest`)。
|
||||
- [x] 验证首次登录授权、准入优先、已有账号不补授权、同邮箱独立账号、邮箱验证、规则停用、角色人工修改和并发首次登录(OAuth/授权单测与 PostgreSQL 真实事务测试;本地 Compose 未接入真实外部 IdP)。
|
||||
- [x] 验证一次性部署初始化、角色规则删除后重启、非超管越权、审计记录和浏览器页面流程(初始化单测、Compose 权限与审计实测、Playwright 浏览器操作;常驻 smoke 覆盖公开能力与后台配置读取)。
|
||||
- [x] 验证一次性部署初始化、角色规则删除后重启、非超管越权、审计记录和浏览器页面流程(初始化单测、Compose 权限与审计实测、PostgreSQL 自动授权审计断言、Playwright 浏览器操作;常驻 smoke 覆盖公开能力与后台配置读取)。
|
||||
|
|
|
|||
|
|
@ -18,7 +18,9 @@ import com.iflytek.skillhub.domain.namespace.GlobalNamespaceMembershipService;
|
|||
import com.iflytek.skillhub.domain.user.UserAccount;
|
||||
import com.iflytek.skillhub.domain.user.UserAccountRepository;
|
||||
import com.iflytek.skillhub.domain.user.UserStatus;
|
||||
import com.iflytek.skillhub.infra.jpa.AuditLogJpaRepository;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import java.time.Clock;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
|
@ -69,6 +71,7 @@ class SystemAuthSettingsPostgresTest {
|
|||
@Autowired private IdentityBindingRepository identities;
|
||||
@Autowired private UserRoleBindingRepository userRoles;
|
||||
@Autowired private PlatformTransactionManager transactionManager;
|
||||
@Autowired private AuditLogJpaRepository auditLogs;
|
||||
@Autowired private EntityManager entityManager;
|
||||
@Autowired private JdbcTemplate jdbc;
|
||||
|
||||
|
|
@ -193,6 +196,11 @@ class SystemAuthSettingsPostgresTest {
|
|||
assertThat(consumed.getMatchedSubject()).isIn(firstClaims.subject(), secondClaims.subject());
|
||||
assertThat(userRoles.findByUserId(firstPrincipal.userId()).size()
|
||||
+ userRoles.findByUserId(secondPrincipal.userId()).size()).isEqualTo(1);
|
||||
assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM audit_log WHERE action = ? AND target_id = ?",
|
||||
Long.class, "INITIAL_ROLE_GRANTED", ruleId)).isEqualTo(1L);
|
||||
assertThat(jdbc.queryForObject("SELECT detail_json ->> 'userId' FROM audit_log "
|
||||
+ "WHERE action = ? AND target_id = ?", String.class, "INITIAL_ROLE_GRANTED", ruleId))
|
||||
.isEqualTo(consumed.getGrantedUserId());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -200,7 +208,7 @@ class SystemAuthSettingsPostgresTest {
|
|||
return new IdentityBindingService(identities, users, userRoles,
|
||||
mock(GlobalNamespaceMembershipService.class), mock(ApplicationEventPublisher.class),
|
||||
transactionManager, new InitialExternalRoleGrantService(
|
||||
rules, userRoles, mock(AuditLogService.class)));
|
||||
rules, userRoles, new AuditLogService(auditLogs, Clock.systemUTC())));
|
||||
}
|
||||
|
||||
private static PlatformPrincipal firstLogin(IdentityBindingService service, OAuthClaims claims,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue