[java-idp-testbed] branch main updated: Adjust some test class usage, and inline all the BOMs.
Scott Cantor
cantor.2 at osu.edu
Wed Nov 1 18:25:34 UTC 2023
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-idp-testbed.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-testbed.git;a=commit;h=1a5b30f48e983c68378a4160d462dc0192b24d77
The following commit(s) were added to refs/heads/main by this push:
new 1a5b30f Adjust some test class usage, and inline all the BOMs.
1a5b30f is described below
commit 1a5b30f48e983c68378a4160d462dc0192b24d77
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Nov 1 14:25:31 2023 -0400
Adjust some test class usage, and inline all the BOMs.
---
pom.xml | 381 ++++++++++++++++++++++++++-----
src/main/java/sp/BaseSAMLController.java | 1 -
src/main/java/sp/SAML2Controller.java | 273 ++++++++++++----------
3 files changed, 481 insertions(+), 174 deletions(-)
diff --git a/pom.xml b/pom.xml
index 0c093f0..9f5caca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,12 +15,17 @@
<properties>
<idp.groupId>net.shibboleth.idp</idp.groupId>
- <idp.version>5.0.1-SNAPSHOT</idp.version>
- <shib-attribute.version>5.0.1-SNAPSHOT</shib-attribute.version>
- <shib-metadata.version>5.0.1-SNAPSHOT</shib-metadata.version>
+ <idp.version>5.1.0-SNAPSHOT</idp.version>
+ <shib-profile.groupId>net.shibboleth</shib-profile.groupId>
+ <shib-profile.version>5.0.0</shib-profile.version>
+ <shib-attribute.groupId>net.shibboleth</shib-attribute.groupId>
+ <shib-attribute.version>5.0.0</shib-attribute.version>
+ <shib-metadata.groupId>net.shibboleth</shib-metadata.groupId>
+ <shib-metadata.version>5.0.0</shib-metadata.version>
<opensaml.groupId>org.opensaml</opensaml.groupId>
- <opensaml.version>5.0.1-SNAPSHOT</opensaml.version>
- <shib-shared.version>9.0.1-SNAPSHOT</shib-shared.version>
+ <opensaml.version>5.1.0-SNAPSHOT</opensaml.version>
+ <shib-shared.groupId>net.shibboleth</shib-shared.groupId>
+ <shib-shared.version>9.0.0</shib-shared.version>
<cas-client.version>3.6.4</cas-client.version>
<oidc-commons.version>3.0.1-SNAPSHOT</oidc-commons.version>
<idp-jetty-base.version>11.0.0-SNAPSHOT</idp-jetty-base.version>
@@ -31,46 +36,323 @@
</properties>
<dependencies>
- <!-- Compile scope -->
+ <!-- Compile Dependencies -->
<dependency>
<groupId>${idp.groupId}</groupId>
- <artifactId>idp-cas-api</artifactId>
+ <artifactId>idp-core</artifactId>
<version>${idp.version}</version>
</dependency>
<dependency>
<groupId>${idp.groupId}</groupId>
- <artifactId>idp-conf-impl</artifactId>
+ <artifactId>idp-admin-api</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-authn-api</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-cas-api</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-profile-api</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-saml-api</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-session-api</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-consent-api</artifactId>
<version>${idp.version}</version>
- <type>test-jar</type>
</dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-admin-impl</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-authn-impl</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-cas-impl</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-consent-impl</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-profile-impl</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-saml-impl</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-session-impl</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-schema</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-spring</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-ui</artifactId>
+ <version>${idp.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${shib-profile.groupId}</groupId>
+ <artifactId>shib-profile-api</artifactId>
+ <version>${shib-profile.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-profile.groupId}</groupId>
+ <artifactId>shib-profile-impl</artifactId>
+ <version>${shib-profile.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-profile.groupId}</groupId>
+ <artifactId>shib-saml-profile-api</artifactId>
+ <version>${shib-profile.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-api</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-impl</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-saml-attribute-api</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-saml-attribute-impl</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-filter-api</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-filter-impl</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-filter-spring</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-resolver-api</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-resolver-impl</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-attribute.groupId}</groupId>
+ <artifactId>shib-attribute-resolver-spring</artifactId>
+ <version>${shib-attribute.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${shib-metadata.groupId}</groupId>
+ <artifactId>shib-metadata-api</artifactId>
+ <version>${shib-metadata.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-metadata.groupId}</groupId>
+ <artifactId>shib-metadata-impl</artifactId>
+ <version>${shib-metadata.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-metadata.groupId}</groupId>
+ <artifactId>shib-metadata-spring</artifactId>
+ <version>${shib-metadata.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-core-api</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-core-impl</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-messaging-api</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-messaging-impl</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-profile-api</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-profile-impl</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
<dependency>
<groupId>${opensaml.groupId}</groupId>
<artifactId>opensaml-saml-api</artifactId>
<version>${opensaml.version}</version>
</dependency>
-
<dependency>
<groupId>${opensaml.groupId}</groupId>
<artifactId>opensaml-saml-impl</artifactId>
<version>${opensaml.version}</version>
</dependency>
-
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-security-api</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-security-impl</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-soap-api</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-soap-impl</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-spring</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
<dependency>
<groupId>${opensaml.groupId}</groupId>
<artifactId>opensaml-storage-api</artifactId>
<version>${opensaml.version}</version>
</dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-storage-impl</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-xmlsec-api</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${opensaml.groupId}</groupId>
+ <artifactId>opensaml-xmlsec-impl</artifactId>
+ <version>${opensaml.version}</version>
+ </dependency>
<dependency>
- <groupId>org.ldaptive</groupId>
- <artifactId>ldaptive</artifactId>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-cli</artifactId>
+ <version>${shib-shared.version}</version>
</dependency>
<dependency>
- <groupId>com.unboundid</groupId>
- <artifactId>unboundid-ldapsdk</artifactId>
- <scope>runtime</scope>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-networking</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-networking-spring</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-security</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-security-spring</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-service</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-spring</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-support</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-velocity</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${shib-shared.groupId}</groupId>
+ <artifactId>shib-velocity-spring</artifactId>
+ <version>${shib-shared.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.ldaptive</groupId>
+ <artifactId>ldaptive</artifactId>
</dependency>
<dependency>
@@ -104,6 +386,14 @@
</dependency>
<!-- Provided scope -->
+ <dependency>
+ <groupId>net.shibboleth.idp</groupId>
+ <artifactId>idp-jetty-base</artifactId>
+ <version>${idp-jetty-base.version}</version>
+ <scope>provided</scope>
+ <type>tar.gz</type>
+ </dependency>
+
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
@@ -119,23 +409,31 @@
<artifactId>jakarta.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
+
+ <!-- Don't know why we have to directly include this. -->
<dependency>
- <groupId>net.shibboleth.idp</groupId>
- <artifactId>idp-jetty-base</artifactId>
- <version>${idp-jetty-base.version}</version>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>apache-jsp</artifactId>
+ <version>${jetty.version}</version>
+ <scope>provided</scope>
+ </dependency>
+
+ <!-- Don't know why we have to directly include this. -->
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>apache-jstl</artifactId>
+ <version>${jetty-jstl.version}</version>
<scope>provided</scope>
- <type>tar.gz</type>
</dependency>
<!-- Runtime scope -->
- <!-- Addresses most IdP and lower dependencies. -->
<dependency>
<groupId>${idp.groupId}</groupId>
<artifactId>idp-conf-impl</artifactId>
<version>${idp.version}</version>
+ <type>test-jar</type>
<scope>runtime</scope>
</dependency>
-
<dependency>
<groupId>${idp.groupId}</groupId>
<artifactId>idp-war</artifactId>
@@ -145,32 +443,10 @@
</dependency>
<dependency>
- <groupId>net.shibboleth</groupId>
- <artifactId>shib-velocity-spring</artifactId>
- <version>${shib-shared.version}</version>
- <scope>runtime</scope>
- </dependency>
-
- <dependency>
- <groupId>net.shibboleth</groupId>
+ <groupId>${shib-shared.groupId}</groupId>
<artifactId>shib-testing</artifactId>
<version>${shib-shared.version}</version>
- </dependency>
-
- <!-- Don't know why we have to directly include this. -->
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>apache-jsp</artifactId>
- <version>${jetty.version}</version>
- <scope>provided</scope>
- </dependency>
-
- <!-- Don't know why we have to directly include this. -->
- <dependency>
- <groupId>org.eclipse.jetty</groupId>
- <artifactId>apache-jstl</artifactId>
- <version>${jetty-jstl.version}</version>
- <scope>provided</scope>
+ <scope>runtime</scope>
</dependency>
<dependency>
@@ -201,6 +477,12 @@
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>com.unboundid</groupId>
+ <artifactId>unboundid-ldapsdk</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
@@ -223,13 +505,6 @@
<scope>runtime</scope>
</dependency>
- <dependency>
- <groupId>net.shibboleth.idp.plugin.authn</groupId>
- <artifactId>idp-plugin-totp-impl</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- <scope>runtime</scope>
- </dependency>
-
<!-- For OIDC plugin testing. -->
<!--
<dependency>
diff --git a/src/main/java/sp/BaseSAMLController.java b/src/main/java/sp/BaseSAMLController.java
index 8538087..5e69d00 100644
--- a/src/main/java/sp/BaseSAMLController.java
+++ b/src/main/java/sp/BaseSAMLController.java
@@ -36,7 +36,6 @@ import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.primitive.NonnullSupplier;
import net.shibboleth.shared.security.IdentifierGenerationStrategy;
import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
-import net.shibboleth.shared.testing.ConstantSupplier;
import net.shibboleth.shared.xml.ParserPool;
public abstract class BaseSAMLController {
diff --git a/src/main/java/sp/SAML2Controller.java b/src/main/java/sp/SAML2Controller.java
index 60fac19..e22e522 100644
--- a/src/main/java/sp/SAML2Controller.java
+++ b/src/main/java/sp/SAML2Controller.java
@@ -112,10 +112,10 @@ import jakarta.servlet.http.HttpServletResponse;
import net.shibboleth.shared.annotation.constraint.NotEmpty;
import net.shibboleth.shared.component.ComponentInitializationException;
import net.shibboleth.shared.net.URLBuilder;
+import net.shibboleth.shared.primitive.NonnullSupplier;
import net.shibboleth.shared.primitive.StringSupport;
import net.shibboleth.shared.security.IdentifierGenerationStrategy;
import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
-import net.shibboleth.shared.testing.ConstantSupplier;
import net.shibboleth.shared.xml.SerializeSupport;
import net.shibboleth.shared.xml.XMLParserException;
@@ -224,8 +224,10 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/InitSLO/Redirect", method=RequestMethod.GET)
- public void initSLORequestRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
- final LogoutRequest logoutRequest = buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
+ public void initSLORequestRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ throws Exception {
+ final LogoutRequest logoutRequest =
+ buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
logoutRequest.setDestination(getDestinationRedirect(servletRequest, "SLO"));
final Endpoint endpoint = buildIdpSsoEndpoint(SAMLConstants.SAML2_REDIRECT_BINDING_URI, logoutRequest.getDestination());
final String spEntityID = getSpEntityId(servletRequest);
@@ -235,15 +237,16 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/InitSLO/Async", method=RequestMethod.GET)
- public void initSLORequestAsync(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initSLORequestAsync(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ throws Exception {
final LogoutRequest logoutRequest = buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
logoutRequest.setDestination(getDestinationRedirect(servletRequest, "SLO"));
- final Extensions exts = (Extensions) builderFactory.getBuilder(Extensions.DEFAULT_ELEMENT_NAME)
+ final Extensions exts = (Extensions) builderFactory.ensureBuilder(Extensions.DEFAULT_ELEMENT_NAME)
.buildObject(Extensions.DEFAULT_ELEMENT_NAME);
logoutRequest.setExtensions(exts);
exts.getUnknownXMLObjects().add(
- builderFactory.getBuilder(Asynchronous.DEFAULT_ELEMENT_NAME).buildObject(Asynchronous.DEFAULT_ELEMENT_NAME));
+ builderFactory.ensureBuilder(Asynchronous.DEFAULT_ELEMENT_NAME).buildObject(Asynchronous.DEFAULT_ELEMENT_NAME));
final Endpoint endpoint = buildIdpSloEndpoint(SAMLConstants.SAML2_REDIRECT_BINDING_URI, logoutRequest.getDestination());
final String spEntityID = getSpEntityId(servletRequest);
@@ -253,7 +256,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/InitSLO/POST", method=RequestMethod.GET)
- public void initSLORequestPost(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initSLORequestPost(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ throws Exception {
final LogoutRequest logoutRequest = buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
logoutRequest.setDestination(getDestinationPost(servletRequest, "SLO"));
final Endpoint endpoint = buildIdpSloEndpoint(SAMLConstants.SAML2_POST_BINDING_URI, logoutRequest.getDestination());
@@ -265,7 +269,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/FinishSLO/Redirect", method=RequestMethod.GET)
- public void finishSLOResponseRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void finishSLOResponseRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setDestination(getDestinationRedirect(servletRequest, "SLO"));
final Endpoint endpoint = buildIdpSloEndpoint(SAMLConstants.SAML2_REDIRECT_BINDING_URI, logoutResponse.getDestination());
@@ -276,19 +281,23 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/FinishSLO/POST", method=RequestMethod.GET)
- public void finishSLOResponsePost(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void finishSLOResponsePost(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setDestination(getDestinationPost(servletRequest, "SLO"));
- final Endpoint endpoint = buildIdpSloEndpoint(SAMLConstants.SAML2_POST_BINDING_URI, logoutResponse.getDestination());
+ final Endpoint endpoint = buildIdpSloEndpoint(SAMLConstants.SAML2_POST_BINDING_URI,
+ logoutResponse.getDestination());
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
- final MessageContext messageContext = buildOutboundMessageContext(logoutResponse, endpoint, spEntityID, idpEntityID);
+ final MessageContext messageContext =
+ buildOutboundMessageContext(logoutResponse, endpoint, spEntityID, idpEntityID);
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
@RequestMapping(value="/FinishSLO/SOAP", method=RequestMethod.GET)
- public void finishSLOResponseSOAP(HttpServletRequest servletRequest, HttpServletResponse servletResponse, final String id) throws Exception {
+ public void finishSLOResponseSOAP(HttpServletRequest servletRequest, HttpServletResponse servletResponse,
+ final String id) throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setInResponseTo(id);
final String spEntityID = getSpEntityId(servletRequest);
@@ -299,7 +308,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/POST/ACS", method=RequestMethod.POST)
- public ResponseEntity<String> handleSSOResponsePOST(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSSOResponsePOST(HttpServletRequest servletRequest,
+ HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
if (!(messageContext.getMessage() instanceof Response)) {
@@ -321,7 +331,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/Redirect/SLO", method=RequestMethod.GET)
- public ResponseEntity<String> handleSLOResponseRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSLOResponseRedirect(final HttpServletRequest servletRequest,
+ final HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextRedirect(servletRequest);
if (messageContext.getMessage() instanceof LogoutRequest) {
@@ -343,7 +354,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/POST/SLO", method=RequestMethod.POST)
- public ResponseEntity<String> handleSLOResponsePOST(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSLOResponsePOST(final HttpServletRequest servletRequest,
+ final HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
if (messageContext.getMessage() instanceof LogoutRequest) {
@@ -365,12 +377,13 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/SOAP/SLO", method=RequestMethod.POST)
- public ResponseEntity<String> handleSLOResponseSOAP(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSLOResponseSOAP(final HttpServletRequest servletRequest,
+ final HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextSOAP(servletRequest);
- if (messageContext.getMessage() instanceof LogoutRequest) {
+ if (messageContext.getMessage() instanceof LogoutRequest logreq) {
servletRequest.setAttribute("success", "1");
- finishSLOResponseSOAP(servletRequest, servletResponse, ((LogoutRequest) messageContext.getMessage()).getID());
+ finishSLOResponseSOAP(servletRequest, servletResponse, logreq.getID());
return null;
}
@@ -386,41 +399,51 @@ public class SAML2Controller extends BaseSAMLController {
return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
}
- private MessageContext buildOutboundMessageContext(SAMLObject message, Endpoint endpoint, String spEntityId, String idpEntityId) {
+ private MessageContext buildOutboundMessageContext(final SAMLObject message, final Endpoint endpoint,
+ final String spEntityId, final String idpEntityId) {
final MessageContext messageContext = new MessageContext();
messageContext.setMessage(message);
- SAMLSelfEntityContext selfContext = messageContext.getSubcontext(SAMLSelfEntityContext.class, true);
+ final SAMLSelfEntityContext selfContext = messageContext.ensureSubcontext(SAMLSelfEntityContext.class);
selfContext.setEntityId(spEntityId);
- SAMLPeerEntityContext peerContext = messageContext.getSubcontext(SAMLPeerEntityContext.class, true);
+ final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
peerContext.setEntityId(idpEntityId);
if (endpoint != null) {
- SAMLEndpointContext endpointContext = peerContext.getSubcontext(SAMLEndpointContext.class, true);
+ final SAMLEndpointContext endpointContext = peerContext.ensureSubcontext(SAMLEndpointContext.class);
endpointContext.setEndpoint(endpoint);
}
- SAMLArtifactContext artifactContext = messageContext.getSubcontext(SAMLArtifactContext.class, true);
+ final SAMLArtifactContext artifactContext = messageContext.ensureSubcontext(SAMLArtifactContext.class);
artifactContext.setSourceArtifactResolutionServiceEndpointIndex(1);
- SignatureSigningParameters signingParameters = new SignatureSigningParameters();
+ final SignatureSigningParameters signingParameters = new SignatureSigningParameters();
signingParameters.setSigningCredential(spCredential);
signingParameters.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256);
//signingParameters.setSignatureReferenceDigestMethod(SignatureConstants.ALGO_ID_DIGEST_SHA256);
- signingParameters.setSignatureCanonicalizationAlgorithm(SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);
- SecurityParametersContext secParamsContext = messageContext.getSubcontext(SecurityParametersContext.class, true);
+ signingParameters.setSignatureCanonicalizationAlgorithm(
+ SignatureConstants.ALGO_ID_C14N_EXCL_OMIT_COMMENTS);
+ final SecurityParametersContext secParamsContext =
+ messageContext.ensureSubcontext(SecurityParametersContext.class);
secParamsContext.setSignatureSigningParameters(signingParameters);
return messageContext;
}
- private void setupResponse(final AbstractHttpServletResponseMessageEncoder encoder, final HttpServletResponse response) {
- encoder.setHttpServletResponseSupplier(new ConstantSupplier<>(response));
+ private void setupResponse(final AbstractHttpServletResponseMessageEncoder encoder,
+ final HttpServletResponse response) {
+ encoder.setHttpServletResponseSupplier(new NonnullSupplier<>() {
+ @Nonnull public HttpServletResponse get() {
+ // TODO Auto-generated method stub
+ return response;
+ }
+ });
}
- private void encodeOutboundMessageContextRedirect(MessageContext messageContext, HttpServletResponse servletResponse) throws Exception {
- HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
+ private void encodeOutboundMessageContextRedirect(final MessageContext messageContext,
+ final HttpServletResponse servletResponse) throws Exception {
+ final HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
try {
setupResponse(encoder,servletResponse);
encoder.setMessageContext(messageContext);
@@ -436,8 +459,9 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- private void encodeOutboundMessageContextPost(MessageContext messageContext, HttpServletResponse servletResponse) throws Exception {
- HTTPPostEncoder encoder = new HTTPPostEncoder();
+ private void encodeOutboundMessageContextPost(final MessageContext messageContext,
+ final HttpServletResponse servletResponse) throws Exception {
+ final HTTPPostEncoder encoder = new HTTPPostEncoder();
try {
setupResponse(encoder,servletResponse);
encoder.setMessageContext(messageContext);
@@ -454,8 +478,9 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- private void encodeOutboundMessageContextArtifact(MessageContext messageContext, HttpServletResponse servletResponse) throws Exception {
- HTTPArtifactEncoder encoder = new HTTPArtifactEncoder();
+ private void encodeOutboundMessageContextArtifact(final MessageContext messageContext,
+ final HttpServletResponse servletResponse) throws Exception {
+ final HTTPArtifactEncoder encoder = new HTTPArtifactEncoder();
try {
setupResponse(encoder,servletResponse);
encoder.setMessageContext(messageContext);
@@ -473,8 +498,9 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- private void encodeOutboundMessageContextSOAP(MessageContext messageContext, HttpServletResponse servletResponse) throws Exception {
- HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
+ private void encodeOutboundMessageContextSOAP(final MessageContext messageContext,
+ final HttpServletResponse servletResponse) throws Exception {
+ final HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
try {
setupResponse(encoder,servletResponse);
encoder.setMessageContext(messageContext);
@@ -490,24 +516,24 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- private SingleSignOnService buildIdpSsoEndpoint(String binding, String destination) {
- final SingleSignOnService ssoEndpoint = (SingleSignOnService) builderFactory.getBuilder(
+ private SingleSignOnService buildIdpSsoEndpoint(final String binding, final String destination) {
+ final SingleSignOnService ssoEndpoint = (SingleSignOnService) builderFactory.ensureBuilder(
SingleSignOnService.DEFAULT_ELEMENT_NAME).buildObject(SingleSignOnService.DEFAULT_ELEMENT_NAME);
ssoEndpoint.setBinding(binding);
ssoEndpoint.setLocation(destination);
return ssoEndpoint;
}
- private SingleLogoutService buildIdpSloEndpoint(String binding, String destination) {
- final SingleLogoutService sloEndpoint = (SingleLogoutService) builderFactory.getBuilder(
+ private SingleLogoutService buildIdpSloEndpoint(final String binding, final String destination) {
+ final SingleLogoutService sloEndpoint = (SingleLogoutService) builderFactory.ensureBuilder(
SingleLogoutService.DEFAULT_ELEMENT_NAME).buildObject(SingleLogoutService.DEFAULT_ELEMENT_NAME);
sloEndpoint.setBinding(binding);
sloEndpoint.setLocation(destination);
return sloEndpoint;
}
- private AuthnRequest buildAuthnRequest(HttpServletRequest servletRequest) {
- final AuthnRequest authnRequest = (AuthnRequest) builderFactory.getBuilder(
+ private AuthnRequest buildAuthnRequest(final HttpServletRequest servletRequest) {
+ final AuthnRequest authnRequest = (AuthnRequest) builderFactory.ensureBuilder(
AuthnRequest.DEFAULT_ELEMENT_NAME).buildObject(AuthnRequest.DEFAULT_ELEMENT_NAME);
authnRequest.setID(idGenerator.generateIdentifier());
@@ -515,12 +541,12 @@ public class SAML2Controller extends BaseSAMLController {
authnRequest.setAssertionConsumerServiceURL(getAcsUrl(servletRequest));
authnRequest.setProtocolBinding(SAMLConstants.SAML2_POST_BINDING_URI);
- final Issuer issuer = (Issuer) builderFactory.getBuilder(
+ final Issuer issuer = (Issuer) builderFactory.ensureBuilder(
Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
issuer.setValue(getSpEntityId(servletRequest));
authnRequest.setIssuer(issuer);
- final NameIDPolicy nameIDPolicy = (NameIDPolicy) builderFactory.getBuilder(
+ final NameIDPolicy nameIDPolicy = (NameIDPolicy) builderFactory.ensureBuilder(
NameIDPolicy.DEFAULT_ELEMENT_NAME).buildObject(NameIDPolicy.DEFAULT_ELEMENT_NAME);
nameIDPolicy.setAllowCreate(true);
authnRequest.setNameIDPolicy(nameIDPolicy);
@@ -537,24 +563,27 @@ public class SAML2Controller extends BaseSAMLController {
param = StringSupport.trimOrNull(servletRequest.getParameter("subjectID"));
if (param != null) {
- final NameID nameID = (NameID) builderFactory.getBuilder(NameID.DEFAULT_ELEMENT_NAME).buildObject(NameID.DEFAULT_ELEMENT_NAME);
+ final NameID nameID = (NameID) builderFactory.ensureBuilder(NameID.DEFAULT_ELEMENT_NAME).buildObject(
+ NameID.DEFAULT_ELEMENT_NAME);
nameID.setValue(param);
param = StringSupport.trimOrNull(servletRequest.getParameter("subjectIDFormat"));
if (param != null) {
nameID.setFormat(param);
}
- final Subject subject = (Subject) builderFactory.getBuilder(Subject.DEFAULT_ELEMENT_NAME).buildObject(Subject.DEFAULT_ELEMENT_NAME);
+ final Subject subject = (Subject) builderFactory.ensureBuilder(Subject.DEFAULT_ELEMENT_NAME).buildObject(
+ Subject.DEFAULT_ELEMENT_NAME);
subject.setNameID(nameID);
authnRequest.setSubject(subject);
}
param = StringSupport.trimOrNull(servletRequest.getParameter("classRef"));
if (param != null) {
- final AuthnContextClassRef ref = (AuthnContextClassRef) builderFactory.getBuilder(
+ final AuthnContextClassRef ref = (AuthnContextClassRef) builderFactory.ensureBuilder(
AuthnContextClassRef.DEFAULT_ELEMENT_NAME).buildObject(AuthnContextClassRef.DEFAULT_ELEMENT_NAME);
ref.setURI(param);
- final RequestedAuthnContext rac = (RequestedAuthnContext) builderFactory.getBuilder(
- RequestedAuthnContext.DEFAULT_ELEMENT_NAME).buildObject(RequestedAuthnContext.DEFAULT_ELEMENT_NAME);
+ final RequestedAuthnContext rac = (RequestedAuthnContext) builderFactory.ensureBuilder(
+ RequestedAuthnContext.DEFAULT_ELEMENT_NAME).buildObject(
+ RequestedAuthnContext.DEFAULT_ELEMENT_NAME);
rac.getAuthnContextClassRefs().add(ref);
authnRequest.setRequestedAuthnContext(rac);
}
@@ -564,7 +593,7 @@ public class SAML2Controller extends BaseSAMLController {
final String[] requesters = param.split(",");
if (requesters != null && requesters.length > 0) {
for (final String req : requesters) {
- final RequesterID requesterID = (RequesterID) builderFactory.getBuilder(
+ final RequesterID requesterID = (RequesterID) builderFactory.ensureBuilder(
RequesterID.DEFAULT_ELEMENT_NAME).buildObject(RequesterID.DEFAULT_ELEMENT_NAME);
requesterID.setURI(req);
getScoping(authnRequest).getRequesterIDs().add(requesterID);
@@ -576,10 +605,10 @@ public class SAML2Controller extends BaseSAMLController {
if (param != null) {
final String[] idplist = param.split(",");
if (idplist != null && idplist.length > 0) {
- final IDPList obj = (IDPList) builderFactory.getBuilder(
+ final IDPList obj = (IDPList) builderFactory.ensureBuilder(
IDPList.DEFAULT_ELEMENT_NAME).buildObject(IDPList.DEFAULT_ELEMENT_NAME);
for (final String idp : idplist) {
- final IDPEntry entry = (IDPEntry) builderFactory.getBuilder(
+ final IDPEntry entry = (IDPEntry) builderFactory.ensureBuilder(
IDPEntry.DEFAULT_ELEMENT_NAME).buildObject(IDPEntry.DEFAULT_ELEMENT_NAME);
entry.setProviderID(idp);
obj.getIDPEntrys().add(entry);
@@ -598,7 +627,7 @@ public class SAML2Controller extends BaseSAMLController {
private Scoping getScoping(@Nonnull final AuthnRequest request) {
if (request.getScoping() == null) {
- final Scoping scoping = (Scoping) builderFactory.getBuilder(
+ final Scoping scoping = (Scoping) builderFactory.ensureBuilder(
Scoping.DEFAULT_ELEMENT_NAME).buildObject(Scoping.DEFAULT_ELEMENT_NAME);
request.setScoping(scoping);
}
@@ -606,35 +635,35 @@ public class SAML2Controller extends BaseSAMLController {
return request.getScoping();
}
- private Extensions buildRequestedAttributesExtensions()
- {
- final RequestedAttribute attribute = (RequestedAttribute) builderFactory.getBuilder(
+ private Extensions buildRequestedAttributesExtensions() {
+ final RequestedAttribute attribute = (RequestedAttribute) builderFactory.ensureBuilder(
RequestedAttribute.DEFAULT_ELEMENT_NAME).buildObject(RequestedAttribute.DEFAULT_ELEMENT_NAME);
attribute.setFriendlyName("mail");
attribute.setName("urn:oid:0.9.2342.19200300.100.1.3");
attribute.setNameFormat("urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
- final RequestedAttributes attributes = (RequestedAttributes) builderFactory.getBuilder(
+ final RequestedAttributes attributes = (RequestedAttributes) builderFactory.ensureBuilder(
RequestedAttributes.DEFAULT_ELEMENT_NAME).buildObject(RequestedAttributes.DEFAULT_ELEMENT_NAME);
attributes.getRequestedAttributes().add(attribute);
- final Extensions extensions = (Extensions) builderFactory.getBuilder(
+ final Extensions extensions = (Extensions) builderFactory.ensureBuilder(
Extensions.DEFAULT_ELEMENT_NAME).buildObject(Extensions.DEFAULT_ELEMENT_NAME);
extensions.getUnknownXMLObjects().add(attributes);
return extensions;
}
- private LogoutRequest buildLogoutRequest(HttpServletRequest servletRequest, String principalName) {
- final LogoutRequest logoutRequest = (LogoutRequest) builderFactory.getBuilder(
+ private LogoutRequest buildLogoutRequest(final HttpServletRequest servletRequest, final String principalName) {
+ final LogoutRequest logoutRequest = (LogoutRequest) builderFactory.ensureBuilder(
LogoutRequest.DEFAULT_ELEMENT_NAME).buildObject(LogoutRequest.DEFAULT_ELEMENT_NAME);
logoutRequest.setID(idGenerator.generateIdentifier());
logoutRequest.setIssueInstant(Instant.now());
- final Issuer issuer = (Issuer) builderFactory.getBuilder(
+ final Issuer issuer = (Issuer) builderFactory.ensureBuilder(
Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
issuer.setValue(getSpEntityId(servletRequest));
logoutRequest.setIssuer(issuer);
- final NameID nameID = (NameID) builderFactory.getBuilder(NameID.DEFAULT_ELEMENT_NAME).buildObject(NameID.DEFAULT_ELEMENT_NAME);
+ final NameID nameID = (NameID) builderFactory.ensureBuilder(NameID.DEFAULT_ELEMENT_NAME).buildObject(
+ NameID.DEFAULT_ELEMENT_NAME);
nameID.setValue(principalName);
nameID.setFormat(NameID.TRANSIENT);
nameID.setSPNameQualifier(getSpEntityId(servletRequest));
@@ -644,21 +673,24 @@ public class SAML2Controller extends BaseSAMLController {
return logoutRequest;
}
- private LogoutResponse buildLogoutResponse(HttpServletRequest servletRequest) {
- final LogoutResponse logoutResponse = (LogoutResponse) builderFactory.getBuilder(
+ private LogoutResponse buildLogoutResponse(final HttpServletRequest servletRequest) {
+ final LogoutResponse logoutResponse = (LogoutResponse) builderFactory.ensureBuilder(
LogoutResponse.DEFAULT_ELEMENT_NAME).buildObject(LogoutResponse.DEFAULT_ELEMENT_NAME);
logoutResponse.setID(idGenerator.generateIdentifier());
logoutResponse.setIssueInstant(Instant.now());
- final Issuer issuer = (Issuer) builderFactory.getBuilder(Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
+ final Issuer issuer = (Issuer) builderFactory.ensureBuilder(Issuer.DEFAULT_ELEMENT_NAME).buildObject(
+ Issuer.DEFAULT_ELEMENT_NAME);
issuer.setValue(getSpEntityId(servletRequest));
logoutResponse.setIssuer(issuer);
- final Status status = (Status) builderFactory.getBuilder(Status.DEFAULT_ELEMENT_NAME).buildObject(Status.DEFAULT_ELEMENT_NAME);
+ final Status status = (Status) builderFactory.ensureBuilder(Status.DEFAULT_ELEMENT_NAME).buildObject(
+ Status.DEFAULT_ELEMENT_NAME);
logoutResponse.setStatus(status);
- final StatusCode code = (StatusCode) builderFactory.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME).buildObject(StatusCode.DEFAULT_ELEMENT_NAME);
+ final StatusCode code = (StatusCode) builderFactory.ensureBuilder(StatusCode.DEFAULT_ELEMENT_NAME).buildObject(
+ StatusCode.DEFAULT_ELEMENT_NAME);
status.setStatusCode(code);
String param = servletRequest.getParameter("success");
if (param == null) {
@@ -677,88 +709,88 @@ public class SAML2Controller extends BaseSAMLController {
return logoutResponse;
}
- private String getDestinationRedirect(HttpServletRequest servletRequest, String profile) {
+ @Nonnull private String getDestinationRedirect(final HttpServletRequest servletRequest, final String profile) {
//TODO servlet context
- String destinationPath = "/idp/profile/SAML2/Redirect/" + profile;
- String baseUrl = getBaseUrl(servletRequest);
+ final String destinationPath = "/idp/profile/SAML2/Redirect/" + profile;
+ final String baseUrl = getBaseUrl(servletRequest);
try {
- URLBuilder urlBuilder = new URLBuilder(baseUrl);
+ final URLBuilder urlBuilder = new URLBuilder(baseUrl);
urlBuilder.setPath(destinationPath);
return urlBuilder.buildURL();
- } catch (MalformedURLException e) {
+ } catch (final MalformedURLException e) {
log.error("Couldn't parse base URL, reverting to internal default destination: {}", baseUrl);
return "http://localhost:8080" + destinationPath;
}
}
- private String getDestinationPost(HttpServletRequest servletRequest, String profile) {
+ @Nonnull private String getDestinationPost(final HttpServletRequest servletRequest, final String profile) {
//TODO servlet context
- String destinationPath = "/idp/profile/SAML2/POST/" + profile;
- String baseUrl = getBaseUrl(servletRequest);
+ final String destinationPath = "/idp/profile/SAML2/POST/" + profile;
+ final String baseUrl = getBaseUrl(servletRequest);
try {
- URLBuilder urlBuilder = new URLBuilder(baseUrl);
+ final URLBuilder urlBuilder = new URLBuilder(baseUrl);
urlBuilder.setPath(destinationPath);
return urlBuilder.buildURL();
- } catch (MalformedURLException e) {
+ } catch (final MalformedURLException e) {
log.error("Couldn't parse base URL, reverting to internal default destination: {}", baseUrl);
return "http://localhost:8080" + destinationPath;
}
}
- private String getDestinationArtifact(HttpServletRequest servletRequest, String profile) {
+ @Nonnull private String getDestinationArtifact(final HttpServletRequest servletRequest, final String profile) {
//TODO servlet context
- String destinationPath = "/idp/profile/SAML2/Artifact/" + profile;
- String baseUrl = getBaseUrl(servletRequest);
+ final String destinationPath = "/idp/profile/SAML2/Artifact/" + profile;
+ final String baseUrl = getBaseUrl(servletRequest);
try {
- URLBuilder urlBuilder = new URLBuilder(baseUrl);
+ final URLBuilder urlBuilder = new URLBuilder(baseUrl);
urlBuilder.setPath(destinationPath);
return urlBuilder.buildURL();
- } catch (MalformedURLException e) {
+ } catch (final MalformedURLException e) {
log.error("Couldn't parse base URL, reverting to internal default destination: {}", baseUrl);
return "http://localhost:8080" + destinationPath;
}
}
- private String getAcsUrl(HttpServletRequest servletRequest) {
+ @Nonnull private String getAcsUrl(final HttpServletRequest servletRequest) {
//TODO servlet context
- String spId = getSpId(servletRequest);
- String acsPath = (spId == null) ? "/sp/SAML2/POST/ACS" : "/sp/" + spId + "/SAML2/POST/ACS";
- String baseUrl = getBaseUrl(servletRequest);
+ final String spId = getSpId(servletRequest);
+ final String acsPath = (spId == null) ? "/sp/SAML2/POST/ACS" : "/sp/" + spId + "/SAML2/POST/ACS";
+ final String baseUrl = getBaseUrl(servletRequest);
try {
- URLBuilder urlBuilder = new URLBuilder(baseUrl);
+ final URLBuilder urlBuilder = new URLBuilder(baseUrl);
urlBuilder.setPath(acsPath);
return urlBuilder.buildURL();
- } catch (MalformedURLException e) {
+ } catch (final MalformedURLException e) {
log.error("Couldn't parse base URL, reverting to internal default ACS: {}", baseUrl);
return "http://localhost:8080" + acsPath;
}
}
- private String getBaseUrl(HttpServletRequest servletRequest) {
+ @Nonnull private String getBaseUrl(final HttpServletRequest servletRequest) {
//TODO servlet context
- String requestUrl = servletRequest.getRequestURL().toString();
+ final String requestUrl = servletRequest.getRequestURL().toString();
try {
- URLBuilder urlBuilder = new URLBuilder(requestUrl);
+ final URLBuilder urlBuilder = new URLBuilder(requestUrl);
urlBuilder.setUsername(null);
urlBuilder.setPassword(null);
urlBuilder.setPath(null);
urlBuilder.getQueryParams().clear();
urlBuilder.setFragment(null);
return urlBuilder.buildURL();
- } catch (MalformedURLException e) {
+ } catch (final MalformedURLException e) {
log.error("Couldn't parse request URL, reverting to internal default base URL: {}", requestUrl);
return "http://localhost:8080";
}
}
- private String getSpEntityId(HttpServletRequest servletRequest) {
+ @Nonnull private String getSpEntityId(final HttpServletRequest servletRequest) {
// TODO get from config somewhere
final String spId = getSpId(servletRequest);
return (spId == null) ? "https://sp.example.org" : "https://" + spId + ".example.org";
}
- private String getIdpEntityId(HttpServletRequest servletRequest) {
+ @Nonnull private String getIdpEntityId(final HttpServletRequest servletRequest) {
// TODO get from config somewhere
// Sometimes it's useful to return an IdP entityID per SP.
// final String spId = getSpId(servletRequest);
@@ -772,7 +804,7 @@ public class SAML2Controller extends BaseSAMLController {
* @param servletRequest the servlet request
* @return the SP id or <code>null</code>
*/
- @Nullable private String getSpId(HttpServletRequest servletRequest) {
+ @Nullable private String getSpId(final HttpServletRequest servletRequest) {
final Object attr = servletRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
if (attr != null && attr instanceof Map) {
final Map pathVariables = (Map) attr;
@@ -786,7 +818,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(method = RequestMethod.GET) public ResponseEntity<String>
- defaultPage(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ defaultPage(final HttpServletRequest servletRequest, final HttpServletResponse servletResponse)
+ throws Exception {
final StringBuilder builder = new StringBuilder();
builder.append("SP id = " + getSpId(servletRequest) + "\n");
builder.append("SP entityID = " + getSpEntityId(servletRequest) + "\n");
@@ -818,16 +851,16 @@ public class SAML2Controller extends BaseSAMLController {
* @throws Exception if an error occurs
*/
@RequestMapping(value = "/InitSLO/SOAP", method = RequestMethod.POST) public ResponseEntity<String>
- initSAML2LogoutRequest(HttpServletRequest servletRequest, HttpServletResponse servletResponse,
- @RequestParam(value = "endpoint", required = true) String endpoint,
- @RequestParam(value = "principalName", required = true) String principalName,
- @RequestParam(value = "trustedTLSCertificate", required = true) String trustedTLSCertificate,
- @RequestParam(value = "trustedTLSCertificatePassword", required = true) String trustedTLSCertificatePassword,
- @RequestParam(value = "clientTLSCertificate", required = false) String clientTLSCertificate,
- @RequestParam(value = "clientTLSPrivateKey", required = true) String clientTLSPrivateKey,
- @RequestParam(value = "clientTLSPassword", required = true) String clientTLSPassword,
- @RequestParam(value = "clientSigningCertificate", required = false) String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) String clientSigningPrivateKey)
+ initSAML2LogoutRequest(final HttpServletRequest servletRequest, final HttpServletResponse servletResponse,
+ @RequestParam(value = "endpoint", required = true) final String endpoint,
+ @RequestParam(value = "principalName", required = true) final String principalName,
+ @RequestParam(value = "trustedTLSCertificate", required = true) final String trustedTLSCertificate,
+ @RequestParam(value = "trustedTLSCertificatePassword", required = true) final String trustedTLSCertificatePassword,
+ @RequestParam(value = "clientTLSCertificate", required = false) final String clientTLSCertificate,
+ @RequestParam(value = "clientTLSPrivateKey", required = true) final String clientTLSPrivateKey,
+ @RequestParam(value = "clientTLSPassword", required = true) final String clientTLSPassword,
+ @RequestParam(value = "clientSigningCertificate", required = false) final String clientSigningCertificate,
+ @RequestParam(value = "clientSigningPrivateKey", required = false) final String clientSigningPrivateKey)
throws Exception {
final Resource trustedTLSCertificateResource = applicationContext.getResource(trustedTLSCertificate);
@@ -898,16 +931,16 @@ public class SAML2Controller extends BaseSAMLController {
* @throws Exception if an error occurs
*/
@RequestMapping(value = "/AttributeQuery", method = RequestMethod.POST) public ResponseEntity<String>
- initSAML2AttributeQuery(HttpServletRequest servletRequest, HttpServletResponse servletResponse,
- @RequestParam(value = "endpoint", required = true) String endpoint,
- @RequestParam(value = "principalName", required = true) String principalName,
- @RequestParam(value = "trustedTLSCertificate", required = true) String trustedTLSCertificate,
- @RequestParam(value = "trustedTLSCertificatePassword", required = true) String trustedTLSCertificatePassword,
- @RequestParam(value = "clientTLSCertificate", required = false) String clientTLSCertificate,
- @RequestParam(value = "clientTLSPrivateKey", required = true) String clientTLSPrivateKey,
- @RequestParam(value = "clientTLSPassword", required = true) String clientTLSPassword,
- @RequestParam(value = "clientSigningCertificate", required = false) String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) String clientSigningPrivateKey)
+ initSAML2AttributeQuery(final HttpServletRequest servletRequest, final HttpServletResponse servletResponse,
+ @RequestParam(value = "endpoint", required = true) final String endpoint,
+ @RequestParam(value = "principalName", required = true) final String principalName,
+ @RequestParam(value = "trustedTLSCertificate", required = true) final String trustedTLSCertificate,
+ @RequestParam(value = "trustedTLSCertificatePassword", required = true) final String trustedTLSCertificatePassword,
+ @RequestParam(value = "clientTLSCertificate", required = false) final String clientTLSCertificate,
+ @RequestParam(value = "clientTLSPrivateKey", required = true) final String clientTLSPrivateKey,
+ @RequestParam(value = "clientTLSPassword", required = true) final String clientTLSPassword,
+ @RequestParam(value = "clientSigningCertificate", required = false) final String clientSigningCertificate,
+ @RequestParam(value = "clientSigningPrivateKey", required = false) final String clientSigningPrivateKey)
throws Exception {
final Resource trustedTLSCertificateResource = applicationContext.getResource(trustedTLSCertificate);
@@ -988,7 +1021,7 @@ public class SAML2Controller extends BaseSAMLController {
*
* @return the built Issuer
*/
- @Nonnull public static Issuer buildIssuer(final @Nonnull @NotEmpty String entityID) {
+ @Nonnull public static Issuer buildIssuer(@Nonnull @NotEmpty final String entityID) {
final SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
Issuer.DEFAULT_ELEMENT_NAME);
@@ -1005,7 +1038,7 @@ public class SAML2Controller extends BaseSAMLController {
*
* @return the built subject
*/
- @Nonnull public static Subject buildSubject(final @Nullable String principalName) {
+ @Nonnull public static Subject buildSubject(@Nullable final String principalName) {
final SAMLObjectBuilder<Subject> subjectBuilder = (SAMLObjectBuilder<Subject>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
Subject.DEFAULT_ELEMENT_NAME);
@@ -1025,7 +1058,7 @@ public class SAML2Controller extends BaseSAMLController {
*
* @return the built NameID
*/
- @Nonnull public static NameID buildNameID(final @Nonnull @NotEmpty String principalName) {
+ @Nonnull public static NameID buildNameID(@Nonnull @NotEmpty final String principalName) {
final SAMLObjectBuilder<NameID> nameIdBuilder = (SAMLObjectBuilder<NameID>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
NameID.DEFAULT_ELEMENT_NAME);
@@ -1042,7 +1075,7 @@ public class SAML2Controller extends BaseSAMLController {
*
* @return the built query
*/
- @Nonnull public static AttributeQuery buildAttributeQueryRequest(final @Nullable Subject subject) {
+ @Nonnull public static AttributeQuery buildAttributeQueryRequest(@Nullable final Subject subject) {
final SAMLObjectBuilder<AttributeQuery> queryBuilder = (SAMLObjectBuilder<AttributeQuery>)
XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>ensureBuilder(
AttributeQuery.DEFAULT_ELEMENT_NAME);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list