Hi Fabian, sorry, I mixed up the two. ClientConfiguration is the right one.
So you want to forward the auth-token you receive on your side to marmotta? This usecase is currently not covered, the patch you did looks like a possible solution. A different approach would be to "decrypt" the auth token and provide user/passwd via the ClientConfiguration. Best, Jakob Am 27.10.2014 15:11 schrieb "Fabian Cretton" <fabian.cret...@hevs.ch>: > Jakob, > > Do we talk here about ClientConfiguration or ConfigurationClient ? > In my understanding ConfigurationClient is a client to access the > configuration of Marmotta whereas I was talking about ClientConfiguration > here. > > In my code, to call the ImportClient, I am doing: > > ClientConfiguration configuration = *new* ClientConfiguration(marmottaURL, > "admin", "pass123"); > configuration.setMarmottaContext(context); > ImportClient importClient = *new* ImportClient(configuration); > importClient.uploadDataset(is, format.getDefaultMIMEType()); > > Then, I do see the deprecated methods in > org.apache.marmotta.client.util.HTTPUtil.createClient() > However I don't see anywhere in that createClient() that the user/pwd > values are used ? is it a hidden mechanisme ? > > If you can give me more precision I can still look into that, but > hopefully I am not causing you more troubles then help. > > But still there is something not clear for me: > Ultimately, I don't want to pass a predefined user/pwd to my > ClientConfiguration in my java code, but I want to use the user/pwd > currently logged on the platform. > This is what I do in the current work-around I described in my first post: > >> To make it work, I had make my own copy of the method > >> ImportClient.uploadDataset(), and pass the headerAuth received by my own > >> webservice to the post object: > post.setHeader("Authorization", headerAuth); > > Fabian > > >>> Jakob Frank <ja...@apache.org> 27.10.2014 13:43 >>> > It is - setting the username/passwd in the ConfigurationClient should > do the trick. > > I had a look into > org.apache.marmotta.client.clients.ConfigurationClient and > org.apache.marmotta.client.util.HTTPUtil, this is where I found the > warnings. > > We updated HttpClient to 4.3 some time ago which changed the API, but > never followed up with all the usages in marmotta [1]. > > There are probably to strategies to fix the auth-issue: > * configure the HttpClient for "preemtive auth", so it sends the > auth-header right at the beginning, or > * implement a retry-strategy that reacts on 401 correctly (actually, > IMHO HttpClient should do so automatically) > > > Best, > Jakob > > [1] https://issues.apache.org/jira/browse/MARMOTTA-406 > > On 27 October 2014 10:50, Fabian Cretton <fabian.cret...@hevs.ch> wrote: > > Do you mean that passing the user/pwd to the ClientConfiguration should > be > > the correct way to do it ? > > > > And, more precisely, where is the use of a deprecated API of HttpClient ? > > > > thanks > > Fabian > > > >>>> Jakob Frank <ja...@apache.org> 27.10.2014 09:38 >>> > > Hi Fabian, > > > > while looking into the code for the data-import issue, I saw that we > > are using a deprecated API of HttpClient - maybe the authentication > > issue is related to that. > > > > Would be great if you could have a look into that and maybe provide a > patch! > > > > Best, > > Jakob > > > > > > On 24 October 2014 13:56, Fabian Cretton <fabian.cret...@hevs.ch> wrote: > >> Hi, > >> > >> In a Marmotta module I am developping, I did use ImportClient to upload > >> data, and it did work fine. > >> > >> However, when changing Marmotta's security from "simple" to > "restricted", > >> the ImportClient was failing with a 401. > >> I did try to pass a user/pwd to the ClientConfiguration(), but the error > >> persisted (I was passing the user and password as 'clear' strings, for > >> instance 'admin' and 'pass123'). > >> > >> To make it work, I had make my own copy of the method > >> ImportClient.uploadDataset(), and pass the headerAuth received by my own > >> webservice to the post object: post.setHeader("Authorization", > >> headerAuth); > >> > >> I thus have two question: > >> - is that normal that the ImportClient was failing or did I do something > >> wrong > >> - if that was normal, would you want a new version of ImportClient that > >> could handle this ? > >> > >> thank you > >> Fabian > >> >