Thank you James!

Best regards!

On Tue, Mar 5, 2019, 8:59 AM James Carman <[email protected]>
wrote:

> 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
> >>
> >
>

Reply via email to