Interface AuthorityContributor


public interface AuthorityContributor

Authority 名稱的貢獻點

權限名稱由擁有該資源的 feature 或業務領域宣告,而非集中在認證能力的一份清單裡。 消費端收集所有實作後決定怎麼用——參考實作把它們冪等地補進 DB 再連結角色;其他消費端 可改餵外部 IAM、或只做啟動期校驗。本契約只宣告「有哪些名字」,不決定消費方式。

存在的理由是方向:認證是必要能力,不得依賴任何選用 feature 或業務碼。未安裝的 feature 不貢獻權限,其權限自然不存在——參考實作的角色連結階段對找不到的權限發 warn 並跳過,正是「feature 沒裝」的語意。

命名慣例 domain:capability(如 mail:opsnotification_outbox:resend);authority 字串本身就是介面——feature 宣告「做這件事需要什麼能力」,誰拿得到它由各專案決定 (參考實作經 Role.json)。非敏感資訊與低風險操作應優先使用 authenticated + audit, 不應貢獻 Authority;只有敏感資訊、敏感/高影響操作或明確職責隔離才建立 capability。 Capability 應依風險與責任收斂,不依 Entity × CRUD 機械展開;method capability 也不取代 消費端 service/policy 的 object/data scope。

  • Method Summary

    Modifier and Type
    Method
    Description
    本 feature/業務領域擁有的權限名稱(domain:capability 形式)。
  • Method Details

    • authorityNames

      List<String> authorityNames()
      本 feature/業務領域擁有的權限名稱(domain:capability 形式)。