コード例 #1
0
 protected void testForbiddenImpersonation(String admin, String adminRealm) {
   Client client = createClient(admin, adminRealm);
   WebTarget impersonate = createImpersonateTarget(client);
   Response response = impersonate.request().post(null);
   response.close();
   client.close();
 }
コード例 #2
0
 public void testErrorHandling() throws Exception {
   ErrorServlet.authError = null;
   Client client = ClientBuilder.newClient();
   // make sure
   Response response = client.target(APP_SERVER_BASE_URL + "/employee-sig/").request().get();
   response.close();
   SAML2ErrorResponseBuilder builder =
       new SAML2ErrorResponseBuilder()
           .destination(APP_SERVER_BASE_URL + "/employee-sig/saml")
           .issuer(AUTH_SERVER_URL + "/realms/demo")
           .status(JBossSAMLURIConstants.STATUS_REQUEST_DENIED.get());
   BaseSAML2BindingBuilder binding = new BaseSAML2BindingBuilder().relayState(null);
   Document document = builder.buildDocument();
   URI uri =
       binding
           .redirectBinding(document)
           .generateURI(APP_SERVER_BASE_URL + "/employee-sig/saml", false);
   response = client.target(uri).request().get();
   String errorPage = response.readEntity(String.class);
   response.close();
   Assert.assertTrue(errorPage.contains("Error Page"));
   client.close();
   Assert.assertNotNull(ErrorServlet.authError);
   SamlAuthenticationError error = (SamlAuthenticationError) ErrorServlet.authError;
   Assert.assertEquals(SamlAuthenticationError.Reason.ERROR_STATUS, error.getReason());
   Assert.assertNotNull(error.getStatus());
   ErrorServlet.authError = null;
 }
コード例 #3
0
  public static void uploadSP() {
    String token = createToken();
    final String authHeader = "Bearer " + token;
    ClientRequestFilter authFilter =
        new ClientRequestFilter() {
          @Override
          public void filter(ClientRequestContext requestContext) throws IOException {
            requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, authHeader);
          }
        };
    Client client = ClientBuilder.newBuilder().register(authFilter).build();
    UriBuilder authBase = UriBuilder.fromUri("http://localhost:8081/auth");
    WebTarget adminRealms = client.target(AdminRoot.realmsUrl(authBase));

    MultipartFormDataOutput formData = new MultipartFormDataOutput();
    InputStream is = SamlBindingTest.class.getResourceAsStream("/saml/sp-metadata.xml");
    Assert.assertNotNull(is);
    formData.addFormData("file", is, MediaType.APPLICATION_XML_TYPE);

    WebTarget upload =
        adminRealms.path("demo/application-importers/saml2-entity-descriptor/upload");
    System.out.println(upload.getUri());
    Response response =
        upload.request().post(Entity.entity(formData, MediaType.MULTIPART_FORM_DATA));
    Assert.assertEquals(204, response.getStatus());
    response.close();
    client.close();
  }
コード例 #4
0
 /** Clean up resources. */
 @Override
 public void destroyResources() {
   if (eurekaConnCleaner != null) {
     // Execute the connection cleaner one final time during shutdown
     eurekaConnCleaner.execute(connectionCleanerTask);
     eurekaConnCleaner.shutdown();
   }
   if (apacheHttpClient != null) {
     apacheHttpClient.close();
   }
 }
コード例 #5
0
 @Override
 public void shutDown() {
   try {
     try {
       client.close();
     } finally {
       executorService.shutdown();
     }
   } finally {
     super.shutDown();
   }
   LOGGER.info("The documents4j remote converter has shut down successfully (URI: {})", baseUri);
 }
コード例 #6
0
  @Test
  public void testGetChaptersAsJson() throws JsonParseException, JsonMappingException, IOException {
    Client client = ClientBuilder.newClient();
    WebTarget target = client.target(AppHelper.getServiceUrl("chapters"));

    String content = target.request(MediaType.APPLICATION_JSON).get(String.class);
    client.close();

    ObjectMapper mapper = new ObjectMapper();
    Chapters chapters = mapper.readValue(content, Chapters.class);

    assertEquals(new Integer(50), chapters.getSize());
    assertEquals(MAX_ELEMENTS_BY_QUERY, chapters.getChapters().size());
  }
コード例 #7
0
  @Test
  public void testGetChaptersAsXml() throws JAXBException {
    Client client = ClientBuilder.newClient();
    WebTarget target = client.target(AppHelper.getServiceUrl("chapters"));

    String content = target.request(MediaType.APPLICATION_XML).get(String.class);
    client.close();

    Unmarshaller u = JAXBContext.newInstance(Chapters.class).createUnmarshaller();
    Chapters chapters = (Chapters) u.unmarshal(new StringReader(content));

    assertEquals(new Integer(50), chapters.getSize());
    assertEquals(MAX_ELEMENTS_BY_QUERY, chapters.getChapters().size());
  }
