首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取mule流中的安全上下文或安全主引用

如何获取mule流中的安全上下文或安全主引用
EN

Stack Overflow用户
提问于 2015-11-26 17:44:41
回答 1查看 553关注 0票数 1

试着在骡子上进行认证和授权,并让它发挥作用。现在,我希望在流中使用对骡子安全上下文的引用,特别是主体对象引用。如何在流中获取对mule中主体对象的引用?

链接到mule xml

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-27 08:39:37

安全上下文可以通过MuleSession获得,这个会话可以通过eventContext获得。要获得eventContext引用,可以执行以下操作。

这可以通过实现可调用来实现。创建以下java类。现在,将一个java组件放在mule流中,在其中必须调用它,并使用创建的java类进行配置。Mule调用自动的onCall方法,该方法以eventContext作为参数,不需要额外的配置来调用。

示例java组件从会话中获取安全内容,并从中获取安全主体,并将其存储在流变量"user“中,该变量可由流中该java组件后面出现的其他流元素使用。

代码语言:javascript
复制
import org.mule.api.MuleEventContext;
import org.mule.api.lifecycle.Callable;
import org.mule.api.security.Authentication;
import org.springframework.security.core.userdetails.UserDetails;

public class GetSecurityPrincipalCallable implements Callable {

@Override
public Object onCall(MuleEventContext eventContext) throws Exception {
    Authentication auth = eventContext.getSession().getSecurityContext()
            .getAuthentication();
    UserDetails principal = (UserDetails) auth.getPrincipal();
    System.out.println("username is : " + principal.getUsername());
    eventContext.getMessage().setInvocationProperty("user", principal);
    return null;
  }

}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33944485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档