2013-05-22 52 views
0

我正在尝试使用RESTeasy来设置一个REST-webservice,它可以访问部署在JBoss 7.1.1上的EJB。 我已经成功地:通过RESTeasy webservice进行EJB认证

  • 设置豆类通过REST

  • 配置SSL连接

  • 设置使用HTTP基本认证问一个PreProcessInterceptor访问用户为他的凭据。

目前我基本上只是检查拦截器硬编码的凭据。 这工作,以确保用户进行身份验证,但是我们对于豆类的当前登录的主要为一些像这样的Beancalls名称查询:

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

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

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

我在这里亏本,谷歌没有找到任何东西。也许我只是在寻找错误的单词。

回答

0

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

所以解决的办法有以下方法:

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

他们这样做几乎所有我想要的:)