我有一個Spring Data JPA存儲庫,並且單元測試工作正常,只要不添加Spring Security依賴項(spring-boot-starter-security)以及相應的方法存儲庫上的授權註釋。一旦添加,我會在運行單元測試時遇到AuthenticationCredentialsNotFound異常。單元測試使用Spring Security的JPA存儲庫
如何在單元測試中對庫方法進行「驗證」調用?
我有一個Spring Data JPA存儲庫,並且單元測試工作正常,只要不添加Spring Security依賴項(spring-boot-starter-security)以及相應的方法存儲庫上的授權註釋。一旦添加,我會在運行單元測試時遇到AuthenticationCredentialsNotFound異常。單元測試使用Spring Security的JPA存儲庫
如何在單元測試中對庫方法進行「驗證」調用?
我的測試中調用庫方法如前運行正常,現在只要我首先驗證有這樣要求的角色的用戶:
SecurityContextHolder.getContext()
.setAuthentication(new UsernamePasswordAuthenticationToken(
"admin",
"password",
Collections.singleton(new SimpleGrantedAuthority("ROLE_ADMIN"))));
// Make calls to repository methods that require the admin role
情況下也需要進行身份驗證設置多個角色(羅布絞車禮貌 - Spring Security的鉛):
SecurityContextHolder.getContext()
.setAuthentication(new UsernamePasswordAuthenticationToken(
ADMIN,
PASSWORD,
AuthorityUtils.createAuthorityList("ROLE_USER", "ROLE_ADMIN")
));
你使用什麼驗證? OAuth2用戶? – IllSc
現在我只使用基本身份驗證,並使用'@ PreAuthorize'註釋標註了存儲庫方法。 – Ole