@Override public MultiMap add(CharSequence name, Iterable<CharSequence> values) { String n = name.toString(); for (CharSequence seq: values) { add(n, seq.toString()); } return this; }
@Override public MultiMap add(CharSequence name, CharSequence value) { return add(name.toString(), value.toString()); }
@Override public MultiMap addAll(Map<String, String> map) { for (Map.Entry<String, String> entry: map.entrySet()) { add(entry.getKey(), entry.getValue()); } return this; }
private MultiMap set0(Iterable<Map.Entry<String, String>> map) { clear(); for (Map.Entry<String, String> entry: map) { add(entry.getKey(), entry.getValue()); } return this; }
@Override public MultiMap addAll(MultiMap headers) { for (Map.Entry<String, String> entry: headers.entries()) { add(entry.getKey(), entry.getValue()); } return this; }
@Override public MultiMap set(CharSequence name, Iterable<CharSequence> values) { remove(name); String n = name.toString(); for (CharSequence seq: values) { add(n, seq.toString()); } return this; }
@Override public MultiMap add(CharSequence name, Iterable<CharSequence> values) { String n = name.toString(); for (CharSequence seq: values) { add(n, seq.toString()); } return this; }
@Override public MultiMap addAll(Map<String, String> map) { for (Map.Entry<String, String> entry: map.entrySet()) { add(entry.getKey(), entry.getValue()); } return this; }
@Override public MultiMap add(CharSequence name, CharSequence value) { return add(name.toString(), value.toString()); }
@Override public MultiMap set(CharSequence name, Iterable<CharSequence> values) { remove(name); String n = name.toString(); for (CharSequence seq: values) { add(n, seq.toString()); } return this; }
@Override public MultiMap addAll(MultiMap headers) { for (Map.Entry<String, String> entry: headers.entries()) { add(entry.getKey(), entry.getValue()); } return this; }
private MultiMap set0(Iterable<Map.Entry<String, String>> map) { clear(); for (Map.Entry<String, String> entry: map) { add(entry.getKey(), entry.getValue()); } return this; }
private void writeRequestPerRuleMonitoringMetricsToStorage(String name){ if(StringUtils.isNotEmptyTrimmed(requestPerRuleMonitoringPath)) { String path = requestPerRuleMonitoringPath + "/" + uuid + "/" + name; JsonObject obj = new JsonObject().put("timestamp", System.currentTimeMillis()); MultiMap headers = new CaseInsensitiveHeaders().add(EXPIRE_AFTER_HEADER, String.valueOf(requestPerRuleExpiry)); storage.put(path, headers, Buffer.buffer(obj.encode()), status -> { if (status != StatusCode.OK.getStatusCode()) { log.error("Error putting resource " + path + " to storage"); } }); } else { log.warn("No path configured for the request per rule monitoring"); } }
appender.setName(filterDestination); appender.setAddress(destinationOptions.get(ADDRESS)); appender.setDeliveryOptionsHeaders(new CaseInsensitiveHeaders().add(META_DATA, destinationOptions.get(META_DATA))); appender.setTransmissionMode(EventBusWriter.TransmissionMode.fromString(destinationOptions.get(TRANSMISSION))); EnhancedPatternLayout layout = new EnhancedPatternLayout();
@Test public void testKeymapFromFilesystem(TestContext context) throws Exception { URL url = TermServer.class.getResource(SSHTermOptions.DEFAULT_INPUTRC); File f = new File(url.toURI()); Async async = context.async(); server = createServer(context, new HttpTermOptions().setPort(8080).setIntputrc(f.getAbsolutePath())); server.termHandler(term -> { term.close(); async.complete(); }); server.listen(context.asyncAssertSuccess(server -> { HttpClient client = vertx.createHttpClient(); client.websocket(8080, "localhost", basePath + "/shell/websocket", new CaseInsensitiveHeaders().add("Authorization", "Basic " + Base64.getEncoder().encodeToString("paulo:anothersecret".getBytes())), ws -> { ws.handler(buf -> { }); }, context::fail); })); } }
@Test public void testExternalAuthProviderFails(TestContext context) throws Exception { AtomicInteger count = new AtomicInteger(); AuthProvider authProvider = (authInfo, resultHandler) -> { count.incrementAndGet(); resultHandler.handle(Future.failedFuture("not authenticated")); }; Async async = context.async(); server = createServer(context, new HttpTermOptions().setPort(8080)); server.authProvider(authProvider); server.termHandler(term -> { context.fail(); }); server.listen(context.asyncAssertSuccess(server -> { HttpClient client = vertx.createHttpClient(); client.websocket(8080, "localhost", basePath + "/shell/websocket", new CaseInsensitiveHeaders().add("Authorization", "Basic " + Base64.getEncoder().encodeToString("paulo:anothersecret".getBytes())), ws -> { context.fail(); }, err -> { assertEquals(1, count.get()); async.complete(); }); })); }
@Test public void testAdditionalHeadersAttachment() { MailMessage message = new MailMessage(); MailAttachment attachment = new MailAttachment(); attachment.setData(Buffer.buffer("XXX")) .setHeaders(new CaseInsensitiveHeaders().add("X-Header", "value")); message.setAttachment(attachment); String mime = new MailEncoder(message, HOSTNAME).encode(); assertThat(mime, containsString("X-Header: value")); }
@Test public void testDifferentCharset(TestContext context) throws Exception { Async async = context.async(); server = createServer(context, new HttpTermOptions().setPort(8080).setCharset("ISO_8859_1")); server.termHandler(term -> { term.write("\u20AC"); term.close(); }); server.listen(context.asyncAssertSuccess(server -> { HttpClient client = vertx.createHttpClient(); client.websocket(8080, "localhost", basePath + "/shell/websocket", new CaseInsensitiveHeaders().add("Authorization", "Basic " + Base64.getEncoder().encodeToString("paulo:anothersecret".getBytes())), ws -> { ws.handler(buf -> { context.assertTrue(Arrays.equals(new byte[]{63}, buf.getBytes())); async.complete(); }); }, context::fail); })); }
@Test public void testSecure(TestContext context) { Async async = context.async(); server = createServer(context, new HttpTermOptions().setAuthOptions( new ShiroAuthOptions(). setType(ShiroAuthRealmType.PROPERTIES). setConfig(new JsonObject().put("properties_path", "classpath:test-auth.properties"))).setPort(8080)); server.termHandler(term -> { term.write("hello"); }); server.listen(context.asyncAssertSuccess(server -> { HttpClient client = vertx.createHttpClient(); client.websocket(8080, "localhost", basePath + "/shell/websocket", ws -> { context.fail(); }, err -> { // Retry now with auth client.websocket(8080, "localhost", basePath + "/shell/websocket", new CaseInsensitiveHeaders().add("Authorization", "Basic " + Base64.getEncoder().encodeToString("tim:sausages".getBytes())), ws -> { ws.handler(buf -> { context.assertEquals("hello", buf.toString()); async.complete(); }); }, context::fail); }); })); }
req.send(handler); req.sendBuffer(Buffer.buffer(), handler); req.sendForm(new CaseInsensitiveHeaders().add("a", "b"), handler); req.sendJson("", handler); req.sendJsonObject(new JsonObject(), handler);