I changed
QueryExecution qe = con.query(query);
to
QueryExecution qe = con.query("select ?s where {?s ?p ?o} limit 10");
and it works.  A bug in the former method?  - Erich

On Mon, May 16, 2022 at 12:31 PM Erich Bremer <[email protected]> wrote:

> Thanks Andy, this is a huge help.
> using this code:
>
> Query query = QueryFactory.create("select ?s where {?s ?p ?o} limit 10");
> AuthEnv.get().registerUsernamePassword(new URI("
> https://myserver.edu/sparql-auth";), Settings.user, Settings.password);
> HttpClient client = HttpClient.newBuilder()
>                 .connectTimeout(Duration.ofSeconds(10))
>                 .version(HttpClient.Version.HTTP_1_1)
>                 .build();
> RDFConnection con = RDFConnectionRemote.create()
>                 .destination(host)
>                 .queryEndpoint("sparql-auth")
>                 .httpClient(client)
>                 .build();
> QueryExecution qe = con.query(query);
> ResultSet results = qe.execSelect();
>
> is throwing an error:
>
> Exception in thread "main" java.lang.IllegalArgumentException: invalid
> header value: "Digest username="username", realm="SPARQL",
> nonce="b7ef0b701772c22b88db561ac58bd55f", uri="/sparql-auth?query=SELECT  ?s
> WHERE
>   { ?s  ?p  ?o }
> LIMIT   10
> ", qop=auth, cnonce="D8DA17AFEAD93444", nc=00000000,
> response="4d8ba8cef8aaa7f22d1adf811c6ac903",
> opaque="5ebe2294ecd0e0f08eab7690d2a6ee69""
> at java.net.http/jdk.internal.net.http.common.Utils.newIAE(Utils.java:286)
> at
> java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.checkNameAndValue(HttpRequestBuilderImpl.java:113)
> at
> java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.setHeader(HttpRequestBuilderImpl.java:119)
> at
> java.net.http/jdk.internal.net.http.HttpRequestBuilderImpl.setHeader(HttpRequestBuilderImpl.java:43)
> at
> org.apache.jena.http.auth.DigestLib.lambda$buildDigest$0(DigestLib.java:119)
> at org.apache.jena.http.auth.AuthLib.handle401(AuthLib.java:124)
> at org.apache.jena.http.auth.AuthLib.authExecute(AuthLib.java:54)
> at org.apache.jena.http.HttpLib.execute(HttpLib.java:536)
> at org.apache.jena.http.HttpLib.execute(HttpLib.java:493)
> at
> org.apache.jena.sparql.exec.http.QueryExecHTTP.executeQuery(QueryExecHTTP.java:497)
> at
> org.apache.jena.sparql.exec.http.QueryExecHTTP.performQuery(QueryExecHTTP.java:471)
> at
> org.apache.jena.sparql.exec.http.QueryExecHTTP.execRowSet(QueryExecHTTP.java:168)
> at
> org.apache.jena.sparql.exec.http.QueryExecHTTP.select(QueryExecHTTP.java:160)
> at
> org.apache.jena.sparql.exec.QueryExecutionAdapter.execSelect(QueryExecutionAdapter.java:117)
> at
> org.apache.jena.sparql.exec.QueryExecutionCompat.execSelect(QueryExecutionCompat.java:97)
> at com.mycompany.rad.RDF.<init>(RDF.java:90)
> at com.mycompany.rad.RDF.main(RDF.java:105)
>
> I'm using Graalvm:
> java -version
> openjdk version "17.0.3" 2022-04-19
> OpenJDK Runtime Environment GraalVM CE 22.1.0 (build
> 17.0.3+7-jvmci-22.1-b06)
> OpenJDK 64-Bit Server VM GraalVM CE 22.1.0 (build 17.0.3+7-jvmci-22.1-b06,
> mixed mode, sharing)
>
>    - Erich
>
> On Mon, May 16, 2022 at 11:49 AM Andy Seaborne <[email protected]> wrote:
>
>>
>>
>> On 16/05/2022 16:11, Erich Bremer wrote:
>> > It seems in Jena 4.3.X forward HttpClient in RDFConnectionRemoteBuilder
>> was
>> > changed from org.apache.http.client.HttpClient to
>> java.net.http.HttpClient.
>> > The latter doesn't appear to support Digest Authentication.  Is there
>> > support for Digest authentication in 4.3.X forward?  I was able to do it
>> > with the older RDFConnectionRemoteBuilder.  Thanks, Erich
>> >
>>
>> https://jena.apache.org/documentation/sparql-apis/
>>
>> Digest auth is supported (implemented by Jena).
>>
>>      Andy
>>
>

Reply via email to