Interface PrincipalView
public interface PrincipalView
主體目錄視圖(唯讀)——feature 對「他人」的全部合法認知 (ADR-024 決策三)
feature(delegation/impersonation/signed-link 等)需要認識「其他主體」時,一律經本視圖, 不得 import 消費端的帳號 entity(ADR-014 規範一:SPI 不得洩漏 entity)。成員自真實 消費者的用法逐行萃取,刻意排除:
- 角色階層展開(可達角色、主角色置首)——那是 wire 契約,歸消費端 wire 組裝層
- 密碼/憑證——認證走
AuthenticationManager,目錄永不曝露 secret
email() 是選用成員(ADR-024 決策三的 fallback 條款):email 是通道不是身分
(ADR-018),身分模型無 email 概念的實作回 empty;消費端須自行退到
RecipientResolver 等通道解析。
實作應回不可變快照(載入交易內物化),脫離持久化 Session 後仍可安全讀取。
-
Method Summary
Modifier and TypeMethodDescription攤平的權限名(各角色權限的聯集)顯示名(實作以 username 退回,不回 null)email()聯絡 email(通道不是身分,ADR-018);供通知收件人組裝。 身分模型無 email 概念的實作回 empty,消費端退RecipientResolver等通道解析default Stringid()穩定識別(無獨立 id 的身分模型退回 username)default boolean可否互動式登入(同AuthPrincipal語意; 服務帳號等非互動主體回 false)主角色裸名(無ROLE_前綴)直接指派的角色裸名(順序=帳號的角色順序,首位為主角色)tenantId()所屬租戶;無租戶概念(ownership 專案)恆 emptyusername()登入身分識別子
-
Method Details
-
username
String username()登入身分識別子 -
id
穩定識別(無獨立 id 的身分模型退回 username) -
displayName
String displayName()顯示名(實作以 username 退回,不回 null) -
tenantId
-
email
-
interactiveLoginAllowed
default boolean interactiveLoginAllowed()可否互動式登入(同AuthPrincipal語意; 服務帳號等非互動主體回 false) -
-
roleNames
-
authorityNames
-