我在JBoss-7环境中使用ReastEasy,目前正在实现安全特性。我正在使用带有SSL连接的HTTP。添加和评估标头参数很容易(多亏了Passing parameters in the message header with a REST API):
@Provider @ServerInterceptor
public class RestSecurityInterceptor implements PreProcessInterceptor
{
@EJB MyBean fUser;
private MyUser user;
@Override
public ServerResponse preProcess(HttpRequest request, ResourceMethod method)
throws UnauthorizedException
{
// do some some stuff. If the request is authenticated I get a MyUser
user = ...
}
@Named @Produces @SessionScoped
public MyUser getCurrentUser() {return user;}
}这很好,我的REST服务中的@Produces和@Inject也很有魅力。
@Path("/rest")
public class MyService extends Application
{
@Inject private MyUser currentUser;
@GET @Path("/test")
public String test()
{
return "Hello "+currentUser.getName();
}
}现在我的问题是:以这种方式实现REST的安全性是否安全(我不想讨论HTTP基本利弊,让我们关注CDI)?特别是我想知道我是否可以像描述的那样使用CDI,以及我是否选择了正确的@SessionScoped范围
发布于 2012-05-06 04:47:18
会话范围不起作用。已经有一些关于REST和会话范围的问题。对于JAX或JAX调用,会话作用域不处于活动状态。
https://stackoverflow.com/questions/10446323
复制相似问题