Interface ActingContext


public interface ActingContext

當前請求的代理/模擬脈絡(見 ADR-013)。

讀取端唯一入口:從當前 JWT 的代行 claim(ActingClaims)在框架邏輯下算出 「有效身份 / 代理授權人集合 / 真實操作者」,供應用層寫啟用/稽核記錄、做 instance 級過濾。 身份一律為不可變的 stable subject(對齊 sub)。

兩個正交維度、無單一模式:模擬性(isImpersonating())與代理性 (isDelegating())由各自的 claim 是否存在獨立判定,可同時成立——框架不設 act_mode、不把兩者塌縮成一個模式列舉。是否同時具兩維由應用層簽發政策決定。

稽核 @LastModifiedBysub 語意自動正確(代理=登入者、模擬=被模擬者), 本脈絡是旁路資訊、不改既有 auditor 預設。

  • Method Summary

    Modifier and Type
    Method
    Description
    從當前 SecurityContextHolder 讀取。
    default String
    目前 acting family 的應用政策識別;未綁定或一般 Session 為 null
    真實操作者(模擬者)的 stable subject;模擬時回 actor claim、其餘回 getSubject() 自身 (真實操作者恆為當前 principal)
    單一代理授權人便利存取:恰好一筆回該筆 stable subject、零筆回 null
    代理授權人 stable subject 全集(0..n);無代理時回空 list
    default String
    目前 Access Token 所屬 Session family;舊 token 或非互動式 token 可為 null
    有效身份 stable subject(代理=登入者、模擬=被模擬者,即 JWT sub);未認證時為 null
    boolean
    當前 token 是否具代理性(帶非空 grantors claim);可與 isImpersonating() 同時成立
    boolean
    當前 token 是否具模擬性(帶 actor claim);有效身份即被模擬者
    of(org.springframework.security.oauth2.jwt.Jwt jwt)
    從 resource-server 的 Jwt principal 解析代行 claim(兩維獨立讀取)。
    ofClaims(Map<String,?> claims)
    從原始 claim map 解析(測試或非 resource-server 情境用);sub 作為有效身份 stable subject。
  • Method Details

    • getSubject

      String getSubject()
      有效身份 stable subject(代理=登入者、模擬=被模擬者,即 JWT sub);未認證時為 null
    • getGrantors

      List<String> getGrantors()
      代理授權人 stable subject 全集(0..n);無代理時回空 list
    • getGrantor

      String getGrantor()
      單一代理授權人便利存取:恰好一筆回該筆 stable subject、零筆回 null存在多筆卻以單數存取則丟 IllegalStateException(不允許把多筆當一筆讀)
    • getActor

      String getActor()
      真實操作者(模擬者)的 stable subject;模擬時回 actor claim、其餘回 getSubject() 自身 (真實操作者恆為當前 principal)
    • isImpersonating

      boolean isImpersonating()
      當前 token 是否具模擬性(帶 actor claim);有效身份即被模擬者
    • isDelegating

      boolean isDelegating()
      當前 token 是否具代理性(帶非空 grantors claim);可與 isImpersonating() 同時成立
    • getSessionId

      default String getSessionId()
      目前 Access Token 所屬 Session family;舊 token 或非互動式 token 可為 null
    • getActingPolicy

      default String getActingPolicy()
      目前 acting family 的應用政策識別;未綁定或一般 Session 為 null
    • current

      static ActingContext current()

      從當前 SecurityContextHolder 讀取。

      principal 為 resource-server 的 JwtJwtAuthenticationToken)時解析代行 claim; 其他已認證型別回無代行脈絡(有效身份取 authentication.getName());未認證回空脈絡。

    • of

      static ActingContext of(org.springframework.security.oauth2.jwt.Jwt jwt)
      從 resource-server 的 Jwt principal 解析代行 claim(兩維獨立讀取)。
    • ofClaims

      static ActingContext ofClaims(Map<String,?> claims)
      從原始 claim map 解析(測試或非 resource-server 情境用);sub 作為有效身份 stable subject。