コード例 #8
0
  @Test
  public void testGetChapterAsJson() throws JsonParseException, JsonMappingException, IOException {
    Client client = ClientBuilder.newClient();
    WebTarget target = client.target(AppHelper.getServiceUrl("chapters/1"));

    String content = target.request(MediaType.APPLICATION_JSON).get(String.class);
    client.close();

    ObjectMapper mapper = new ObjectMapper();
    Chapter chapter = mapper.readValue(content, Chapter.class);

    assertEquals(new Integer(1), chapter.getChapterId());
    assertEquals(new Integer(1), chapter.getBookId());
    assertEquals("1", chapter.getNumber());
  }
コード例 #9
0
  @Test
  public void testGetChapterAsXml() throws JAXBException {
    Client client = ClientBuilder.newClient();
    WebTarget target = client.target(AppHelper.getServiceUrl("chapters/1"));

    String content = target.request(MediaType.APPLICATION_XML).get(String.class);
    client.close();

    Unmarshaller u = JAXBContext.newInstance(Chapters.class).createUnmarshaller();
    Chapter chapter = (Chapter) u.unmarshal(new StringReader(content));

    assertEquals(new Integer(1), chapter.getChapterId());
    assertEquals(new Integer(1), chapter.getBookId());
    assertEquals("1", chapter.getNumber());
  }
コード例 #10
0
ファイル: JerseyTest.java プロジェクト: ShengyuanLu/jersey
  /**
   * Utility method that safely closes a client instance without throwing an exception.
   *
   * @param clients client instances to close. Each instance may be {@code null}.
   * @since 2.5
   */
  public static void closeIfNotNull(final Client... clients) {
    if (clients == null || clients.length == 0) {
      return;
    }

    for (final Client c : clients) {
      if (c == null) {
        continue;
      }
      try {
        c.close();
      } catch (final Throwable t) {
        LOGGER.log(Level.WARNING, "Error closing a client instance.", t);
      }
    }
  }
コード例 #11
0
  public synchronized void dispose() {
    if (httpClient != null) {
      try {
        httpClient.close();
      } catch (IOException e) {
        // eat it
      }
      httpClient = null;
    }

    if (client != null) {
      client.close();
      client = null;
    }

    disposed = true;
  }
コード例 #12
0
  protected void testSuccessfulImpersonation(String admin, String adminRealm) {
    Client client = createClient(admin, adminRealm);
    WebTarget impersonate = createImpersonateTarget(client);
    Map data = impersonate.request().post(null, Map.class);
    Assert.assertNotNull(data);
    Assert.assertNotNull(data.get("redirect"));

    events
        .expect(EventType.IMPERSONATE)
        .session(AssertEvents.isUUID())
        .user(impersonatedUserId)
        .detail(Details.IMPERSONATOR, admin)
        .detail(Details.IMPERSONATOR_REALM, adminRealm)
        .client((String) null)
        .assertEvent();

    client.close();
  }
コード例 #13
0
  /** Shutdown this processor. */
  @PreDestroy
  public void shutDown() {
    dequeuerIsActive = false;
    cleanerIsActive = false;

    // CHECKSTYLE:OFF
    if (workers != null) {
      try {
        workers.shutdown();
      } catch (Exception ignore) {
      }
    }
    if (client != null) {
      try {
        client.close();
      } catch (Exception ignore) {
      }
    }
    // CHECKSTYLE:ON
  }
コード例 #14
0
  public void testSavedPostRequest() throws Exception {
    // test login to customer-portal which does a bearer request to customer-db
    driver.navigate().to(APP_SERVER_BASE_URL + "/input-portal");
    System.err.println("*********** Current url: " + driver.getCurrentUrl());
    Assert.assertTrue(driver.getCurrentUrl().startsWith(APP_SERVER_BASE_URL + "/input-portal"));
    inputPage.execute("hello");

    assertAtLoginPagePostBinding();
    loginPage.login("*****@*****.**", "password");
    System.out.println("Current url: " + driver.getCurrentUrl());
    Assert.assertEquals(driver.getCurrentUrl(), APP_SERVER_BASE_URL + "/input-portal/secured/post");
    String pageSource = driver.getPageSource();
    System.out.println(pageSource);
    Assert.assertTrue(pageSource.contains("parameter=hello"));
    // test that user principal and KeycloakSecurityContext available
    driver.navigate().to(APP_SERVER_BASE_URL + "/input-portal/insecure");
    System.out.println("insecure: ");
    System.out.println(driver.getPageSource());
    Assert.assertTrue(driver.getPageSource().contains("Insecure Page"));
    if (System.getProperty("insecure.user.principal.unsupported") == null)
      Assert.assertTrue(driver.getPageSource().contains("UserPrincipal"));

    // test logout

    driver.navigate().to(APP_SERVER_BASE_URL + "/input-portal?GLO=true");

    // test unsecured POST KEYCLOAK-901

    Client client = ClientBuilder.newClient();
    Form form = new Form();
    form.param("parameter", "hello");
    String text =
        client
            .target(APP_SERVER_BASE_URL + "/input-portal/unsecured")
            .request()
            .post(Entity.form(form), String.class);
    Assert.assertTrue(text.contains("parameter=hello"));
    client.close();
  }
