Those may not work on the client side. If that’s the case, I’d scrap using client proxies and I’d just use the JAX-RS client api directly, unless you’re using this as a tinkering opportunity.
On Tue, Mar 5, 2019 at 6:46 AM James Carman <[email protected]> wrote: > Did you try using @HeaderParam and @DefaultValue? > On Tue, Mar 5, 2019 at 1:40 AM Pablo Caballero <[email protected]> wrote: > >> Hi folks! >> >> I'm writing a REST client to interact with a service exposed by my home >> router (*1). >> >> The service consist of a set of operations exposed in a unique URI ( >> https://xxx.xxx.xxx.xxx/JNAP/). The operation being called depends on the >> value of a special http header (X-JNAP-Action). Some operations require >> authentication and some don't (authentication works as http basic auth but >> using a custom header called X-JNAP-Authorization). You can read about >> this >> API in https://github.com/reujab/linksys. >> >> My idea is to use two custom annotations to: >> - map the interface method to the correlated X-JNAP-Action value >> - mark operations that need authentication >> >> and use an/two interceptor/interceptors to implement the logic. >> >> Something like this: >> >> @Path("/JNAP/") >> @Consumes({ "application/json" }) >> @Produces({ "application/json" }) >> public interface JNAPClient { >> >> @POST >> @Path("") >> @JNAPAction(value="router/GetWANStatus3") >> @JNAPAuthorization >> public WanStatus3 getWanStatus3(); >> >> @POST >> @Path("") >> @JNAPAction(value="router/blah") >> @JNAPAuthorization >> public BlahResponse doBlah(); >> >> and so on... >> >> I read about using message.getExchange().get(OperationResourceInfo.class) >> (*2) to get access to the target method inside an interceptor and I wrote >> a >> bit of code to test it but I couldn't make it work (I get a null value as >> a >> result of calling message.getExchange()... ). So, I decided to take a >> deeper look at the Message parameter inspecting its value and I figured >> out >> that there was a OperationResourceInfo element in the MessageImpl's >> "contents" member. At this point I'm wondering if it's ok to cast the >> "message" parameter to MessageImpl and use the getContent method to access >> the ori's info or if should find another solution. >> >> Thank you very much! >> >> Best regards >> >> (*1) https://www.linksys.com/us/p/P-EA9300/ >> (*2) >> >> https://stackoverflow.com/questions/4219093/determine-target-service-method-from-cxf-interceptor >> >
