AuthCとAuthZにApacheShiroを使用する私のWebアプリケーションには、2つの認証レルムがあります。1つは通常のWebインターフェイス(と呼ばれる)用で、もう1つはAPIトークンを使用するSsoRealm
REST API(と呼ばれる)用です。RestRealm
両方のレルムによって認証されたプリンシパルには、分離された権限(およびAuthenticationTokens
)があります。既存のセッションがなく、API呼び出しがRESTインターフェースを介して到着した場合、すべてが正常であり、認証(および承認)はを介して行われRestRealm
ます。SsoRealm
ただし、以前に認証が行われなかったために認証された既存のセッション
が発生し、サブジェクトが間違ったレルムからのものであるためRestRealm
、連続した承認チェック(を使用)が失敗した場合。Subject.isPermitted
対応する認証フィルターは、(Shiro Guiceを使用して)次のように登録されます。
addFilterChain("/api/x/*/y", REST_AUTH, NO_SESSION_CREATION);
addFilterChain("/**", SSO_AUTH);
「正しい」レルムで再認証を強制するためにできることはありますか?
カスタムAuthenticationStrategy
ヘルプ(つまり、契約で「関与している場合、認証が成功する必要があるAuthenticationStrategy
」という戦略の実装が許可されていますか)?既存の認証済みセッションがある場合、AFAICSは再度呼び出されません...RestRealm
RestRealm
ModularRealmAuthenticator.doMultiRealmAuthentication