コード例 #15
0
  @Test
  public void testGetEmployee() throws IOException {
    if (null == cookie) {
      fail("cannot login!!!");
    }

    Client client = new ResteasyClientBuilder().build();
    client.register(new CookieRequestFilter(cookie));
    WebTarget target = client.target(baseUrl + "/rest/ag/employee/100");
    Response response = target.request().get();

    // System.out.println( response.readEntity(String.class));
    int status = response.getStatus();
    System.out.println("response status code: " + status);
    boolean hasEntity = response.hasEntity();
    System.out.println("response has entity? " + hasEntity);

    Employee epl = response.readEntity(Employee.class);
    System.out.println(epl.toString());

    client.close();
    assertEquals("same first name", "Beyond", epl.getFirstName());
  }
コード例 #16
0
 @AfterClass
 public static void after() throws Exception {
   client.close();
   client = null;
 }
 @AfterClass
 public static void closeClient() {
   client.close();
 }
コード例 #18
0
 @Override
 public void close() throws IOException {
   client.close();
 }
コード例 #19
0
  /**
   * uploads zip file using the input HTTP URL
   *
   * @param httpURL
   * @param filePath
   * @param filename
   * @return
   * @throws Exception
   */
  public static String testUploadService(String httpURL, File filePath) throws Exception {

    // local variables
    ClientConfig clientConfig = null;
    Client client = null;
    WebTarget webTarget = null;
    Invocation.Builder invocationBuilder = null;
    Response response = null;
    FileDataBodyPart fileDataBodyPart = null;
    FormDataMultiPart formDataMultiPart = null;
    int responseCode;
    String responseMessageFromServer = null;
    String responseString = null;

    try {
      // invoke service after setting necessary parameters
      clientConfig = new ClientConfig();
      clientConfig.register(MultiPartFeature.class);
      client = ClientBuilder.newClient(clientConfig);
      webTarget = client.target(httpURL);

      // set file upload values
      fileDataBodyPart =
          new FileDataBodyPart("uploadFile", filePath, MediaType.APPLICATION_OCTET_STREAM_TYPE);
      formDataMultiPart = new FormDataMultiPart();
      formDataMultiPart.bodyPart(fileDataBodyPart);

      StreamDataBodyPart bodyPart = new StreamDataBodyPart();

      // invoke service
      invocationBuilder = webTarget.request();
      //          invocationBuilder.header("Authorization", "Basic " + authorization);
      response =
          invocationBuilder.post(Entity.entity(formDataMultiPart, MediaType.MULTIPART_FORM_DATA));

      // get response code
      responseCode = response.getStatus();
      System.out.println("Response code: " + responseCode);

      if (response.getStatus() != 200) {
        throw new RuntimeException("Failed with HTTP error code : " + responseCode);
      }

      // get response message
      responseMessageFromServer = response.getStatusInfo().getReasonPhrase();
      System.out.println("ResponseMessageFromServer: " + responseMessageFromServer);

      // get response string
      responseString = response.readEntity(String.class);
    } catch (Exception ex) {
      ex.printStackTrace();
    } finally {
      // release resources, if any
      fileDataBodyPart.cleanup();
      formDataMultiPart.cleanup();
      formDataMultiPart.close();
      response.close();
      client.close();
    }
    return responseString;
  }
コード例 #20
0
 @Override
 public void dispose(Client instance) {
   instance.close();
 }
コード例 #21
0
 @After
 public void tearDown() throws Exception {
   client.close();
 }
コード例 #22
0
 @After
 public void after() {
   client.close();
 }
コード例 #23
0
 @After
 public void tear() {
   client.close();
 }
コード例 #24
0
 @AfterClass
 public static void afterClass() {
   client.close();
 }
コード例 #25
0
 public void close() {
   client.close();
 }
コード例 #26
0
 public void close() {
   // client.destroy();
   client.close();
 }
コード例 #27
0
ファイル: PrimitiveTest.java プロジェクト: Arvoreen/Resteasy
 @AfterClass
 public static void cleanup() {
   client.close();
 }
コード例 #28
0
 @Override
 public void close() throws IOException {
   checkNotNull(client, "Factory not initialized. You probably forgot to call init()!");
   client.close();
 }