Skip to content

Commit fd4c981

Browse files
committed
chore: update proxy config with basic auth
1 parent 456b9b7 commit fd4c981

4 files changed

Lines changed: 35 additions & 16 deletions

File tree

src/main/java/com/whiskels/notifier/infrastructure/config/feign/FeignProxyConfig.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import java.net.InetSocketAddress;
1414
import java.net.Proxy;
15+
import java.util.Base64;
1516
import java.util.concurrent.TimeUnit;
1617

1718
public class FeignProxyConfig {
@@ -32,10 +33,12 @@ private static OkHttpClient proxiedHttpClient(final ProxyPropertiesProvider prop
3233
final int maxIdleConnections,
3334
final int keepAliveDurationMinutes
3435
) {
36+
String auth = STR."\{propertiesProvider.getProxyUser()}:\{propertiesProvider.getProxyPassword()}";
3537
Authenticator proxyAuthenticator = (_, response) -> {
36-
String credential = Credentials.basic(propertiesProvider.getUser(), propertiesProvider.getPassword());
38+
String credential = Credentials.basic(propertiesProvider.getProxyUser(), propertiesProvider.getProxyPassword());
3739
return response.request().newBuilder()
3840
.header(HttpHeaders.PROXY_AUTHORIZATION, credential)
41+
.header(HttpHeaders.AUTHORIZATION, STR."Basic \{Base64.getEncoder().encodeToString(auth.getBytes())}")
3942
.build();
4043
};
4144

@@ -47,6 +50,6 @@ private static OkHttpClient proxiedHttpClient(final ProxyPropertiesProvider prop
4750
}
4851

4952
private static Proxy createProxy(ProxyPropertiesProvider propertiesProvider) {
50-
return new Proxy(Proxy.Type.HTTP, new InetSocketAddress(propertiesProvider.getHost(), propertiesProvider.getPort()));
53+
return new Proxy(Proxy.Type.HTTP, new InetSocketAddress(propertiesProvider.getProxyHost(), propertiesProvider.getProxyPort()));
5154
}
5255
}

src/main/java/com/whiskels/notifier/infrastructure/config/feign/FixieProxyPropertiesProvider.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,25 @@
1212
@ConditionalOnProperty(FixieProxyPropertiesProvider.FIXIE_ENV_VAR)
1313
class FixieProxyPropertiesProvider implements ProxyPropertiesProvider {
1414
static final String FIXIE_ENV_VAR = "FIXIE_URL";
15+
static final String USER_ENV_VAR = "PROXIED_USER_NAME";
16+
static final String PASSWORD_ENV_VAR = "PROXIED_USER_PASSWORD";
1517

18+
private final String proxyUser;
19+
private final String proxyPassword;
20+
private final String proxyHost;
21+
private final int proxyPort;
1622
private final String user;
1723
private final String password;
18-
private final String host;
19-
private final int port;
2024

2125
public FixieProxyPropertiesProvider(final Environment environment) {
2226
final String fixieUrl = environment.getProperty(FIXIE_ENV_VAR);
2327
Objects.requireNonNull(fixieUrl);
2428
final String[] fixieValues = fixieUrl.split("[/(:\\/@)/]+");
25-
this.user = fixieValues[1];
26-
this.password = fixieValues[2];
27-
this.host = fixieValues[3];
28-
this.port = Integer.parseInt(fixieValues[4]);
29+
this.proxyUser = fixieValues[1];
30+
this.proxyPassword = fixieValues[2];
31+
this.proxyHost = fixieValues[3];
32+
this.proxyPort = Integer.parseInt(fixieValues[4]);
33+
this.user = environment.getProperty(USER_ENV_VAR);
34+
this.password = environment.getProperty(PASSWORD_ENV_VAR);
2935
}
3036
}

src/main/java/com/whiskels/notifier/infrastructure/config/feign/ProxyPropertiesProvider.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,15 @@
22

33

44
interface ProxyPropertiesProvider {
5-
String getUser();
5+
String getProxyUser();
66

7-
String getPassword();
7+
String getProxyPassword();
8+
9+
String getProxyHost();
810

9-
String getHost();
11+
int getProxyPort();
1012

11-
int getPort();
13+
String getUser();
14+
15+
String getPassword();
1216
}

src/test/java/com/whiskels/notifier/infrastructure/config/feign/FixieProxyPropertiesProviderTest.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,19 @@ public class FixieProxyPropertiesProviderTest {
2222
void testConstructorSuccess() {
2323
when(environment.getProperty(FixieProxyPropertiesProvider.FIXIE_ENV_VAR))
2424
.thenReturn("http://user:password@host:8080");
25+
when(environment.getProperty(FixieProxyPropertiesProvider.USER_ENV_VAR))
26+
.thenReturn("admin");
27+
when(environment.getProperty(FixieProxyPropertiesProvider.PASSWORD_ENV_VAR))
28+
.thenReturn("pw");
2529

2630
FixieProxyPropertiesProvider fixieProxyPropertiesProvider = new FixieProxyPropertiesProvider(environment);
2731

28-
assertEquals("user", fixieProxyPropertiesProvider.getUser());
29-
assertEquals("password", fixieProxyPropertiesProvider.getPassword());
30-
assertEquals("host", fixieProxyPropertiesProvider.getHost());
31-
assertEquals(8080, fixieProxyPropertiesProvider.getPort());
32+
assertEquals("user", fixieProxyPropertiesProvider.getProxyUser());
33+
assertEquals("password", fixieProxyPropertiesProvider.getProxyPassword());
34+
assertEquals("host", fixieProxyPropertiesProvider.getProxyHost());
35+
assertEquals(8080, fixieProxyPropertiesProvider.getProxyPort());
36+
assertEquals("admin", fixieProxyPropertiesProvider.getUser());
37+
assertEquals("pw", fixieProxyPropertiesProvider.getPassword());
3238
}
3339

3440
@Test

0 commit comments

Comments
 (0)