[java-idp-testbed] branch main updated: Fix WhiteSpace
Codeberg
noreply at shibboleth.net
Thu Oct 15 19:57:44 UTC 2026
This is an automated email from the git hooks/post-receive script.
codeberg pushed a commit to branch main
in repository java-idp-testbed.
View the commit online:
https://codeberg.org/Shibboleth/java-idp-testbed/commit/9b702940e5b19fcd0b83ad8291ed5121868a387a
The following commit(s) were added to refs/heads/main by this push:
new 9b70294 Fix WhiteSpace
9b70294 is described below
commit 9b702940e5b19fcd0b83ad8291ed5121868a387a
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Thu Oct 15 19:58:59 2026 +0100
Fix WhiteSpace
---
src/main/java/sp/SAML1Controller.java | 80 +--
src/main/java/sp/SAML2Controller.java | 886 +++++++++++++++++-----------------
2 files changed, 483 insertions(+), 483 deletions(-)
diff --git a/src/main/java/sp/SAML1Controller.java b/src/main/java/sp/SAML1Controller.java
index 5540090..2038148 100644
--- a/src/main/java/sp/SAML1Controller.java
+++ b/src/main/java/sp/SAML1Controller.java
@@ -83,8 +83,8 @@ public class SAML1Controller extends BaseSAMLController {
private final Logger log = LoggerFactory.getLogger(SAML1Controller.class);
@RequestMapping(value = "/POST/ACS", method = RequestMethod.POST) public ResponseEntity<String>
- handleSSOResponsePOST(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
- throws Exception {
+ handleSSOResponsePOST(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
+ throws Exception {
MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
@@ -116,7 +116,7 @@ public class SAML1Controller extends BaseSAMLController {
/**
* Get the SP id as a path variable, or <code>null</code> if not present.
- *
+ *
* @param servletRequest the servlet request
* @return the SP id or <code>null</code>
*/
@@ -135,7 +135,7 @@ public class SAML1Controller extends BaseSAMLController {
/**
* Send a SAML 1 attribute query.
- *
+ *
* @param servletRequest the servlet request
* @param servletResponse the servlet response
* @param endpoint the endpoint to send the attribute query to
@@ -147,19 +147,19 @@ public class SAML1Controller extends BaseSAMLController {
* @param clientTLSPassword the SP password
* @param clientSigningCertificate ...
* @param clientSigningPrivateKey ...
- *
+ *
* @return the SAML attribute query response is displayed
- *
+ *
* @throws Exception if an error occurs
*/
@SuppressWarnings("deprecation")
- @RequestMapping(value = "/AttributeQuery", method = RequestMethod.POST) public ResponseEntity<String>
- initSAML1AttributeQuery(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse,
- @RequestParam(value = "endpoint", required = true) @Nonnull String endpoint,
- @RequestParam(value = "principalName", required = true) @Nonnull String principalName,
- @RequestParam(value = "clientSigningCertificate", required = false) @Nonnull String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) @Nonnull String clientSigningPrivateKey)
- throws Exception {
+ @RequestMapping(value = "/AttributeQuery", method = RequestMethod.POST) public ResponseEntity<String>
+ initSAML1AttributeQuery(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse,
+ @RequestParam(value = "endpoint", required = true) @Nonnull String endpoint,
+ @RequestParam(value = "principalName", required = true) @Nonnull String principalName,
+ @RequestParam(value = "clientSigningCertificate", required = false) @Nonnull String clientSigningCertificate,
+ @RequestParam(value = "clientSigningPrivateKey", required = false) @Nonnull String clientSigningPrivateKey)
+ throws Exception {
final HttpClient httpClient = buildHttpClient();
@@ -177,17 +177,17 @@ public class SAML1Controller extends BaseSAMLController {
final Envelope envelope = buildSOAP11Envelope(attributeQuery);
if (log.isDebugEnabled()) {
- final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
- assert marshaller != null;
+ final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
+ assert marshaller != null;
log.debug("Sending AttributeQuery to endpoint '{}':\n", endpoint, SerializeSupport.prettyPrintXML(
- marshaller.marshall(envelope, parserPool.newDocument())));
+ marshaller.marshall(envelope, parserPool.newDocument())));
}
final InOutOperationContext context = SAML2Controller.buildInOutOperationContext(envelope);
httpSoapClient.send(endpoint, context);
- final MessageContext inboundMessageContext = context.getInboundMessageContext();
+ final MessageContext inboundMessageContext = context.getInboundMessageContext();
assert inboundMessageContext != null;
final SOAP11Context soapContext = inboundMessageContext.getSubcontext(SOAP11Context.class);
assert soapContext != null;
@@ -205,14 +205,14 @@ public class SAML1Controller extends BaseSAMLController {
/**
* Builds a basic SAML 1 attribute query.
- *
+ *
* @param servletRequest ...
* @param principalName the principal name
- *
+ *
* @return the attribute query
*/
@Nonnull public Request buildSAML1AttributeQueryRequest(@Nonnull final HttpServletRequest servletRequest,
- @Nonnull final String principalName) {
+ @Nonnull final String principalName) {
final Subject subject = buildSubject(principalName);
@@ -231,21 +231,21 @@ public class SAML1Controller extends BaseSAMLController {
/**
* Builds a {@link Subject}. If a principal name is given a {@link NameIdentifier}, whose value is the given
* principal name, will be created and added to the {@link Subject}.
- *
+ *
* @param principalName the principal name to add to the subject
- *
+ *
* @return the built subject
*/
@Nonnull public static Subject buildSubject(final @Nullable String principalName) {
final SAMLObjectBuilder<Subject> subjectBuilder = (SAMLObjectBuilder<Subject>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
- Subject.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
+ Subject.DEFAULT_ELEMENT_NAME);
final Subject subject = subjectBuilder.buildObject();
if (principalName != null) {
final SAMLObjectBuilder<NameIdentifier> nameIdBuilder = (SAMLObjectBuilder<NameIdentifier>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>ensureBuilder(
- NameIdentifier.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<NameIdentifier>ensureBuilder(
+ NameIdentifier.DEFAULT_ELEMENT_NAME);
final NameIdentifier nameId = nameIdBuilder.buildObject();
nameId.setValue(principalName);
subject.setNameIdentifier(nameId);
@@ -257,15 +257,15 @@ public class SAML1Controller extends BaseSAMLController {
/**
* Builds a {@link Request} containing an {@link AttributeQuery}. If a {@link Subject} is given, it will be added to
* the constructed {@link AttributeQuery}.
- *
+ *
* @param subject the subject to add to the query
- *
+ *
* @return the built query
*/
@Nonnull public static Request buildAttributeQueryRequest(final @Nullable Subject subject) {
final SAMLObjectBuilder<AttributeQuery> queryBuilder = (SAMLObjectBuilder<AttributeQuery>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>ensureBuilder(
- AttributeQuery.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>ensureBuilder(
+ AttributeQuery.DEFAULT_ELEMENT_NAME);
final AttributeQuery query = queryBuilder.buildObject();
if (subject != null) {
@@ -273,8 +273,8 @@ public class SAML1Controller extends BaseSAMLController {
}
final SAMLObjectBuilder<Request> requestBuilder = (SAMLObjectBuilder<Request>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<Request>ensureBuilder(
- Request.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<Request>ensureBuilder(
+ Request.DEFAULT_ELEMENT_NAME);
final Request request = requestBuilder.buildObject();
request.setID(IdentifierGenerationStrategy.getInstance(ProviderType.SECURE).generateIdentifier());
request.setIssueInstant(Instant.now());
@@ -283,18 +283,18 @@ public class SAML1Controller extends BaseSAMLController {
return request;
}
-
+
/**
* Build a SOAP11 {@link Envelope} with the given payload.
- *
+ *
* @param payload the payload
* @return the SOAP11 envelop
*/
@Nonnull public Envelope buildSOAP11Envelope(@Nonnull final XMLObject payload) {
final Envelope envelope = XMLObjectProviderRegistrySupport.getBuilderFactory()
- .<Envelope> ensureBuilder(Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
+ .<Envelope> ensureBuilder(Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
final Body body = XMLObjectProviderRegistrySupport.getBuilderFactory()
- .<Body> ensureBuilder(Body.DEFAULT_ELEMENT_NAME).buildObject(Body.DEFAULT_ELEMENT_NAME);
+ .<Body> ensureBuilder(Body.DEFAULT_ELEMENT_NAME).buildObject(Body.DEFAULT_ELEMENT_NAME);
body.getUnknownXMLObjects().add(payload);
envelope.setBody(body);
return envelope;
@@ -303,7 +303,7 @@ public class SAML1Controller extends BaseSAMLController {
/**
* Build a {@link HttpClient} which accepts all peer certificates and performs
* no hostname verification.
- *
+ *
* @return the http client
*/
@Nonnull public HttpClient buildHttpClient() throws Exception {
@@ -313,8 +313,8 @@ public class SAML1Controller extends BaseSAMLController {
}
public void sign(@Nonnull final SignableXMLObject signable, @Nonnull final String certificate,
- @Nonnull final String privateKey)
- throws SecurityException, MarshallingException, SignatureException, XMLParserException, IOException {
+ @Nonnull final String privateKey)
+ throws SecurityException, MarshallingException, SignatureException, XMLParserException, IOException {
final Resource certificateResource = applicationContext.getResource(certificate);
log.debug("Signing certificate resource '{}'", certificateResource);
@@ -336,7 +336,7 @@ public class SAML1Controller extends BaseSAMLController {
}
protected MessageContext decodeInboundMessageContextPost(@Nonnull HttpServletRequest servletRequest)
- throws Exception {
+ throws Exception {
HTTPPostDecoder decoder = new HTTPPostDecoder();
try {
setRequest(decoder, servletRequest);
diff --git a/src/main/java/sp/SAML2Controller.java b/src/main/java/sp/SAML2Controller.java
index f78a011..6311086 100644
--- a/src/main/java/sp/SAML2Controller.java
+++ b/src/main/java/sp/SAML2Controller.java
@@ -123,35 +123,35 @@ import net.shibboleth.shared.xml.XMLParserException;
@Controller
@RequestMapping({"/SAML2", "/{spId}/SAML2"})
public class SAML2Controller extends BaseSAMLController {
-
- private final Logger log = LoggerFactory.getLogger(SAML2Controller.class);
-
- @RequestMapping(value="/InitSSO/Redirect", method=RequestMethod.GET)
- public void initSSORequestRedirect(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
- final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
- authnRequest.setDestination(getDestinationRedirect(servletRequest, "SSO"));
- final Endpoint endpoint = buildIdpSsoEndpoint(SAMLConstants.SAML2_REDIRECT_BINDING_URI, authnRequest.getDestination());
+
+ private final Logger log = LoggerFactory.getLogger(SAML2Controller.class);
+
+ @RequestMapping(value="/InitSSO/Redirect", method=RequestMethod.GET)
+ public void initSSORequestRedirect(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
+ authnRequest.setDestination(getDestinationRedirect(servletRequest, "SSO"));
+ final Endpoint endpoint = buildIdpSsoEndpoint(SAMLConstants.SAML2_REDIRECT_BINDING_URI, authnRequest.getDestination());
final String spEntityID = getSpEntityId(servletRequest);
- final String idpEntityID = getIdpEntityId(servletRequest);
- final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID, servletRequest.getParameter("RelayState"));
+ final String idpEntityID = getIdpEntityId(servletRequest);
+ final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID, servletRequest.getParameter("RelayState"));
assert messageContext != null;
- encodeOutboundMessageContextRedirect(messageContext, servletResponse);
- }
-
- @RequestMapping(value="/InitSSO/POST", method=RequestMethod.GET)
- public void initSSORequestPost(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
- final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
- authnRequest.setDestination(getDestinationPost(servletRequest, "SSO"));
- final Endpoint endpoint = buildIdpSsoEndpoint(SAMLConstants.SAML2_POST_BINDING_URI, authnRequest.getDestination());
+ encodeOutboundMessageContextRedirect(messageContext, servletResponse);
+ }
+
+ @RequestMapping(value="/InitSSO/POST", method=RequestMethod.GET)
+ public void initSSORequestPost(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
+ authnRequest.setDestination(getDestinationPost(servletRequest, "SSO"));
+ final Endpoint endpoint = buildIdpSsoEndpoint(SAMLConstants.SAML2_POST_BINDING_URI, authnRequest.getDestination());
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID, servletRequest.getParameter("RelayState"));
assert messageContext != null;
- SAMLMessageSecuritySupport.signMessage(messageContext);
- encodeOutboundMessageContextPost(messageContext, servletResponse);
- }
+ SAMLMessageSecuritySupport.signMessage(messageContext);
+ encodeOutboundMessageContextPost(messageContext, servletResponse);
+ }
- @RequestMapping(value="/InitSSO/Artifact", method=RequestMethod.GET)
+ @RequestMapping(value="/InitSSO/Artifact", method=RequestMethod.GET)
public void initSSORequestArtifact(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setDestination(getDestinationArtifact(servletRequest, "SSO"));
@@ -188,7 +188,7 @@ public class SAML2Controller extends BaseSAMLController {
assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
-
+
@RequestMapping(value="/InitSSO/ReqAttr", method=RequestMethod.GET)
public void initSSORequestReqAttr(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
@@ -203,7 +203,7 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value = "/InitSSO/POST/Passive", method = RequestMethod.GET) public void initSSORequestPostPassive(
- @Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
+ @Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setDestination(getDestinationPost(servletRequest, "SSO"));
authnRequest.setIsPassive(true);
@@ -215,10 +215,10 @@ public class SAML2Controller extends BaseSAMLController {
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
-
+
@RequestMapping(value = "/InitSSO/POST/ForceAuthn", method = RequestMethod.GET) public void
- initSSORequestPostForceAuthn(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
- throws Exception {
+ initSSORequestPostForceAuthn(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
+ throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setDestination(getDestinationPost(servletRequest, "SSO"));
authnRequest.setForceAuthn(true);
@@ -231,12 +231,12 @@ public class SAML2Controller extends BaseSAMLController {
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
-
+
@RequestMapping(value="/InitSLO/Redirect", method=RequestMethod.GET)
public void initSLORequestRedirect(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
- throws Exception {
+ throws Exception {
final LogoutRequest logoutRequest =
- buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
+ 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);
@@ -248,16 +248,16 @@ public class SAML2Controller extends BaseSAMLController {
@RequestMapping(value="/InitSLO/Async", method=RequestMethod.GET)
public void initSLORequestAsync(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
- throws Exception {
+ throws Exception {
final LogoutRequest logoutRequest = buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
logoutRequest.setDestination(getDestinationRedirect(servletRequest, "SLO"));
-
+
final Extensions exts = (Extensions) builderFactory.ensureBuilder(Extensions.DEFAULT_ELEMENT_NAME)
- .buildObject(Extensions.DEFAULT_ELEMENT_NAME);
+ .buildObject(Extensions.DEFAULT_ELEMENT_NAME);
logoutRequest.setExtensions(exts);
exts.getUnknownXMLObjects().add(
- builderFactory.ensureBuilder(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);
final String idpEntityID = getIdpEntityId(servletRequest);
@@ -265,10 +265,10 @@ public class SAML2Controller extends BaseSAMLController {
assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
-
+
@RequestMapping(value="/InitSLO/POST", method=RequestMethod.GET)
public void initSLORequestPost(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
- throws Exception {
+ 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());
@@ -282,7 +282,7 @@ public class SAML2Controller extends BaseSAMLController {
@RequestMapping(value="/FinishSLO/Redirect", method=RequestMethod.GET)
public void finishSLOResponseRedirect(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
- throws Exception {
+ throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setDestination(getDestinationRedirect(servletRequest, "SLO"));
final Endpoint endpoint = buildIdpSloEndpoint(SAMLConstants.SAML2_REDIRECT_BINDING_URI, logoutResponse.getDestination());
@@ -295,15 +295,15 @@ public class SAML2Controller extends BaseSAMLController {
@RequestMapping(value="/FinishSLO/POST", method=RequestMethod.GET)
public void finishSLOResponsePost(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
- throws Exception {
+ throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setDestination(getDestinationPost(servletRequest, "SLO"));
final Endpoint endpoint = buildIdpSloEndpoint(SAMLConstants.SAML2_POST_BINDING_URI,
- logoutResponse.getDestination());
+ logoutResponse.getDestination());
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext =
- buildOutboundMessageContext(logoutResponse, endpoint, spEntityID, idpEntityID);
+ buildOutboundMessageContext(logoutResponse, endpoint, spEntityID, idpEntityID);
assert messageContext != null;
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
@@ -311,7 +311,7 @@ public class SAML2Controller extends BaseSAMLController {
@RequestMapping(value="/FinishSLO/SOAP", method=RequestMethod.GET)
public void finishSLOResponseSOAP(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse,
- final String id) throws Exception {
+ final String id) throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setInResponseTo(id);
final String spEntityID = getSpEntityId(servletRequest);
@@ -321,116 +321,116 @@ public class SAML2Controller extends BaseSAMLController {
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextSOAP(messageContext, servletResponse);
}
-
- @RequestMapping(value="/POST/ACS", method=RequestMethod.POST)
- public ResponseEntity<String> handleSSOResponsePOST(@Nonnull HttpServletRequest servletRequest,
- @Nonnull HttpServletResponse servletResponse) throws Exception {
- final MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
-
- if (!(messageContext.getMessage() instanceof Response)) {
- log.error("Inbound message was not a SAML 2 Response");
- return new ResponseEntity<>("Inbound message was not a SAML 2 Response", HttpStatus.BAD_REQUEST);
- }
-
- final Response response = (Response) messageContext.getMessage();
+
+ @RequestMapping(value="/POST/ACS", method=RequestMethod.POST)
+ public ResponseEntity<String> handleSSOResponsePOST(@Nonnull HttpServletRequest servletRequest,
+ @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
+
+ if (!(messageContext.getMessage() instanceof Response)) {
+ log.error("Inbound message was not a SAML 2 Response");
+ return new ResponseEntity<>("Inbound message was not a SAML 2 Response", HttpStatus.BAD_REQUEST);
+ }
+
+ final Response response = (Response) messageContext.getMessage();
assert response != null;
- final Element responseElement = response.getDOM();
+ final Element responseElement = response.getDOM();
assert responseElement != null;
- final String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
+ final String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
log.trace("Returning response" + System.lineSeparator() + "{}", formattedMessage);
-
- //TODO instead of returning plain text via a ResponseEntity, add a JSP view that looks good
-
- final HttpHeaders headers = new HttpHeaders();
- headers.add("Content-Type", "text/plain");
-
- return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
- }
+
+ //TODO instead of returning plain text via a ResponseEntity, add a JSP view that looks good
+
+ final HttpHeaders headers = new HttpHeaders();
+ headers.add("Content-Type", "text/plain");
+
+ return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
+ }
@RequestMapping(value="/Redirect/SLO", method=RequestMethod.GET)
public ResponseEntity<String> handleSLOResponseRedirect(@Nonnull final HttpServletRequest servletRequest,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextRedirect(servletRequest);
-
+
if (messageContext.getMessage() instanceof LogoutRequest) {
servletRequest.setAttribute("success", "1");
finishSLOResponseRedirect(servletRequest, servletResponse);
return null;
}
-
+
final LogoutResponse response = (LogoutResponse) messageContext.getMessage();
assert response != null;
final Element responseElement = response.getDOM();
assert responseElement != null;
final String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
-
+
//TODO instead of returning plain text via a ResponseEntity, add a JSP view that looks good
-
+
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "text/plain");
-
+
return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
}
-
+
@RequestMapping(value="/POST/SLO", method=RequestMethod.POST)
public ResponseEntity<String> handleSLOResponsePOST(@Nonnull final HttpServletRequest servletRequest,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
-
+
if (messageContext.getMessage() instanceof LogoutRequest) {
servletRequest.setAttribute("success", "1");
finishSLOResponsePost(servletRequest, servletResponse);
return null;
}
-
+
final LogoutResponse response = (LogoutResponse) messageContext.getMessage();
assert response != null;
final Element responseElement = response.getDOM();
assert responseElement != null;
final String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
-
+
//TODO instead of returning plain text via a ResponseEntity, add a JSP view that looks good
-
+
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "text/plain");
-
+
return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
}
-
+
@RequestMapping(value="/SOAP/SLO", method=RequestMethod.POST)
public ResponseEntity<String> handleSLOResponseSOAP(final @Nonnull HttpServletRequest servletRequest,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextSOAP(servletRequest);
-
+
if (messageContext.getMessage() instanceof LogoutRequest logreq) {
servletRequest.setAttribute("success", "1");
finishSLOResponseSOAP(servletRequest, servletResponse, logreq.getID());
return null;
}
-
+
final XMLObject msg = (XMLObject) messageContext.getMessage();
assert msg!= null;
final Element responseElement = msg.getDOM();
assert responseElement != null;
final String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
-
+
//TODO instead of returning plain text via a ResponseEntity, add a JSP view that looks good
-
+
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "text/plain");
-
+
return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
}
@RequestMapping(value="/SOAP/ArtifactResolution", method=RequestMethod.POST)
public ResponseEntity<String> handleArtifactResolutionSOAP(final @Nonnull HttpServletRequest servletRequest,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextSOAP(servletRequest);
-
+
if (messageContext.getMessage() instanceof ArtifactResolve artreq) {
-
+
final SAMLArtifactMapEntry entry = artifactMap.get(artreq.getArtifact().getValue());
-
+
final ArtifactResponse response = buildArtifactResponse(servletRequest, entry != null ? entry.getSamlMessage() : null);
response.setInResponseTo(artreq.getID());
final String spEntityID = getSpEntityId(servletRequest);
@@ -439,114 +439,114 @@ public class SAML2Controller extends BaseSAMLController {
assert mc != null;
SAMLMessageSecuritySupport.signMessage(mc);
encodeOutboundMessageContextSOAP(mc, servletResponse);
-
+
return null;
}
-
+
final XMLObject msg = (XMLObject) messageContext.getMessage();
assert msg!= null;
final Element responseElement = msg.getDOM();
assert responseElement != null;
final String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
-
+
//TODO instead of returning plain text via a ResponseEntity, add a JSP view that looks good
-
+
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "text/plain");
-
+
return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
}
-
+
private MessageContext buildOutboundMessageContext(final SAMLObject message, final Endpoint endpoint,
- final String spEntityId, final String idpEntityId) {
+ final String spEntityId, final String idpEntityId) {
return buildOutboundMessageContext(message, endpoint, spEntityId, idpEntityId, null);
}
-
+
private MessageContext buildOutboundMessageContext(final SAMLObject message, final Endpoint endpoint,
- final String spEntityId, final String idpEntityId, final String relayState) {
- final MessageContext messageContext = new MessageContext();
- messageContext.setMessage(message);
-
- final SAMLSelfEntityContext selfContext = messageContext.ensureSubcontext(SAMLSelfEntityContext.class);
- selfContext.setEntityId(spEntityId);
-
- final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
- peerContext.setEntityId(idpEntityId);
-
- if (endpoint != null) {
- final SAMLEndpointContext endpointContext = peerContext.ensureSubcontext(SAMLEndpointContext.class);
- endpointContext.setEndpoint(endpoint);
- }
-
- if (relayState != null) {
- SAMLBindingSupport.setRelayState(messageContext, relayState);
- }
-
- final SAMLArtifactContext artifactContext = messageContext.ensureSubcontext(SAMLArtifactContext.class);
- artifactContext.setSourceArtifactResolutionServiceEndpointIndex(1);
-
- 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);
- final SecurityParametersContext secParamsContext =
- messageContext.ensureSubcontext(SecurityParametersContext.class);
- secParamsContext.setSignatureSigningParameters(signingParameters);
-
- return messageContext;
- }
+ final String spEntityId, final String idpEntityId, final String relayState) {
+ final MessageContext messageContext = new MessageContext();
+ messageContext.setMessage(message);
+
+ final SAMLSelfEntityContext selfContext = messageContext.ensureSubcontext(SAMLSelfEntityContext.class);
+ selfContext.setEntityId(spEntityId);
+
+ final SAMLPeerEntityContext peerContext = messageContext.ensureSubcontext(SAMLPeerEntityContext.class);
+ peerContext.setEntityId(idpEntityId);
+
+ if (endpoint != null) {
+ final SAMLEndpointContext endpointContext = peerContext.ensureSubcontext(SAMLEndpointContext.class);
+ endpointContext.setEndpoint(endpoint);
+ }
+
+ if (relayState != null) {
+ SAMLBindingSupport.setRelayState(messageContext, relayState);
+ }
+
+ final SAMLArtifactContext artifactContext = messageContext.ensureSubcontext(SAMLArtifactContext.class);
+ artifactContext.setSourceArtifactResolutionServiceEndpointIndex(1);
+
+ 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);
+ final SecurityParametersContext secParamsContext =
+ messageContext.ensureSubcontext(SecurityParametersContext.class);
+ secParamsContext.setSignatureSigningParameters(signingParameters);
+
+ return messageContext;
+ }
private void setupResponse(final @Nonnull AbstractHttpServletResponseMessageEncoder encoder,
- final @Nonnull HttpServletResponse response) {
+ final @Nonnull HttpServletResponse response) {
encoder.setHttpServletResponseSupplier(new NonnullSupplier<>() {
- @Nonnull public HttpServletResponse get() {
- // TODO Auto-generated method stub
- return response;
- }
- });
+ @Nonnull public HttpServletResponse get() {
+ // TODO Auto-generated method stub
+ return response;
+ }
+ });
+ }
+
+ private void encodeOutboundMessageContextRedirect(final @Nonnull MessageContext messageContext,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
+ try {
+ setupResponse(encoder,servletResponse);
+ encoder.setMessageContext(messageContext);
+ encoder.initialize();
+
+ encoder.prepareContext();
+ encoder.encode();
+ } catch (final ComponentInitializationException | MessageEncodingException e) {
+ log.error("Error encoding the outbound message context", e);
+ throw e;
+ } finally {
+ encoder.destroy();
+ }
+ }
+
+ private void encodeOutboundMessageContextPost(final @Nonnull MessageContext messageContext,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final HTTPPostEncoder encoder = new HTTPPostEncoder();
+ try {
+ setupResponse(encoder,servletResponse);
+ encoder.setMessageContext(messageContext);
+ encoder.setVelocityEngine(velocityEngine);
+ encoder.initialize();
+
+ encoder.prepareContext();
+ encoder.encode();
+ } catch (final ComponentInitializationException | MessageEncodingException e) {
+ log.error("Error encoding the outbound message context", e);
+ throw e;
+ } finally {
+ encoder.destroy();
+ }
}
- private void encodeOutboundMessageContextRedirect(final @Nonnull MessageContext messageContext,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
- final HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
- try {
- setupResponse(encoder,servletResponse);
- encoder.setMessageContext(messageContext);
- encoder.initialize();
-
- encoder.prepareContext();
- encoder.encode();
- } catch (final ComponentInitializationException | MessageEncodingException e) {
- log.error("Error encoding the outbound message context", e);
- throw e;
- } finally {
- encoder.destroy();
- }
- }
-
- private void encodeOutboundMessageContextPost(final @Nonnull MessageContext messageContext,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
- final HTTPPostEncoder encoder = new HTTPPostEncoder();
- try {
- setupResponse(encoder,servletResponse);
- encoder.setMessageContext(messageContext);
- encoder.setVelocityEngine(velocityEngine);
- encoder.initialize();
-
- encoder.prepareContext();
- encoder.encode();
- } catch (final ComponentInitializationException | MessageEncodingException e) {
- log.error("Error encoding the outbound message context", e);
- throw e;
- } finally {
- encoder.destroy();
- }
- }
-
- private void encodeOutboundMessageContextArtifact(final @Nonnull MessageContext messageContext,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ private void encodeOutboundMessageContextArtifact(final @Nonnull MessageContext messageContext,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final HTTPArtifactEncoder encoder = new HTTPArtifactEncoder();
try {
setupResponse(encoder,servletResponse);
@@ -555,7 +555,25 @@ public class SAML2Controller extends BaseSAMLController {
assert artifactMap != null;
encoder.setArtifactMap(artifactMap);
encoder.initialize();
-
+
+ encoder.prepareContext();
+ encoder.encode();
+ } catch (final ComponentInitializationException | MessageEncodingException e) {
+ log.error("Error encoding the outbound message context", e);
+ throw e;
+ } finally {
+ encoder.destroy();
+ }
+ }
+
+ private void encodeOutboundMessageContextSOAP(final @Nonnull MessageContext messageContext,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
+ final HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
+ try {
+ setupResponse(encoder,servletResponse);
+ encoder.setMessageContext(messageContext);
+ encoder.initialize();
+
encoder.prepareContext();
encoder.encode();
} catch (final ComponentInitializationException | MessageEncodingException e) {
@@ -565,131 +583,113 @@ public class SAML2Controller extends BaseSAMLController {
encoder.destroy();
}
}
-
- private void encodeOutboundMessageContextSOAP(final @Nonnull MessageContext messageContext,
- final @Nonnull HttpServletResponse servletResponse) throws Exception {
- final HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
- try {
- setupResponse(encoder,servletResponse);
- encoder.setMessageContext(messageContext);
- encoder.initialize();
-
- encoder.prepareContext();
- encoder.encode();
- } catch (final ComponentInitializationException | MessageEncodingException e) {
- log.error("Error encoding the outbound message context", e);
- throw e;
- } finally {
- encoder.destroy();
- }
- }
-
- 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 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(final String binding, final String destination) {
final SingleLogoutService sloEndpoint = (SingleLogoutService) builderFactory.ensureBuilder(
- SingleLogoutService.DEFAULT_ELEMENT_NAME).buildObject(SingleLogoutService.DEFAULT_ELEMENT_NAME);
+ SingleLogoutService.DEFAULT_ELEMENT_NAME).buildObject(SingleLogoutService.DEFAULT_ELEMENT_NAME);
sloEndpoint.setBinding(binding);
sloEndpoint.setLocation(destination);
return sloEndpoint;
}
-
- private AuthnRequest buildAuthnRequest(final @Nonnull HttpServletRequest servletRequest) {
- final AuthnRequest authnRequest = (AuthnRequest) builderFactory.ensureBuilder(
- AuthnRequest.DEFAULT_ELEMENT_NAME).buildObject(AuthnRequest.DEFAULT_ELEMENT_NAME);
-
- authnRequest.setID(idGenerator.generateIdentifier());
- authnRequest.setIssueInstant(Instant.now());
- authnRequest.setAssertionConsumerServiceURL(getAcsUrl(servletRequest));
- authnRequest.setProtocolBinding(SAMLConstants.SAML2_POST_BINDING_URI);
-
- 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.ensureBuilder(
- NameIDPolicy.DEFAULT_ELEMENT_NAME).buildObject(NameIDPolicy.DEFAULT_ELEMENT_NAME);
- nameIDPolicy.setAllowCreate(true);
- authnRequest.setNameIDPolicy(nameIDPolicy);
-
- String param = StringSupport.trimOrNull(servletRequest.getParameter("nameIDFormat"));
- if (param != null) {
- nameIDPolicy.setFormat(param);
- }
-
- param = StringSupport.trimOrNull(servletRequest.getParameter("spNameQualifier"));
- if (param != null) {
- nameIDPolicy.setSPNameQualifier(param);
- }
-
- param = StringSupport.trimOrNull(servletRequest.getParameter("subjectID"));
- if (param != null) {
- 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);
- }
+
+ private AuthnRequest buildAuthnRequest(final @Nonnull HttpServletRequest servletRequest) {
+ final AuthnRequest authnRequest = (AuthnRequest) builderFactory.ensureBuilder(
+ AuthnRequest.DEFAULT_ELEMENT_NAME).buildObject(AuthnRequest.DEFAULT_ELEMENT_NAME);
+
+ authnRequest.setID(idGenerator.generateIdentifier());
+ authnRequest.setIssueInstant(Instant.now());
+ authnRequest.setAssertionConsumerServiceURL(getAcsUrl(servletRequest));
+ authnRequest.setProtocolBinding(SAMLConstants.SAML2_POST_BINDING_URI);
+
+ 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.ensureBuilder(
+ NameIDPolicy.DEFAULT_ELEMENT_NAME).buildObject(NameIDPolicy.DEFAULT_ELEMENT_NAME);
+ nameIDPolicy.setAllowCreate(true);
+ authnRequest.setNameIDPolicy(nameIDPolicy);
+
+ String param = StringSupport.trimOrNull(servletRequest.getParameter("nameIDFormat"));
+ if (param != null) {
+ nameIDPolicy.setFormat(param);
+ }
+
+ param = StringSupport.trimOrNull(servletRequest.getParameter("spNameQualifier"));
+ if (param != null) {
+ nameIDPolicy.setSPNameQualifier(param);
+ }
+
+ param = StringSupport.trimOrNull(servletRequest.getParameter("subjectID"));
+ if (param != null) {
+ 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.ensureBuilder(Subject.DEFAULT_ELEMENT_NAME).buildObject(
- Subject.DEFAULT_ELEMENT_NAME);
- subject.setNameID(nameID);
+ Subject.DEFAULT_ELEMENT_NAME);
+ subject.setNameID(nameID);
authnRequest.setSubject(subject);
- }
-
- param = StringSupport.trimOrNull(servletRequest.getParameter("classRef"));
- if (param != null) {
+ }
+
+ param = StringSupport.trimOrNull(servletRequest.getParameter("classRef"));
+ if (param != null) {
final AuthnContextClassRef ref = (AuthnContextClassRef) builderFactory.ensureBuilder(
- AuthnContextClassRef.DEFAULT_ELEMENT_NAME).buildObject(AuthnContextClassRef.DEFAULT_ELEMENT_NAME);
+ AuthnContextClassRef.DEFAULT_ELEMENT_NAME).buildObject(AuthnContextClassRef.DEFAULT_ELEMENT_NAME);
ref.setURI(param);
- final RequestedAuthnContext rac = (RequestedAuthnContext) builderFactory.ensureBuilder(
- RequestedAuthnContext.DEFAULT_ELEMENT_NAME).buildObject(
- RequestedAuthnContext.DEFAULT_ELEMENT_NAME);
- rac.getAuthnContextClassRefs().add(ref);
- authnRequest.setRequestedAuthnContext(rac);
- }
+ final RequestedAuthnContext rac = (RequestedAuthnContext) builderFactory.ensureBuilder(
+ RequestedAuthnContext.DEFAULT_ELEMENT_NAME).buildObject(
+ RequestedAuthnContext.DEFAULT_ELEMENT_NAME);
+ rac.getAuthnContextClassRefs().add(ref);
+ authnRequest.setRequestedAuthnContext(rac);
+ }
param = StringSupport.trimOrNull(servletRequest.getParameter("declRef"));
if (param != null) {
final AuthnContextDeclRef ref = (AuthnContextDeclRef) builderFactory.ensureBuilder(
- AuthnContextDeclRef.DEFAULT_ELEMENT_NAME).buildObject(AuthnContextDeclRef.DEFAULT_ELEMENT_NAME);
+ AuthnContextDeclRef.DEFAULT_ELEMENT_NAME).buildObject(AuthnContextDeclRef.DEFAULT_ELEMENT_NAME);
ref.setURI(param);
final RequestedAuthnContext rac = (RequestedAuthnContext) builderFactory.ensureBuilder(
- RequestedAuthnContext.DEFAULT_ELEMENT_NAME).buildObject(
- RequestedAuthnContext.DEFAULT_ELEMENT_NAME);
+ RequestedAuthnContext.DEFAULT_ELEMENT_NAME).buildObject(
+ RequestedAuthnContext.DEFAULT_ELEMENT_NAME);
rac.getAuthnContextDeclRefs().add(ref);
authnRequest.setRequestedAuthnContext(rac);
}
-
- param = StringSupport.trimOrNull(servletRequest.getParameter("requesters"));
- if (param != null) {
- final String[] requesters = param.split(",");
- if (requesters != null && requesters.length > 0) {
- for (final String req : requesters) {
- final RequesterID requesterID = (RequesterID) builderFactory.ensureBuilder(
- RequesterID.DEFAULT_ELEMENT_NAME).buildObject(RequesterID.DEFAULT_ELEMENT_NAME);
- requesterID.setURI(req);
- getScoping(authnRequest).getRequesterIDs().add(requesterID);
- }
- }
- }
-
+
+ param = StringSupport.trimOrNull(servletRequest.getParameter("requesters"));
+ if (param != null) {
+ final String[] requesters = param.split(",");
+ if (requesters != null && requesters.length > 0) {
+ for (final String req : requesters) {
+ final RequesterID requesterID = (RequesterID) builderFactory.ensureBuilder(
+ RequesterID.DEFAULT_ELEMENT_NAME).buildObject(RequesterID.DEFAULT_ELEMENT_NAME);
+ requesterID.setURI(req);
+ getScoping(authnRequest).getRequesterIDs().add(requesterID);
+ }
+ }
+ }
+
param = StringSupport.trimOrNull(servletRequest.getParameter("idplist"));
if (param != null) {
final String[] idplist = param.split(",");
if (idplist != null && idplist.length > 0) {
final IDPList obj = (IDPList) builderFactory.ensureBuilder(
- IDPList.DEFAULT_ELEMENT_NAME).buildObject(IDPList.DEFAULT_ELEMENT_NAME);
+ IDPList.DEFAULT_ELEMENT_NAME).buildObject(IDPList.DEFAULT_ELEMENT_NAME);
for (final String idp : idplist) {
final IDPEntry entry = (IDPEntry) builderFactory.ensureBuilder(
- IDPEntry.DEFAULT_ELEMENT_NAME).buildObject(IDPEntry.DEFAULT_ELEMENT_NAME);
+ IDPEntry.DEFAULT_ELEMENT_NAME).buildObject(IDPEntry.DEFAULT_ELEMENT_NAME);
entry.setProviderID(idp);
obj.getIDPEntrys().add(entry);
}
@@ -701,76 +701,76 @@ public class SAML2Controller extends BaseSAMLController {
if (param != null) {
getScoping(authnRequest).setProxyCount(Integer.valueOf(param));
}
-
- return authnRequest;
- }
-
- private Scoping getScoping(@Nonnull final AuthnRequest request) {
- if (request.getScoping() == null) {
+
+ return authnRequest;
+ }
+
+ private Scoping getScoping(@Nonnull final AuthnRequest request) {
+ if (request.getScoping() == null) {
final Scoping scoping = (Scoping) builderFactory.ensureBuilder(
- Scoping.DEFAULT_ELEMENT_NAME).buildObject(Scoping.DEFAULT_ELEMENT_NAME);
+ Scoping.DEFAULT_ELEMENT_NAME).buildObject(Scoping.DEFAULT_ELEMENT_NAME);
request.setScoping(scoping);
- }
-
- return request.getScoping();
- }
+ }
+
+ return request.getScoping();
+ }
private Extensions buildRequestedAttributesExtensions() {
final RequestedAttribute attribute = (RequestedAttribute) builderFactory.ensureBuilder(
- RequestedAttribute.DEFAULT_ELEMENT_NAME).buildObject(RequestedAttribute.DEFAULT_ELEMENT_NAME);
+ 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.ensureBuilder(
- RequestedAttributes.DEFAULT_ELEMENT_NAME).buildObject(RequestedAttributes.DEFAULT_ELEMENT_NAME);
+ RequestedAttributes.DEFAULT_ELEMENT_NAME).buildObject(RequestedAttributes.DEFAULT_ELEMENT_NAME);
attributes.getRequestedAttributes().add(attribute);
final Extensions extensions = (Extensions) builderFactory.ensureBuilder(
- Extensions.DEFAULT_ELEMENT_NAME).buildObject(Extensions.DEFAULT_ELEMENT_NAME);
+ Extensions.DEFAULT_ELEMENT_NAME).buildObject(Extensions.DEFAULT_ELEMENT_NAME);
extensions.getUnknownXMLObjects().add(attributes);
- return extensions;
+ return extensions;
}
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.DEFAULT_ELEMENT_NAME).buildObject(LogoutRequest.DEFAULT_ELEMENT_NAME);
+
logoutRequest.setID(idGenerator.generateIdentifier());
logoutRequest.setIssueInstant(Instant.now());
-
+
final Issuer issuer = (Issuer) builderFactory.ensureBuilder(
- Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
+ Issuer.DEFAULT_ELEMENT_NAME).buildObject(Issuer.DEFAULT_ELEMENT_NAME);
issuer.setValue(getSpEntityId(servletRequest));
logoutRequest.setIssuer(issuer);
-
+
final NameID nameID = (NameID) builderFactory.ensureBuilder(NameID.DEFAULT_ELEMENT_NAME).buildObject(
- NameID.DEFAULT_ELEMENT_NAME);
+ NameID.DEFAULT_ELEMENT_NAME);
nameID.setValue(principalName);
nameID.setFormat(NameID.TRANSIENT);
nameID.setSPNameQualifier(getSpEntityId(servletRequest));
nameID.setNameQualifier(getIdpEntityId(servletRequest));
logoutRequest.setNameID(nameID);
-
+
return logoutRequest;
}
private LogoutResponse buildLogoutResponse(final HttpServletRequest servletRequest) {
final LogoutResponse logoutResponse = (LogoutResponse) builderFactory.ensureBuilder(
- LogoutResponse.DEFAULT_ELEMENT_NAME).buildObject(LogoutResponse.DEFAULT_ELEMENT_NAME);
-
+ LogoutResponse.DEFAULT_ELEMENT_NAME).buildObject(LogoutResponse.DEFAULT_ELEMENT_NAME);
+
logoutResponse.setID(idGenerator.generateIdentifier());
logoutResponse.setIssueInstant(Instant.now());
-
+
final Issuer issuer = (Issuer) builderFactory.ensureBuilder(Issuer.DEFAULT_ELEMENT_NAME).buildObject(
- Issuer.DEFAULT_ELEMENT_NAME);
+ Issuer.DEFAULT_ELEMENT_NAME);
issuer.setValue(getSpEntityId(servletRequest));
logoutResponse.setIssuer(issuer);
-
+
final Status status = (Status) builderFactory.ensureBuilder(Status.DEFAULT_ELEMENT_NAME).buildObject(
- Status.DEFAULT_ELEMENT_NAME);
+ Status.DEFAULT_ELEMENT_NAME);
logoutResponse.setStatus(status);
-
+
final StatusCode code = (StatusCode) builderFactory.ensureBuilder(StatusCode.DEFAULT_ELEMENT_NAME).buildObject(
- StatusCode.DEFAULT_ELEMENT_NAME);
+ StatusCode.DEFAULT_ELEMENT_NAME);
status.setStatusCode(code);
String param = servletRequest.getParameter("success");
if (param == null) {
@@ -779,74 +779,74 @@ public class SAML2Controller extends BaseSAMLController {
param = (String) attr;
}
}
-
+
if (param != null && "1".equals(param)) {
code.setValue(StatusCode.SUCCESS);
} else {
code.setValue(StatusCode.RESPONDER);
}
-
+
return logoutResponse;
}
private ArtifactResponse buildArtifactResponse(final HttpServletRequest servletRequest, final SAMLObject content) {
final ArtifactResponse response = (ArtifactResponse) builderFactory.ensureBuilder(
- ArtifactResponse.DEFAULT_ELEMENT_NAME).buildObject(ArtifactResponse.DEFAULT_ELEMENT_NAME);
-
+ ArtifactResponse.DEFAULT_ELEMENT_NAME).buildObject(ArtifactResponse.DEFAULT_ELEMENT_NAME);
+
response.setID(idGenerator.generateIdentifier());
response.setIssueInstant(Instant.now());
-
+
final Issuer issuer = (Issuer) builderFactory.ensureBuilder(Issuer.DEFAULT_ELEMENT_NAME).buildObject(
- Issuer.DEFAULT_ELEMENT_NAME);
+ Issuer.DEFAULT_ELEMENT_NAME);
issuer.setValue(getSpEntityId(servletRequest));
response.setIssuer(issuer);
-
+
if (content != null) {
response.setMessage(content);
}
-
+
final Status status = (Status) builderFactory.ensureBuilder(Status.DEFAULT_ELEMENT_NAME).buildObject(
- Status.DEFAULT_ELEMENT_NAME);
+ Status.DEFAULT_ELEMENT_NAME);
response.setStatus(status);
-
+
final StatusCode code = (StatusCode) builderFactory.ensureBuilder(StatusCode.DEFAULT_ELEMENT_NAME).buildObject(
- StatusCode.DEFAULT_ELEMENT_NAME);
+ StatusCode.DEFAULT_ELEMENT_NAME);
status.setStatusCode(code);
-
+
code.setValue(StatusCode.SUCCESS);
-
+
return response;
}
-
- @Nonnull private String getDestinationRedirect(final @Nonnull HttpServletRequest servletRequest, final @Nonnull String profile) {
- //TODO servlet context
- final String destinationPath = "/idp/profile/SAML2/Redirect/" + profile;
- final String baseUrl = getBaseUrl(servletRequest);
- try {
- final URLBuilder urlBuilder = new URLBuilder(baseUrl);
- urlBuilder.setPath(destinationPath);
- return urlBuilder.buildURL();
- } catch (final MalformedURLException e) {
- log.error("Couldn't parse base URL, reverting to internal default destination: {}", baseUrl);
- return "http://localhost:8080" + destinationPath;
- }
- }
-
- @Nonnull private String getDestinationPost(final @Nonnull HttpServletRequest servletRequest, final @Nonnull String profile) {
- //TODO servlet context
- final String destinationPath = "/idp/profile/SAML2/POST/" + profile;
- final String baseUrl = getBaseUrl(servletRequest);
- try {
- final URLBuilder urlBuilder = new URLBuilder(baseUrl);
- urlBuilder.setPath(destinationPath);
- return urlBuilder.buildURL();
- } catch (final MalformedURLException e) {
- log.error("Couldn't parse base URL, reverting to internal default destination: {}", baseUrl);
- return "http://localhost:8080" + destinationPath;
- }
- }
-
- @Nonnull private String getDestinationArtifact(final @Nonnull HttpServletRequest servletRequest, final @Nonnull String profile) {
+
+ @Nonnull private String getDestinationRedirect(final @Nonnull HttpServletRequest servletRequest, final @Nonnull String profile) {
+ //TODO servlet context
+ final String destinationPath = "/idp/profile/SAML2/Redirect/" + profile;
+ final String baseUrl = getBaseUrl(servletRequest);
+ try {
+ final URLBuilder urlBuilder = new URLBuilder(baseUrl);
+ urlBuilder.setPath(destinationPath);
+ return urlBuilder.buildURL();
+ } catch (final MalformedURLException e) {
+ log.error("Couldn't parse base URL, reverting to internal default destination: {}", baseUrl);
+ return "http://localhost:8080" + destinationPath;
+ }
+ }
+
+ @Nonnull private String getDestinationPost(final @Nonnull HttpServletRequest servletRequest, final @Nonnull String profile) {
+ //TODO servlet context
+ final String destinationPath = "/idp/profile/SAML2/POST/" + profile;
+ final String baseUrl = getBaseUrl(servletRequest);
+ try {
+ final URLBuilder urlBuilder = new URLBuilder(baseUrl);
+ urlBuilder.setPath(destinationPath);
+ return urlBuilder.buildURL();
+ } catch (final MalformedURLException e) {
+ log.error("Couldn't parse base URL, reverting to internal default destination: {}", baseUrl);
+ return "http://localhost:8080" + destinationPath;
+ }
+ }
+
+ @Nonnull private String getDestinationArtifact(final @Nonnull HttpServletRequest servletRequest, final @Nonnull String profile) {
//TODO servlet context
final String destinationPath = "/idp/profile/SAML2/Artifact/" + profile;
final String baseUrl = getBaseUrl(servletRequest);
@@ -860,39 +860,39 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- @Nonnull private String getAcsUrl(final @Nonnull HttpServletRequest servletRequest) {
- //TODO servlet context
- final String spId = getSpId(servletRequest);
+ @Nonnull private String getAcsUrl(final @Nonnull HttpServletRequest servletRequest) {
+ //TODO servlet context
+ 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 {
- final URLBuilder urlBuilder = new URLBuilder(baseUrl);
- urlBuilder.setPath(acsPath);
- return urlBuilder.buildURL();
- } catch (final MalformedURLException e) {
- log.error("Couldn't parse base URL, reverting to internal default ACS: {}", baseUrl);
- return "http://localhost:8080" + acsPath;
- }
- }
-
- @Nonnull private String getBaseUrl(final @Nonnull HttpServletRequest servletRequest) {
- //TODO servlet context
- final String requestUrl = servletRequest.getRequestURL().toString();
- assert requestUrl!=null;
- try {
- 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 (final MalformedURLException e) {
- log.error("Couldn't parse request URL, reverting to internal default base URL: {}", requestUrl);
- return "http://localhost:8080";
- }
-
- }
+ final String baseUrl = getBaseUrl(servletRequest);
+ try {
+ final URLBuilder urlBuilder = new URLBuilder(baseUrl);
+ urlBuilder.setPath(acsPath);
+ return urlBuilder.buildURL();
+ } catch (final MalformedURLException e) {
+ log.error("Couldn't parse base URL, reverting to internal default ACS: {}", baseUrl);
+ return "http://localhost:8080" + acsPath;
+ }
+ }
+
+ @Nonnull private String getBaseUrl(final @Nonnull HttpServletRequest servletRequest) {
+ //TODO servlet context
+ final String requestUrl = servletRequest.getRequestURL().toString();
+ assert requestUrl!=null;
+ try {
+ 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 (final MalformedURLException e) {
+ log.error("Couldn't parse request URL, reverting to internal default base URL: {}", requestUrl);
+ return "http://localhost:8080";
+ }
+
+ }
@Nonnull private String getSpEntityId(final HttpServletRequest servletRequest) {
// TODO get from config somewhere
@@ -910,7 +910,7 @@ public class SAML2Controller extends BaseSAMLController {
/**
* Get the SP id as a path variable, or <code>null</code> if not present.
- *
+ *
* @param servletRequest the servlet request
* @return the SP id or <code>null</code>
*/
@@ -928,8 +928,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(method = RequestMethod.GET) public ResponseEntity<String>
- defaultPage(final HttpServletRequest servletRequest, final 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");
@@ -940,10 +940,10 @@ public class SAML2Controller extends BaseSAMLController {
headers.add("Content-Type", "text/plain");
return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
}
-
+
/**
* Send a SAML 2 logout request.
- *
+ *
* @param servletRequest the servlet request
* @param servletResponse the servlet response
* @param endpoint the endpoint to send the logout request to
@@ -955,19 +955,19 @@ public class SAML2Controller extends BaseSAMLController {
* @param clientTLSPassword the SP password
* @param clientSigningCertificate ...
* @param clientSigningPrivateKey ...
- *
+ *
* @return the SAML 2 logout response is displayed
- *
+ *
* @throws Exception if an error occurs
*/
@SuppressWarnings("deprecation")
- @RequestMapping(value = "/InitSLO/SOAP", method = RequestMethod.POST) public ResponseEntity<String>
- initSAML2LogoutRequest(final @Nonnull HttpServletRequest servletRequest, final @Nonnull HttpServletResponse servletResponse,
- @RequestParam(value = "endpoint", required = true) final @Nonnull String endpoint,
- @RequestParam(value = "principalName", required = true) final @Nonnull String principalName,
- @RequestParam(value = "clientSigningCertificate", required = false) final @Nonnull String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) final @Nonnull String clientSigningPrivateKey)
- throws Exception {
+ @RequestMapping(value = "/InitSLO/SOAP", method = RequestMethod.POST) public ResponseEntity<String>
+ initSAML2LogoutRequest(final @Nonnull HttpServletRequest servletRequest, final @Nonnull HttpServletResponse servletResponse,
+ @RequestParam(value = "endpoint", required = true) final @Nonnull String endpoint,
+ @RequestParam(value = "principalName", required = true) final @Nonnull String principalName,
+ @RequestParam(value = "clientSigningCertificate", required = false) final @Nonnull String clientSigningCertificate,
+ @RequestParam(value = "clientSigningPrivateKey", required = false) final @Nonnull String clientSigningPrivateKey)
+ throws Exception {
final HttpClient httpClient = buildHttpClient();
@@ -985,10 +985,10 @@ public class SAML2Controller extends BaseSAMLController {
final Envelope envelope = buildSOAP11Envelope(logoutRequest);
if (log.isDebugEnabled()) {
- final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
- assert marshaller != null;
+ final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
+ assert marshaller != null;
log.debug("Sending LogoutRequest to endpoint '{}':\n", endpoint, SerializeSupport.prettyPrintXML(
- marshaller.marshall(envelope, parserPool.newDocument())));
+ marshaller.marshall(envelope, parserPool.newDocument())));
}
final InOutOperationContext context = buildInOutOperationContext(envelope);
@@ -1008,11 +1008,11 @@ public class SAML2Controller extends BaseSAMLController {
headers.add("Content-Type", "text/plain");
return new ResponseEntity<>(formattedMessage, headers, HttpStatus.OK);
- }
+ }
/**
* Send a SAML 2 attribute query.
- *
+ *
* @param servletRequest the servlet request
* @param servletResponse the servlet response
* @param endpoint the endpoint to send the attribute query to
@@ -1024,19 +1024,19 @@ public class SAML2Controller extends BaseSAMLController {
* @param clientTLSPassword the SP password
* @param clientSigningCertificate ...
* @param clientSigningPrivateKey ...
- *
+ *
* @return the SAML 2 attribute query response is displayed
- *
+ *
* @throws Exception if an error occurs
*/
@SuppressWarnings("deprecation")
- @RequestMapping(value = "/AttributeQuery", method = RequestMethod.POST) public ResponseEntity<String>
- initSAML2AttributeQuery(final @Nonnull HttpServletRequest servletRequest, final @Nonnull HttpServletResponse servletResponse,
- @RequestParam(value = "endpoint", required = true) final @Nonnull String endpoint,
- @RequestParam(value = "principalName", required = true) final @Nonnull String principalName,
- @RequestParam(value = "clientSigningCertificate", required = false) final @Nonnull String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) final @Nonnull String clientSigningPrivateKey)
- throws Exception {
+ @RequestMapping(value = "/AttributeQuery", method = RequestMethod.POST) public ResponseEntity<String>
+ initSAML2AttributeQuery(final @Nonnull HttpServletRequest servletRequest, final @Nonnull HttpServletResponse servletResponse,
+ @RequestParam(value = "endpoint", required = true) final @Nonnull String endpoint,
+ @RequestParam(value = "principalName", required = true) final @Nonnull String principalName,
+ @RequestParam(value = "clientSigningCertificate", required = false) final @Nonnull String clientSigningCertificate,
+ @RequestParam(value = "clientSigningPrivateKey", required = false) final @Nonnull String clientSigningPrivateKey)
+ throws Exception {
final HttpClient httpClient = buildHttpClient();
@@ -1054,16 +1054,16 @@ public class SAML2Controller extends BaseSAMLController {
final Envelope envelope = buildSOAP11Envelope(attributeQuery);
if (log.isDebugEnabled()) {
- final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
- assert marshaller != null;
+ final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
+ assert marshaller != null;
log.debug("Sending AttributeQuery to endpoint '{}':\n", endpoint, SerializeSupport.prettyPrintXML(
- marshaller.marshall(envelope, parserPool.newDocument())));
+ marshaller.marshall(envelope, parserPool.newDocument())));
}
final InOutOperationContext context = buildInOutOperationContext(envelope);
httpSoapClient.send(endpoint, context);
-
+
final MessageContext msgContext = context.getInboundMessageContext();
assert msgContext!= null;
final SOAP11Context soapContext = msgContext.getSubcontext(SOAP11Context.class);
@@ -1082,14 +1082,14 @@ public class SAML2Controller extends BaseSAMLController {
/**
* Builds a basic SAML 2 attribute query.
- *
+ *
* @param servletRequest ...
* @param principalName the principal name
- *
+ *
* @return the attribute query
*/
@Nonnull public AttributeQuery buildSAML2AttributeQueryRequest(@Nonnull final HttpServletRequest servletRequest,
- @Nonnull final String principalName) {
+ @Nonnull final String principalName) {
final Subject subject = buildSubject(principalName);
@@ -1105,32 +1105,32 @@ public class SAML2Controller extends BaseSAMLController {
/**
* Builds a {@link Issuer}.
- *
+ *
* @param entityID the entity ID to use in the Issuer
- *
+ *
* @return the built Issuer
*/
@Nonnull public static Issuer buildIssuer(@Nonnull @NotEmpty final String entityID) {
final SAMLObjectBuilder<Issuer> issuerBuilder = (SAMLObjectBuilder<Issuer>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
- Issuer.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<Issuer>ensureBuilder(
+ Issuer.DEFAULT_ELEMENT_NAME);
final Issuer issuer = issuerBuilder.buildObject();
issuer.setValue(entityID);
return issuer;
}
-
+
/**
* Builds a {@link Subject}. If a principal name is given a {@link NameID}, whose value is the given principal name,
* will be created and added to the {@link Subject}.
- *
+ *
* @param principalName the principal name to add to the subject
- *
+ *
* @return the built subject
*/
@Nonnull public static Subject buildSubject(@Nullable final String principalName) {
final SAMLObjectBuilder<Subject> subjectBuilder = (SAMLObjectBuilder<Subject>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
- Subject.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<Subject>ensureBuilder(
+ Subject.DEFAULT_ELEMENT_NAME);
final Subject subject = subjectBuilder.buildObject();
if (principalName != null) {
@@ -1142,15 +1142,15 @@ public class SAML2Controller extends BaseSAMLController {
/**
* Builds a {@link NameID}.
- *
+ *
* @param principalName the principal name to use in the NameID
- *
+ *
* @return the built NameID
*/
@Nonnull public static NameID buildNameID(@Nonnull @NotEmpty final String principalName) {
final SAMLObjectBuilder<NameID> nameIdBuilder = (SAMLObjectBuilder<NameID>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
- NameID.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<NameID>ensureBuilder(
+ NameID.DEFAULT_ELEMENT_NAME);
final NameID nameId = nameIdBuilder.buildObject();
nameId.setValue(principalName);
return nameId;
@@ -1159,15 +1159,15 @@ public class SAML2Controller extends BaseSAMLController {
/**
* Builds an {@link AttributeQuery}. If a {@link Subject} is given, it will be added to the constructed
* {@link AttributeQuery}.
- *
+ *
* @param subject the subject to add to the query
- *
+ *
* @return the built query
*/
@Nonnull public static AttributeQuery buildAttributeQueryRequest(@Nullable final Subject subject) {
final SAMLObjectBuilder<AttributeQuery> queryBuilder = (SAMLObjectBuilder<AttributeQuery>)
- XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>ensureBuilder(
- AttributeQuery.DEFAULT_ELEMENT_NAME);
+ XMLObjectProviderRegistrySupport.getBuilderFactory().<AttributeQuery>ensureBuilder(
+ AttributeQuery.DEFAULT_ELEMENT_NAME);
final AttributeQuery query = queryBuilder.buildObject();
query.setIssueInstant(Instant.now());
@@ -1179,18 +1179,18 @@ public class SAML2Controller extends BaseSAMLController {
return query;
}
-
+
/**
* Build a SOAP11 {@link Envelope} with the given payload.
- *
+ *
* @param payload the payload
* @return the SOAP11 envelop
*/
@Nonnull public Envelope buildSOAP11Envelope(@Nonnull final XMLObject payload) {
final Envelope envelope = XMLObjectProviderRegistrySupport.getBuilderFactory()
- .<Envelope> ensureBuilder(Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
+ .<Envelope> ensureBuilder(Envelope.DEFAULT_ELEMENT_NAME).buildObject(Envelope.DEFAULT_ELEMENT_NAME);
final Body body = XMLObjectProviderRegistrySupport.getBuilderFactory()
- .<Body> ensureBuilder(Body.DEFAULT_ELEMENT_NAME).buildObject(Body.DEFAULT_ELEMENT_NAME);
+ .<Body> ensureBuilder(Body.DEFAULT_ELEMENT_NAME).buildObject(Body.DEFAULT_ELEMENT_NAME);
body.getUnknownXMLObjects().add(payload);
envelope.setBody(body);
return envelope;
@@ -1198,7 +1198,7 @@ public class SAML2Controller extends BaseSAMLController {
/**
* Build a {@link InOutOperationContext}.
- *
+ *
* @param envelope the envelope
* @return the context
*/
@@ -1218,7 +1218,7 @@ public class SAML2Controller extends BaseSAMLController {
/**
* Build a {@link HttpClient} which accepts all peer certificates and performs
* no hostname verification.
- *
+ *
* @return the http client
*/
@Nonnull public HttpClient buildHttpClient() throws Exception {
@@ -1228,8 +1228,8 @@ public class SAML2Controller extends BaseSAMLController {
}
public void sign(@Nonnull final SignableXMLObject signable, @Nonnull final String certificate,
- @Nonnull final String privateKey)
- throws SecurityException, MarshallingException, SignatureException, XMLParserException, IOException {
+ @Nonnull final String privateKey)
+ throws SecurityException, MarshallingException, SignatureException, XMLParserException, IOException {
final Resource certificateResource = applicationContext.getResource(certificate);
log.debug("Signing certificate resource '{}'", certificateResource);
@@ -1250,7 +1250,7 @@ public class SAML2Controller extends BaseSAMLController {
}
protected MessageContext decodeInboundMessageContextPost(@Nonnull HttpServletRequest servletRequest)
- throws Exception {
+ throws Exception {
HTTPPostDecoder decoder = new HTTPPostDecoder();
try {
setRequest(decoder, servletRequest);
@@ -1269,7 +1269,7 @@ public class SAML2Controller extends BaseSAMLController {
}
protected MessageContext decodeInboundMessageContextSOAP(@Nonnull HttpServletRequest servletRequest)
- throws Exception {
+ throws Exception {
HTTPSOAP11Decoder decoder = new HTTPSOAP11Decoder();
try {
setRequest(decoder, servletRequest);
@@ -1286,9 +1286,9 @@ public class SAML2Controller extends BaseSAMLController {
decoder.destroy();
}
}
-
+
protected MessageContext decodeInboundMessageContextRedirect(@Nonnull HttpServletRequest servletRequest)
- throws Exception {
+ throws Exception {
HTTPRedirectDeflateDecoder decoder = new HTTPRedirectDeflateDecoder();
try {
setRequest(decoder, servletRequest);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list