Search in sources :

Example 11 with HttpClient

use of java.net.http.HttpClient in project jena by apache.

the class GSP method PUT.

// /**
// * POST a graph.
// * <p>
// * Synonym for {@link #POST(Graph)}.
// */
// public void postGraph(Graph graph) {
// // Synonym
// POST(graph);
// }
/**
 * PUT the contents of a file using the filename extension to determine the
 * Content-Type to use if it is not already set.
 * <p>
 * This operation does not parse the file.
 * <p>
 * If the data may have quads (named graphs), use {@link #putDataset(String)}.
 */
public void PUT(String file) {
    validateGraphOperation();
    String url = graphRequestURL();
    String fileExtContentType = contentTypeFromFilename(file);
    HttpClient hc = requestHttpClient(serviceEndpoint, url);
    uploadTriples(hc, url, file, fileExtContentType, httpHeaders, Push.PUT);
}
Also used : HttpClient(java.net.http.HttpClient)

Example 12 with HttpClient

use of java.net.http.HttpClient in project jena by apache.

the class ExFuseki_06_DataAccessCtl method main.

public static void main(String... a) {
    FusekiLogging.setLogging();
    int port = WebLib.choosePort();
    String datasetName = "/ds";
    String URL = format("http://localhost:%d%s", port, datasetName);
    // ---- Set up the registry.
    AuthorizationService authorizeSvc;
    {
        SecurityRegistry reg = new SecurityRegistry();
        // user1 can see the default graph and :g1
        reg.put("user1", new SecurityContextView("http://example/g1", Quad.defaultGraphIRI.getURI()));
        // user2 can see :g1
        reg.put("user2", new SecurityContextView("http://example/g1"));
        // user3 can see :g1 and :g2
        reg.put("user3", new SecurityContextView("http://example/g1", "http://example/g2"));
        // Hide implementation.
        authorizeSvc = reg;
    }
    // ---- Some data
    DatasetGraph dsg = createData();
    // ---- User authentication database (Jetty specific)
    UserStore userStore = new UserStore();
    addUserPassword(userStore, "user1", "pw1", "**");
    addUserPassword(userStore, "user2", "pw2", "**");
    try {
        userStore.start();
    } catch (Exception ex) {
        throw new RuntimeException("UserStore", ex);
    }
    // ---- Build server, start server.
    FusekiServer server = fuseki(port, userStore, authorizeSvc, datasetName, dsg);
    server.start();
    // ---- HttpClient connection with user and password basic authentication.
    Authenticator authenticator = AuthLib.authenticator("user1", "pw1");
    HttpClient client = HttpClient.newBuilder().authenticator(authenticator).connectTimeout(Duration.ofSeconds(10)).build();
    // ---- Use it.
    try (RDFConnection conn = RDFConnectionRemote.newBuilder().destination(URL).httpClient(client).build()) {
        // What can we see of the database? user1 can see g1 and the default graph
        System.out.println("\nFetch dataset");
        Dataset ds1 = conn.fetchDataset();
        RDFDataMgr.write(System.out, ds1, RDFFormat.TRIG_FLAT);
        // Get a graph.
        System.out.println("\nFetch named graph");
        Model m1 = conn.fetch("http://example/g1");
        RDFDataMgr.write(System.out, m1, RDFFormat.TURTLE_FLAT);
        // Get a graph. user tries to get a graph they have no permission for ==> 404
        System.out.println("\nFetch unexistent named graph");
        try {
            Model m2 = conn.fetch("http://example/g2");
        } catch (HttpException ex) {
            System.out.println(ex.getMessage());
        }
    }
    // Need to exit the JVM : there is a background server
    System.exit(0);
}
Also used : Dataset(org.apache.jena.query.Dataset) SecurityContextView(org.apache.jena.fuseki.access.SecurityContextView) FusekiServer(org.apache.jena.fuseki.main.FusekiServer) HttpException(org.apache.jena.atlas.web.HttpException) DatasetGraph(org.apache.jena.sparql.core.DatasetGraph) UserStore(org.eclipse.jetty.security.UserStore) AuthorizationService(org.apache.jena.fuseki.access.AuthorizationService) RDFConnection(org.apache.jena.rdfconnection.RDFConnection) HttpClient(java.net.http.HttpClient) Model(org.apache.jena.rdf.model.Model) HttpException(org.apache.jena.atlas.web.HttpException) Authenticator(java.net.Authenticator) SecurityRegistry(org.apache.jena.fuseki.access.SecurityRegistry)

