protected InputStream getResourceAsStream(String path) { InputStream is = ClassLoaderUtils.getResourceAsStream(path, AbstractHTTPServlet.class); if (is == null && getBus() != null) { ResourceManager rm = getBus().getExtension(ResourceManager.class); if (rm != null) { is = rm.resolveResource(path, InputStream.class); } } return is; }
public static InputStream getClasspathResourceStream(String path, Class<?> callingClass, Bus bus) { InputStream is = ClassLoaderUtils.getResourceAsStream(path, callingClass); return is == null ? getResource(path, InputStream.class, bus) : is; }
public static InputStream getClasspathResourceStream(String path, Class<?> callingClass, Bus bus) { InputStream is = ClassLoaderUtils.getResourceAsStream(path, callingClass); return is == null ? getResource(path, InputStream.class, bus) : is; }
@Override public PublicKey getKey(String keyId) { KeyStore keyStore; try { keyStore = KeyStore.getInstance("JKS"); keyStore.load(ClassLoaderUtils.getResourceAsStream("keys/alice.jks", this.getClass()), "password".toCharArray()); return keyStore.getCertificate("alice").getPublicKey(); } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | IOException e) { e.printStackTrace(); return null; } } }
private static InputStream getResourceAsStream(String resource) { InputStream is = ClassLoaderUtils.getResourceAsStream(resource, TLSParameterJaxBUtils.class); if (is == null) { Bus bus = BusFactory.getThreadDefaultBus(true); ResourceManager rm = bus.getExtension(ResourceManager.class); if (rm != null) { is = rm.getResourceAsStream(resource); } } return is; }
private static InputStream getResourceAsStream(String resource) { InputStream is = ClassLoaderUtils.getResourceAsStream(resource, SSLUtils.class); if (is == null) { Bus bus = BusFactory.getThreadDefaultBus(true); ResourceManager rm = bus.getExtension(ResourceManager.class); if (rm != null) { is = rm.getResourceAsStream(resource); } } return is; }
private static InputStream getResourceAsStream(String resource) { InputStream is = ClassLoaderUtils.getResourceAsStream(resource, SSLUtils.class); if (is == null) { Bus bus = BusFactory.getThreadDefaultBus(true); ResourceManager rm = bus.getExtension(ResourceManager.class); if (rm != null) { is = rm.getResourceAsStream(resource); } } return is; }
private static InputStream getResourceAsStream(String resource) { InputStream is = ClassLoaderUtils.getResourceAsStream(resource, TLSParameterJaxBUtils.class); if (is == null) { Bus bus = BusFactory.getThreadDefaultBus(true); ResourceManager rm = bus.getExtension(ResourceManager.class); if (rm != null) { is = rm.getResourceAsStream(resource); } } return is; }
private static InputStream getResourceAsStream(String resource) { InputStream is = ClassLoaderUtils.getResourceAsStream(resource, TLSParameterJaxBUtils.class); if (is == null) { Bus bus = BusFactory.getThreadDefaultBus(true); ResourceManager rm = bus.getExtension(ResourceManager.class); if (rm != null) { is = rm.getResourceAsStream(resource); } } return is; }
private static InputStream getResourceAsStream(String resource) { InputStream is = ClassLoaderUtils.getResourceAsStream(resource, TLSParameterJaxBUtils.class); if (is == null) { Bus bus = BusFactory.getThreadDefaultBus(true); ResourceManager rm = bus.getExtension(ResourceManager.class); if (rm != null) { is = rm.getResourceAsStream(resource); } } return is; }
protected InputStream getResourceAsStream(String path) { InputStream is = ClassLoaderUtils.getResourceAsStream(path, AbstractHTTPServlet.class); if (is == null && getBus() != null) { ResourceManager rm = getBus().getExtension(ResourceManager.class); if (rm != null) { is = rm.resolveResource(path, InputStream.class); } } return is; }
protected InputStream getResourceAsStream(String path) { InputStream is = ClassLoaderUtils.getResourceAsStream(path, AbstractHTTPServlet.class); if (is == null && getBus() != null) { ResourceManager rm = getBus().getExtension(ResourceManager.class); if (rm != null) { is = rm.resolveResource(path, InputStream.class); } } return is; }
private SSLContext createSSLContext() throws Exception { TLSClientParameters tlsParams = new TLSClientParameters(); try (InputStream keystore = ClassLoaderUtils.getResourceAsStream("keys/Truststore.jks", this.getClass())) { KeyStore trustStore = loadStore(keystore, "password"); TrustManagerFactory tmf = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); tmf.init(trustStore); tlsParams.setTrustManagers(tmf.getTrustManagers()); } try (InputStream keystore = ClassLoaderUtils.getResourceAsStream("keys/Morpit.jks", this.getClass())) { KeyStore keyStore = loadStore(keystore, "password"); KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); kmf.init(keyStore, "password".toCharArray()); tlsParams.setKeyManagers(kmf.getKeyManagers()); } return SSLUtils.getSSLContext(tlsParams); } }
@Test public void testWrongHTTPMethod() throws Exception { URL busFile = JAXRSHTTPSignatureTest.class.getResource("client.xml"); ClientTestFilter signatureFilter = new ClientTestFilter(); signatureFilter.setHttpMethod("GET"); KeyStore keyStore = KeyStore.getInstance("JKS"); keyStore.load(ClassLoaderUtils.getResourceAsStream("keys/alice.jks", this.getClass()), "password".toCharArray()); PrivateKey privateKey = (PrivateKey)keyStore.getKey("alice", "password".toCharArray()); assertNotNull(privateKey); MessageSigner messageSigner = new MessageSigner(privateKey, "custom_key_id"); signatureFilter.setMessageSigner(messageSigner); String address = "https://localhost:" + PORT + "/httpsig/bookstore/books"; WebClient client = WebClient.create(address, Collections.singletonList(signatureFilter), busFile.toString()); client.type("application/xml").accept("application/xml"); Response response = client.post(new Book("CXF", 126L)); assertEquals(response.getStatus(), 400); }
@Test public void testNonMatchingSignatureAlgorithm() throws Exception { URL busFile = JAXRSHTTPSignatureTest.class.getResource("client.xml"); CreateSignatureClientFilter signatureFilter = new CreateSignatureClientFilter(); KeyStore keyStore = KeyStore.getInstance("JKS"); keyStore.load(ClassLoaderUtils.getResourceAsStream("keys/alice.jks", this.getClass()), "password".toCharArray()); PrivateKey privateKey = (PrivateKey)keyStore.getKey("alice", "password".toCharArray()); assertNotNull(privateKey); MessageSigner messageSigner = new MessageSigner("rsa-sha512", "SHA-256", privateKey, "custom_key_id"); signatureFilter.setMessageSigner(messageSigner); String address = "https://localhost:" + PORT + "/httpsig/bookstore/books"; WebClient client = WebClient.create(address, Collections.singletonList(signatureFilter), busFile.toString()); client.type("application/xml").accept("application/xml"); Response response = client.post(new Book("CXF", 126L)); assertEquals(response.getStatus(), 400); }
@Test public void testChangedSignatureMethod() throws Exception { URL busFile = JAXRSHTTPSignatureTest.class.getResource("client.xml"); ClientTestFilter signatureFilter = new ClientTestFilter(); signatureFilter.setChangeSignatureAlgorithm(true); KeyStore keyStore = KeyStore.getInstance("JKS"); keyStore.load(ClassLoaderUtils.getResourceAsStream("keys/alice.jks", this.getClass()), "password".toCharArray()); PrivateKey privateKey = (PrivateKey)keyStore.getKey("alice", "password".toCharArray()); assertNotNull(privateKey); MessageSigner messageSigner = new MessageSigner(privateKey, "custom_key_id"); signatureFilter.setMessageSigner(messageSigner); String address = "https://localhost:" + PORT + "/httpsig/bookstore/books"; WebClient client = WebClient.create(address, Collections.singletonList(signatureFilter), busFile.toString()); client.type("application/xml").accept("application/xml"); Response response = client.post(new Book("CXF", 126L)); assertEquals(response.getStatus(), 400); }
@Test public void testWrongURI() throws Exception { URL busFile = JAXRSHTTPSignatureTest.class.getResource("client.xml"); ClientTestFilter signatureFilter = new ClientTestFilter(); signatureFilter.setUri("/httpsig/bookstore/books2"); KeyStore keyStore = KeyStore.getInstance("JKS"); keyStore.load(ClassLoaderUtils.getResourceAsStream("keys/alice.jks", this.getClass()), "password".toCharArray()); PrivateKey privateKey = (PrivateKey)keyStore.getKey("alice", "password".toCharArray()); assertNotNull(privateKey); MessageSigner messageSigner = new MessageSigner(privateKey, "custom_key_id"); signatureFilter.setMessageSigner(messageSigner); String address = "https://localhost:" + PORT + "/httpsig/bookstore/books"; WebClient client = WebClient.create(address, Collections.singletonList(signatureFilter), busFile.toString()); client.type("application/xml").accept("application/xml"); Response response = client.post(new Book("CXF", 126L)); assertEquals(response.getStatus(), 400); }
@Test public void testHttpSignature() throws Exception { URL busFile = JAXRSHTTPSignatureTest.class.getResource("client.xml"); CreateSignatureClientFilter signatureFilter = new CreateSignatureClientFilter(); KeyStore keyStore = KeyStore.getInstance("JKS"); keyStore.load(ClassLoaderUtils.getResourceAsStream("keys/alice.jks", this.getClass()), "password".toCharArray()); PrivateKey privateKey = (PrivateKey)keyStore.getKey("alice", "password".toCharArray()); assertNotNull(privateKey); MessageSigner messageSigner = new MessageSigner(privateKey, "custom_key_id"); signatureFilter.setMessageSigner(messageSigner); String address = "https://localhost:" + PORT + "/httpsig/bookstore/books"; WebClient client = WebClient.create(address, Collections.singletonList(signatureFilter), busFile.toString()); client.type("application/xml").accept("application/xml"); Response response = client.post(new Book("CXF", 126L)); assertEquals(response.getStatus(), 200); Book returnedBook = response.readEntity(Book.class); assertEquals(126L, returnedBook.getId()); }
@Test public void testHttpSignatureRsaSha512() throws Exception { URL busFile = JAXRSHTTPSignatureTest.class.getResource("client.xml"); CreateSignatureClientFilter signatureFilter = new CreateSignatureClientFilter(); KeyStore keyStore = KeyStore.getInstance("JKS"); keyStore.load(ClassLoaderUtils.getResourceAsStream("keys/alice.jks", this.getClass()), "password".toCharArray()); PrivateKey privateKey = (PrivateKey)keyStore.getKey("alice", "password".toCharArray()); assertNotNull(privateKey); MessageSigner messageSigner = new MessageSigner("rsa-sha512", "SHA-256", privateKey, "custom_key_id"); signatureFilter.setMessageSigner(messageSigner); String address = "https://localhost:" + PORT + "/httpsigrsasha512/bookstore/books"; WebClient client = WebClient.create(address, Collections.singletonList(signatureFilter), busFile.toString()); client.type("application/xml").accept("application/xml"); Response response = client.post(new Book("CXF", 126L)); assertEquals(response.getStatus(), 200); Book returnedBook = response.readEntity(Book.class); assertEquals(126L, returnedBook.getId()); }
@Test public void testGetBook() throws Exception { ClientBuilder builder = ClientBuilder.newBuilder(); try (InputStream keystore = ClassLoaderUtils.getResourceAsStream("keys/Truststore.jks", this.getClass())) { KeyStore trustStore = loadStore(keystore, "password"); builder.trustStore(trustStore); } builder.hostnameVerifier(new AllowAllHostnameVerifier()); try (InputStream keystore = ClassLoaderUtils.getResourceAsStream("keys/Morpit.jks", this.getClass())) { KeyStore keyStore = loadStore(keystore, "password"); builder.keyStore(keyStore, "password"); } Client client = builder.build(); client.register(new LoggingFeature()); WebTarget target = client.target("https://localhost:" + PORT + "/bookstore/securebooks/123"); Book b = target.request().accept(MediaType.APPLICATION_XML_TYPE).get(Book.class); assertEquals(123, b.getId()); }