Skip to content

Instantly share code, notes, and snippets.

View fitzoh's full-sized avatar

Andrew Fitzgerald fitzoh

View GitHub Profile
@fitzoh
fitzoh / index.html
Created June 6, 2015 03:13
Simple force layout using a web worker for layout
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.node {
stroke: #fff;
stroke-width: 1.5px;
}
.link {
@ConfigurationProperties("*.config")??
public class Config {
private String foo;
private String bar;
public String getFoo() {
return foo;
}
public void setFoo(String foo) {
@RunWith(PactRunner.class)
@Provider("some-provider")
@PactFolder("/some/path/pact")
@WebIntegrationTest("server.port=8080")
@SpringApplicationConfiguration(SomeSpringBootApplication.class)
public class ProviderPactTest {
private static TestContextManager testContextManager;
@TestTarget
public final HttpTarget target = new HttpTarget(8080);
{
"provider": {
"name": "Provider"
},
"consumer": {
"name": "Consumer"
},
"interactions": [
{
"description": "A fraudulent fraud check request",
@fitzoh
fitzoh / RoutesWithLoggingFilter.java
Last active February 10, 2018 21:10
simple-gateway-route-service
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder, SimpleLoggingFilter loggingFilter) {
return builder.routes()
.route(r ->
r.header(FORWARDED_URL, ".*")
.and()
.header(PROXY_METADATA, ".*")
.and()
.header(PROXY_SIGNATURE, ".*")
.filters(f -> f.add(loggingFilter))
@Component
public class SimpleLoggingFilter implements GatewayFilter {
private static final Logger log = LoggerFactory.getLogger(SimpleLoggingFilter.class);
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
log.info("Method:{} Host:{} Path:{} QueryParams:{}",
exchange.getRequest().getMethod(),
exchange.getRequest().getURI().getHost(),
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder, SimpleLoggingFilter loggingFilter) {
return builder.routes()
.route(r ->
r.header(FORWARDED_URL, ".*")
.and()
.header(PROXY_METADATA, ".*")
.and()
.header(PROXY_SIGNATURE, ".*")
.filters(f -> f.add(loggingFilter))
@Component
public class RouteServiceForwardingFilter implements GatewayFilter {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
try {
String forwardUrl = exchange.getRequest().getHeaders().get(FORWARDED_URL).get(0);
exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, new URI(forwardUrl));
return chain.filter(exchange);
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder,
SimpleLoggingFilter loggingFilter,
RouteServiceForwardingFilter forwardingFilter) {
return builder.routes()
.route(r ->
r.header(FORWARDED_URL, ".*")
.and()
.header(PROXY_METADATA, ".*")
.and()
@fitzoh
fitzoh / RouteIdTaggingGlobalFilter.java
Created November 1, 2018 00:37
spring cloud gateway span tagger
package com.cardinalhealth.connectgateway;
import brave.Span;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.cloud.gateway.route.Route;
import org.springframework.cloud.sleuth.instrument.web.TraceWebFilter;
import org.springframework.stereotype.Component;