Skip to content

Commit 2850e9c

Browse files
johannestangLEDfan
authored andcommitted
Add load balancer support for SAML authentication.
1 parent f03227e commit 2850e9c

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

src/main/java/eu/openanalytics/containerproxy/auth/impl/saml/SAMLConfiguration.java

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import org.springframework.security.core.userdetails.UsernameNotFoundException;
4848
import org.springframework.security.saml.*;
4949
import org.springframework.security.saml.context.SAMLContextProviderImpl;
50+
import org.springframework.security.saml.context.SAMLContextProviderLB;
5051
import org.springframework.security.saml.key.EmptyKeyManager;
5152
import org.springframework.security.saml.key.JKSKeyManager;
5253
import org.springframework.security.saml.key.KeyManager;
@@ -281,7 +282,28 @@ public SAMLDefaultLogger samlLogger() {
281282

282283
@Bean
283284
public SAMLContextProviderImpl contextProvider() {
284-
return new SAMLContextProviderImpl();
285+
SAMLContextProviderImpl provider;
286+
String serverName = environment.getProperty("proxy.saml.lb-server-name");
287+
if (serverName != null && !serverName.isEmpty()) {
288+
SAMLContextProviderLB lbProvider = new SAMLContextProviderLB();
289+
lbProvider.setServerName(serverName);
290+
String contextPath = environment.getProperty("proxy.saml.lb-context-path");
291+
if (contextPath == null) contextPath = "/";
292+
lbProvider.setContextPath(contextPath);
293+
String portInUrl = environment.getProperty("proxy.saml.lb-port-in-url");
294+
if (portInUrl == null) portInUrl = "false";
295+
lbProvider.setIncludeServerPortInRequestURL(Boolean.valueOf(portInUrl));
296+
String scheme = environment.getProperty("proxy.saml.lb-scheme");
297+
if (scheme == null) scheme = "https";
298+
lbProvider.setScheme(scheme);
299+
String serverPort = environment.getProperty("proxy.saml.lb-server-port");
300+
if (serverPort == null) serverPort = "443";
301+
lbProvider.setServerPort(Integer.valueOf(serverPort));
302+
provider = lbProvider;
303+
} else {
304+
provider = new SAMLContextProviderImpl();
305+
}
306+
return provider;
285307
}
286308

287309
@Bean

0 commit comments

Comments
 (0)