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 Type
    Method
    Description
    攤平的權限名(各角色權限的聯集)
    顯示名(實作以 username 退回,不回 null)
    default Optional<String>
    聯絡 email(通道不是身分,ADR-018);供通知收件人組裝。 身分模型無 email 概念的實作回 empty,消費端退 RecipientResolver 等通道解析
    default String
    id()
    穩定識別(無獨立 id 的身分模型退回 username)
    default boolean
    可否互動式登入(同 AuthPrincipal 語意; 服務帳號等非互動主體回 false)
    主角色裸名(無 ROLE_ 前綴)
    直接指派的角色裸名(順序=帳號的角色順序,首位為主角色)
    default Optional<String>
    所屬租戶;無租戶概念(ownership 專案)恆 empty
    登入身分識別子
  • Method Details

    • username

      String username()
      登入身分識別子
    • id

      default String id()
      穩定識別(無獨立 id 的身分模型退回 username)
    • displayName

      String displayName()
      顯示名(實作以 username 退回,不回 null)
    • tenantId

      default Optional<String> tenantId()
      所屬租戶;無租戶概念(ownership 專案)恆 empty
    • email

      default Optional<String> email()
      聯絡 email(通道不是身分,ADR-018);供通知收件人組裝。 身分模型無 email 概念的實作回 empty,消費端退 RecipientResolver 等通道解析
    • interactiveLoginAllowed

      default boolean interactiveLoginAllowed()
      可否互動式登入(同 AuthPrincipal 語意; 服務帳號等非互動主體回 false)
    • primaryRoleName

      Optional<String> primaryRoleName()
      主角色裸名(無 ROLE_ 前綴)
    • roleNames

      List<String> roleNames()
      直接指派的角色裸名(順序=帳號的角色順序,首位為主角色)
    • authorityNames

      List<String> authorityNames()
      攤平的權限名(各角色權限的聯集)