【发布时间】:2014-05-26 22:48:39
【问题描述】:
我正在使用 WildFly 8 在 JavaEE 7 中开发一个新应用程序。我正在使用 JAX-RS 为远程应用程序提供 RESTful 服务接口。
可以使用@Context 注解将HttpHeaders 对象之类的东西注入到资源方法参数中。由于该对象基于请求参数(当然是 HTTP 标头),我想出了创建自己的可注入 User 对象的想法,该对象是基于请求中存在的有效令牌(类似于OAuth 访问令牌)。
所以,我想实现这样的目标:
@Path("/resources")
public class MyResource {
@Path("/{id}")
@GET
public Response getById(@Context User user, @PathParam("id") long id) {
...
}
}
其中 User 是根据请求参数创建的可注入对象,例如可通过 HttpHeaders 对象访问的对象。当然,如果由于任何原因无法创建 User 对象,提供者也可以抛出异常并返回 HTTP 错误响应。
现在,我的问题是:
- 这是一个好的设计吗?如果没有,我还有什么更好的选择?
- 我怎样才能做到这一点?我不在乎我的解决方案是否特定于 JAX-RS 并使用特定于 WildFly/RestEasy 的内部结构,但如果存在便携式解决方案,我绝对更喜欢便携式解决方案。
谢谢
【问题讨论】:
标签: rest jakarta-ee jax-rs restful-authentication wildfly