In FUSE (or Karaf), how does one get the caller user id? I'm actually using FUSE with blueprint services.
For example, in a J2EE session bean, you can do:
sessionCtx.getCallerPrincipal()
Is there an equivalent in the OSGI service space?
在 Karaf 中,我们使用普通的 jaas 来进行服务认证。因此,您可以使用以下代码访问主题和主体。
AccessControlContext acc = AccessController.getContext();
Subject subject = Subject.getSubject(acc);
Set<Principal> principals = subject.getPrincipals();
在 karaf 3 中,还为 OSGi 服务内置了基于角色的访问控制。因此,您可以定义哪些角色可以访问哪些服务。