0

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

  • 设置要通过 REST 访问的 Bean

  • 为连接配置 SSL

  • 设置一个 PreProcessInterceptor 使用 HTTP Basic Auth 向用户询问他的凭据。

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

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

String userName = context.getCallerPrincipal().getName();

目前 userName 现在总是匿名的。设置调用者主体的正确方法是什么?我在拦截器中这样做吗?还是在 Bean 本身中?我的目标是基本上能够调用一个方法 loginUserWithEJBOnJboss(String user, String pass) ,该方法使用在 jboss 中配置的登录方法并正确设置主体。

我在这里不知所措,谷歌没有找到任何东西。也许我只是在寻找错误的词。

4

1 回答 1

0

所以,是的,一如往常一样,我自己找到了解决方案。我想有时我只是问,因为我知道这会发生。

所以解决方案是这些方法:

    SecurityContextAssociation.setPrincipal(new SimplePrincipal(username));
    SecurityContextAssociation.setCredential(password.toCharArray());

他们几乎做了我想要的一切:)

于 2013-05-22T12:05:14.610 回答