Authentication 通过RESTeasy webservice对EJB进行身份验证

Authentication 通过RESTeasy webservice对EJB进行身份验证,authentication,jboss,resteasy,Authentication,Jboss,Resteasy,我正在尝试使用RESTeasy设置RESTWebService,以访问部署在JBoss 7.1.1上的EJB。 我在以下方面取得了成功: 设置要通过REST访问的bean 为连接配置SSL 设置使用HTTP Basic Auth请求用户提供其凭据的预侦听器 目前,我基本上只是检查在拦截器中硬编码的凭证。 这可以确保用户经过身份验证,但是对于某些BeanCall,我们的Beans查询当前登录主体的名称如下: @Resource private SessionContext context =

我正在尝试使用RESTeasy设置RESTWebService,以访问部署在JBoss 7.1.1上的EJB。 我在以下方面取得了成功:

  • 设置要通过REST访问的bean

  • 为连接配置SSL

  • 设置使用HTTP Basic Auth请求用户提供其凭据的预侦听器

目前,我基本上只是检查在拦截器中硬编码的凭证。 这可以确保用户经过身份验证,但是对于某些BeanCall,我们的Beans查询当前登录主体的名称如下:

@Resource
private SessionContext context = null;
[...]

String userName = context.getCallerPrincipal().getName();
当前用户名现在总是匿名的。设置调用方主体的正确方法是什么?我是在拦截器里做的吗?还是豆子本身?我的目标是基本上能够调用loginuserwithejbbonjboss(stringuser,stringpass)方法,该方法使用jboss中配置的登录方法并正确设置主体


我在这里不知所措,谷歌什么也没找到。也许我只是在寻找错误的词语。

所以是的,像往常一样,在询问之后,我自己就找到了解决办法。我想有时候我问是因为我知道这会发生

因此,解决方案是以下方法:

    SecurityContextAssociation.setPrincipal(new SimplePrincipal(username));
    SecurityContextAssociation.setCredential(password.toCharArray());
他们做了我想做的一切:)