15.11. 別の権限での実行
ユーザーは上位権限で特定の操作を行う必要がある場合があります。 たとえば、 未認証のユーザーが新しいユーザーアカウントを作成する必要があるとしましょう。 Seam Security はこのような状況に
RunAsOperation クラスで対応します。 このクラスは、単一の一組の操作に対して Principal か Subject のいずれか、またはユーザーのロールを無効にすることができます。
以下のコード例で
RunAsOperation の使い方を示します。addRole() メソッドを呼び出し、操作の間に「借りる」ロールセットを提供します。execute() メソッドは上位特権で実行されるコードを持っています。
同様に、
getPrincipal() や getSubject() メソッドを無効にしてその操作の間だけ Principal インスタンスや Subject インスタンスを使用するよう指定することができます。 最後に、 RunAsOperation を実行するために run() メソッドを使用します。