0

FUSE (または Karaf) では、発信者のユーザー ID をどのように取得しますか? 私は実際にブループリント サービスで FUSE を使用しています。

たとえば、J2EE セッション Bean では、次のことができます。

sessionCtx.getCallerPrincipal()

OSGIサービススペースに同等のものはありますか?

4

1 に答える 1

1

Karaf では、単純な jaas を使用してサービス認証を行います。したがって、次のコードを使用してサブジェクトとプリンシパルにアクセスできます。

AccessControlContext acc = AccessController.getContext();
Subject subject = Subject.getSubject(acc);
Set<Principal> principals = subject.getPrincipals();

karaf 3 には、OSGi サービス用の役割ベースのアクセス制御も組み込まれています。したがって、どのロールがどのサービスにアクセスできるかを定義できます。

于 2014-01-08T06:52:11.837 に答える