Example 13 with HttpClient

use of java.net.http.HttpClient in project jena by apache.

the class AbstractTestWebappAuth_JDK method withAuthJDK.

public static QueryExecutionHTTP withAuthJDK(QueryExecutionHTTPBuilder builder, String user, String passwd) {
    Authenticator authenticator = AuthLib.authenticator(user, passwd);
    HttpClient hc = HttpClient.newBuilder().authenticator(authenticator).build();
    return builder.httpClient(hc).build();
}
Also used : HttpClient(java.net.http.HttpClient) Authenticator(java.net.Authenticator)

Example 14 with HttpClient

use of java.net.http.HttpClient in project jena by apache.

the class ExAuth02_QueryExecutionPW method exampleQueryAuthWithHttpClient.

// HttpClient
public static void exampleQueryAuthWithHttpClient() {
    System.out.println();
    System.out.println("HttpClient + QueryExecutionHTTP");
    Authenticator authenticator = AuthLib.authenticator("u", "p");
    HttpClient httpClient = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).authenticator(authenticator).build();
    try (QueryExecution qexec = QueryExecutionHTTP.service(dataURL).httpClient(httpClient).endpoint(dataURL).queryString("ASK{}").build()) {
        qexec.execAsk();
    }
}
Also used : HttpClient(java.net.http.HttpClient) Authenticator(java.net.Authenticator) QueryExecution(org.apache.jena.query.QueryExecution)

Example 15 with HttpClient

use of java.net.http.HttpClient in project jena by apache.

the class ExAuth04_ServicePW method exampleServiceByHttpClient.

private static void exampleServiceByHttpClient() {
    System.out.println();
    System.out.println("Custom HttpClient + SERVICE call");
    Authenticator authenticator = AuthLib.authenticator("u", "p");
    HttpClient httpClient = HttpClient.newBuilder().connectTimeout(Duration.ofSeconds(10)).authenticator(authenticator).build();
    Context cxt = ContextAccumulator.newBuilder().set(ARQ.httpQueryClient, httpClient).context();
    Query query = QueryFactory.create("SELECT * { SERVICE <" + dataURL + "> { ?s ?p ?o } }");
    Dataset emptyLocal = DatasetFactory.empty();
    try (QueryExecution qExec = QueryExecution.create().query(query).dataset(emptyLocal).context(cxt).build()) {
        System.out.println("Call using SERVICE...");
        ResultSet rs = qExec.execSelect();
        ResultSetFormatter.out(rs);
    }
}
Also used : Context(org.apache.jena.sparql.util.Context) HttpClient(java.net.http.HttpClient) Authenticator(java.net.Authenticator)

Aggregations

HttpClient (java.net.http.HttpClient)42 Authenticator (java.net.Authenticator)11 HttpRequest (java.net.http.HttpRequest)8 HttpResponse (java.net.http.HttpResponse)6 URI (java.net.URI)4 RDFConnection (org.apache.jena.rdfconnection.RDFConnection)4 RDFFormat (org.apache.jena.riot.RDFFormat)4 Context (org.apache.jena.sparql.util.Context)4 SerializedClassRunner (io.pravega.test.common.SerializedClassRunner)3 TestUtils (io.pravega.test.common.TestUtils)3 URISyntaxException (java.net.URISyntaxException)3 Duration (java.time.Duration)3 Pattern (java.util.regex.Pattern)3 GZIPInputStream (java.util.zip.GZIPInputStream)3 Cleanup (lombok.Cleanup)3 DatasetGraph (org.apache.jena.sparql.core.DatasetGraph)3 Assert.assertTrue (org.junit.Assert.assertTrue)3 Test (org.junit.Test)3 RunWith (org.junit.runner.RunWith)3 Counter (io.pravega.shared.metrics.Counter)2