I am developing a new application in JavaEE 7 using WildFly 8. I am using JAX-RS to provide a RESTful service interface for remote applications.
Something like an HttpHeaders
object can be injected in a resource method arguments using the @Context
annotation. Since the object is based on request parameters (of course, the HTTP headers), I came up with the idea of creating my own injectable User
object which is created based on the presence of a valid token in the request (something like an OAuth access token).
So, I want to achieve something like this:
@Path("/resources")
public class MyResource {
@Path("/{id}")
@GET
public Response getById(@Context User user, @PathParam("id") long id) {
...
}
}
Where User is an injectable object created based on request parameters, such as ones accessible through an HttpHeaders
object. Of course, the provider can also throw an exception and return an HTTP error response if the User object cannot be created for any reason.
Now, my questions are:
- Is this a good design? If not, what better options do I have?
- How can I achieve this? I do not care if my solution is not JAX-RS specific and uses WildFly/RestEasy-specific internals, but I definitely prefer a portable solution if there exists one.
Thanks
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…