[java-idp-testbed] branch main updated: Supress Warnings
Rod Widdowson
rdw at steadingsoftware.com
Mon Dec 23 14:28:53 UTC 2024
This is an automated email from the git hooks/post-receive script.
rdw 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=f986eeadf049b6b27afe08af43e6010d4fa2959c
The following commit(s) were added to refs/heads/main by this push:
new f986eea Supress Warnings
f986eea is described below
commit f986eeadf049b6b27afe08af43e6010d4fa2959c
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon Dec 23 14:14:12 2024 +0000
Supress Warnings
---
src/main/java/sp/BaseSAMLController.java | 12 +-
src/main/java/sp/CASController.java | 13 +-
src/main/java/sp/SAML1Controller.java | 46 ++++--
src/main/java/sp/SAML2Controller.java | 181 ++++++++++++---------
.../storage/SimpleStorageRecordSerializer.java | 15 +-
.../storage/StorageServiceWrapperController.java | 10 +-
6 files changed, 167 insertions(+), 110 deletions(-)
diff --git a/src/main/java/sp/BaseSAMLController.java b/src/main/java/sp/BaseSAMLController.java
index 5e69d00..4c1f751 100644
--- a/src/main/java/sp/BaseSAMLController.java
+++ b/src/main/java/sp/BaseSAMLController.java
@@ -14,6 +14,8 @@
package sp;
+import javax.annotation.Nonnull;
+
import org.apache.velocity.app.VelocityEngine;
import org.opensaml.core.xml.XMLObjectBuilderFactory;
import org.opensaml.core.xml.io.MarshallerFactory;
@@ -52,17 +54,17 @@ public abstract class BaseSAMLController {
@Autowired protected SAMLArtifactMap artifactMap;
- @Autowired protected ParserPool parserPool;
+ @Autowired @Nonnull protected ParserPool parserPool;
@Autowired @Qualifier("test.sp.Credential") protected Credential spCredential;
@Autowired protected ApplicationContext applicationContext;
- private void setRequest(final BaseHttpServletRequestXMLMessageDecoder decoder, final HttpServletRequest servletRequest) {
+ private void setRequest(final BaseHttpServletRequestXMLMessageDecoder decoder, @Nonnull final HttpServletRequest servletRequest) {
decoder.setHttpServletRequestSupplier(NonnullSupplier.of(servletRequest));
}
- protected MessageContext decodeInboundMessageContextPost(HttpServletRequest servletRequest)
+ protected MessageContext decodeInboundMessageContextPost(@Nonnull HttpServletRequest servletRequest)
throws Exception {
HTTPPostDecoder decoder = new HTTPPostDecoder();
try {
@@ -81,7 +83,7 @@ public abstract class BaseSAMLController {
}
}
- protected MessageContext decodeInboundMessageContextSOAP(HttpServletRequest servletRequest)
+ protected MessageContext decodeInboundMessageContextSOAP(@Nonnull HttpServletRequest servletRequest)
throws Exception {
HTTPSOAP11Decoder decoder = new HTTPSOAP11Decoder();
try {
@@ -100,7 +102,7 @@ public abstract class BaseSAMLController {
}
}
- protected MessageContext decodeInboundMessageContextRedirect(HttpServletRequest servletRequest)
+ protected MessageContext decodeInboundMessageContextRedirect(@Nonnull HttpServletRequest servletRequest)
throws Exception {
HTTPRedirectDeflateDecoder decoder = new HTTPRedirectDeflateDecoder();
try {
diff --git a/src/main/java/sp/CASController.java b/src/main/java/sp/CASController.java
index 745df4d..a9cbd3b 100644
--- a/src/main/java/sp/CASController.java
+++ b/src/main/java/sp/CASController.java
@@ -17,6 +17,8 @@ package sp;
import java.net.MalformedURLException;
import java.util.List;
+import javax.annotation.Nonnull;
+
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@@ -53,7 +55,7 @@ public class CASController {
* @throws Exception if something bad happens
*/
@RequestMapping(value = "/InitSSO", method = RequestMethod.GET)
- public void initLogin(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initLogin(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final String baseUrl = getBaseUrl(servletRequest);
@@ -83,7 +85,7 @@ public class CASController {
* @throws Exception if something bad happens
*/
@RequestMapping(value = "/InitSSOGateway", method = RequestMethod.GET)
- public void initLoginGateway(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initLoginGateway(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final String baseUrl = getBaseUrl(servletRequest);
@@ -114,7 +116,7 @@ public class CASController {
* @throws Exception if something bad happens
*/
@RequestMapping(value = "/InitSSORenew", method = RequestMethod.GET)
- public void initLoginGatewayRenew(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initLoginGatewayRenew(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final String baseUrl = getBaseUrl(servletRequest);
@@ -182,8 +184,9 @@ public class CASController {
return new ResponseEntity<>(html, headers, HttpStatus.OK);
}
- private String getBaseUrl(HttpServletRequest servletRequest) {
- String requestUrl = servletRequest.getRequestURL().toString();
+ private String getBaseUrl(@Nonnull HttpServletRequest servletRequest) {
+ final String requestUrl = servletRequest.getRequestURL().toString();
+ assert requestUrl != null;
try {
URLBuilder urlBuilder = new URLBuilder(requestUrl);
urlBuilder.setUsername(null);
diff --git a/src/main/java/sp/SAML1Controller.java b/src/main/java/sp/SAML1Controller.java
index bd205ec..08f710e 100644
--- a/src/main/java/sp/SAML1Controller.java
+++ b/src/main/java/sp/SAML1Controller.java
@@ -37,6 +37,7 @@ import org.cryptacular.util.CertUtil;
import org.cryptacular.util.KeyPairUtil;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.core.xml.io.Marshaller;
import org.opensaml.core.xml.io.MarshallingException;
import org.opensaml.messaging.context.InOutOperationContext;
import org.opensaml.messaging.context.MessageContext;
@@ -78,7 +79,7 @@ public class SAML1Controller extends BaseSAMLController {
private final Logger log = LoggerFactory.getLogger(SAML1Controller.class);
@RequestMapping(value = "/POST/ACS", method = RequestMethod.POST) public ResponseEntity<String>
- handleSSOResponsePOST(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ handleSSOResponsePOST(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
throws Exception {
MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
@@ -88,8 +89,10 @@ public class SAML1Controller extends BaseSAMLController {
return new ResponseEntity<>("Inbound message was not a SAML 1 Response", HttpStatus.BAD_REQUEST);
}
- Response response = (Response) messageContext.getMessage();
- Element responseElement = response.getDOM();
+ final Response response = (Response) messageContext.getMessage();
+ assert response != null;
+ final Element responseElement = response.getDOM();
+ assert responseElement != null;
String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
log.trace("Returning response" + System.lineSeparator() + "{}", formattedMessage);
@@ -116,7 +119,7 @@ public class SAML1Controller extends BaseSAMLController {
@Nullable private String getSpId(HttpServletRequest servletRequest) {
final Object attr = servletRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
if (attr != null && attr instanceof Map) {
- final Map pathVariables = (Map) attr;
+ final Map<?,?> pathVariables = (Map<?, ?>) attr;
final Object spId = pathVariables.get("spId");
log.trace("Found spID '{}'", spId);
if (spId != null) {
@@ -145,12 +148,13 @@ public class SAML1Controller extends BaseSAMLController {
*
* @throws Exception if an error occurs
*/
- @RequestMapping(value = "/AttributeQuery", method = RequestMethod.POST) public ResponseEntity<String>
- initSAML1AttributeQuery(HttpServletRequest servletRequest, HttpServletResponse servletResponse,
- @RequestParam(value = "endpoint", required = true) String endpoint,
- @RequestParam(value = "principalName", required = true) String principalName,
- @RequestParam(value = "clientSigningCertificate", required = false) String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) String clientSigningPrivateKey)
+ @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 {
final HttpClient httpClient = buildHttpClient();
@@ -169,18 +173,25 @@ public class SAML1Controller extends BaseSAMLController {
final Envelope envelope = buildSOAP11Envelope(attributeQuery);
if (log.isDebugEnabled()) {
+ final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
+ assert marshaller != null;
log.debug("Sending AttributeQuery to endpoint '{}':\n", endpoint, SerializeSupport.prettyPrintXML(
- marshallerFactory.getMarshaller(envelope).marshall(envelope, parserPool.newDocument())));
+ marshaller.marshall(envelope, parserPool.newDocument())));
}
final InOutOperationContext context = SAML2Controller.buildInOutOperationContext(envelope);
httpSoapClient.send(endpoint, context);
- final Envelope soapResponse =
- context.getInboundMessageContext().getSubcontext(SOAP11Context.class).getEnvelope();
-
- final String formattedMessage = SerializeSupport.prettyPrintXML(soapResponse.getDOM());
+ final MessageContext inboundMessageContext = context.getInboundMessageContext();
+ assert inboundMessageContext != null;
+ final SOAP11Context soapContext = inboundMessageContext.getSubcontext(SOAP11Context.class);
+ assert soapContext != null;
+ final Envelope soapResponse = soapContext.getEnvelope();
+ assert soapResponse != null;
+ final Element dom = soapResponse.getDOM();
+ assert dom != null;
+ final String formattedMessage = SerializeSupport.prettyPrintXML(dom);
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "text/plain");
@@ -204,7 +215,9 @@ public class SAML1Controller extends BaseSAMLController {
final Request attributeQuery = buildAttributeQueryRequest(subject);
attributeQuery.setIssueInstant(Instant.now());
attributeQuery.setID(IdentifierGenerationStrategy.getInstance(ProviderType.SECURE).generateIdentifier());
- attributeQuery.getAttributeQuery().setResource(getSpEntityId(servletRequest));
+ final AttributeQuery query = attributeQuery.getAttributeQuery();
+ assert query != null;
+ query.setResource(getSpEntityId(servletRequest));
// TODO AttributeDesignator
@@ -307,6 +320,7 @@ public class SAML1Controller extends BaseSAMLController {
final X509Certificate cert = CertUtil.readCertificate(certificateResource.getInputStream());
final PrivateKey key = KeyPairUtil.readPrivateKey(privateKeyResource.getInputStream());
+ assert cert!=null && key!=null;
final BasicX509Credential cred = new BasicX509Credential(cert, key);
final SignatureSigningParameters signingParameters = new SignatureSigningParameters();
diff --git a/src/main/java/sp/SAML2Controller.java b/src/main/java/sp/SAML2Controller.java
index 33163fc..603cc42 100644
--- a/src/main/java/sp/SAML2Controller.java
+++ b/src/main/java/sp/SAML2Controller.java
@@ -16,30 +16,20 @@ package sp;
import java.io.IOException;
import java.net.MalformedURLException;
-import java.security.KeyStore;
import java.security.PrivateKey;
-import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.time.Instant;
import java.util.Map;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
-import javax.net.ssl.SSLContext;
import org.apache.hc.client5.http.classic.HttpClient;
-import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
-import org.apache.hc.client5.http.impl.classic.HttpClients;
-import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
-import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder;
-import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
-import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
-import org.apache.hc.core5.ssl.SSLContextBuilder;
-import org.apache.hc.core5.ssl.SSLContexts;
import org.cryptacular.util.CertUtil;
import org.cryptacular.util.KeyPairUtil;
import org.opensaml.core.xml.XMLObject;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.core.xml.io.Marshaller;
import org.opensaml.core.xml.io.MarshallingException;
import org.opensaml.messaging.context.InOutOperationContext;
import org.opensaml.messaging.context.MessageContext;
@@ -129,41 +119,44 @@ public class SAML2Controller extends BaseSAMLController {
private final Logger log = LoggerFactory.getLogger(SAML2Controller.class);
@RequestMapping(value="/InitSSO/Redirect", method=RequestMethod.GET)
- public void initSSORequestRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ 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);
+ assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
@RequestMapping(value="/InitSSO/POST", method=RequestMethod.GET)
- public void initSSORequestPost(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ 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);
+ assert messageContext != null;
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
@RequestMapping(value="/InitSSO/Artifact", method=RequestMethod.GET)
- public void initSSORequestArtifact(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initSSORequestArtifact(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setDestination(getDestinationArtifact(servletRequest, "SSO"));
final Endpoint endpoint = buildIdpSsoEndpoint(SAMLConstants.SAML2_ARTIFACT_BINDING_URI, authnRequest.getDestination());
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
encodeOutboundMessageContextArtifact(messageContext, servletResponse);
}
@RequestMapping(value="/InitSSO/Passive", method=RequestMethod.GET)
- public void initSSORequestPassive(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initSSORequestPassive(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setDestination(getDestinationRedirect(servletRequest, "SSO"));
authnRequest.setIsPassive(true);
@@ -171,11 +164,12 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
@RequestMapping(value="/InitSSO/ForceAuthn", method=RequestMethod.GET)
- public void initSSORequestForceAuthn(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initSSORequestForceAuthn(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setDestination(getDestinationRedirect(servletRequest, "SSO"));
authnRequest.setForceAuthn(true);
@@ -183,11 +177,12 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
@RequestMapping(value="/InitSSO/ReqAttr", method=RequestMethod.GET)
- public void initSSORequestReqAttr(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
+ public void initSSORequestReqAttr(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse) throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setExtensions(buildRequestedAttributesExtensions());
authnRequest.setDestination(getDestinationRedirect(servletRequest, "SSO"));
@@ -195,11 +190,12 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
@RequestMapping(value = "/InitSSO/POST/Passive", method = RequestMethod.GET) public void initSSORequestPostPassive(
- HttpServletRequest servletRequest, 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);
@@ -207,12 +203,13 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
@RequestMapping(value = "/InitSSO/POST/ForceAuthn", method = RequestMethod.GET) public void
- initSSORequestPostForceAuthn(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ initSSORequestPostForceAuthn(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
throws Exception {
final AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
authnRequest.setDestination(getDestinationPost(servletRequest, "SSO"));
@@ -221,13 +218,14 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(authnRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
@RequestMapping(value="/InitSLO/Redirect", method=RequestMethod.GET)
- public void initSLORequestRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ public void initSLORequestRedirect(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
throws Exception {
final LogoutRequest logoutRequest =
buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
@@ -236,11 +234,12 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(logoutRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
@RequestMapping(value="/InitSLO/Async", method=RequestMethod.GET)
- public void initSLORequestAsync(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ public void initSLORequestAsync(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
throws Exception {
final LogoutRequest logoutRequest = buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
logoutRequest.setDestination(getDestinationRedirect(servletRequest, "SLO"));
@@ -255,11 +254,12 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(logoutRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
@RequestMapping(value="/InitSLO/POST", method=RequestMethod.GET)
- public void initSLORequestPost(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ public void initSLORequestPost(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
throws Exception {
final LogoutRequest logoutRequest = buildLogoutRequest(servletRequest, servletRequest.getParameter("transientID"));
logoutRequest.setDestination(getDestinationPost(servletRequest, "SLO"));
@@ -267,12 +267,13 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(logoutRequest, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
@RequestMapping(value="/FinishSLO/Redirect", method=RequestMethod.GET)
- public void finishSLOResponseRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ public void finishSLOResponseRedirect(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setDestination(getDestinationRedirect(servletRequest, "SLO"));
@@ -280,11 +281,12 @@ public class SAML2Controller extends BaseSAMLController {
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(logoutResponse, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
encodeOutboundMessageContextRedirect(messageContext, servletResponse);
}
@RequestMapping(value="/FinishSLO/POST", method=RequestMethod.GET)
- public void finishSLOResponsePost(HttpServletRequest servletRequest, HttpServletResponse servletResponse)
+ public void finishSLOResponsePost(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse)
throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setDestination(getDestinationPost(servletRequest, "SLO"));
@@ -294,25 +296,27 @@ public class SAML2Controller extends BaseSAMLController {
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext =
buildOutboundMessageContext(logoutResponse, endpoint, spEntityID, idpEntityID);
+ assert messageContext != null;
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextPost(messageContext, servletResponse);
}
@RequestMapping(value="/FinishSLO/SOAP", method=RequestMethod.GET)
- public void finishSLOResponseSOAP(HttpServletRequest servletRequest, HttpServletResponse servletResponse,
+ public void finishSLOResponseSOAP(@Nonnull HttpServletRequest servletRequest, @Nonnull HttpServletResponse servletResponse,
final String id) throws Exception {
final LogoutResponse logoutResponse = buildLogoutResponse(servletRequest);
logoutResponse.setInResponseTo(id);
final String spEntityID = getSpEntityId(servletRequest);
final String idpEntityID = getIdpEntityId(servletRequest);
final MessageContext messageContext = buildOutboundMessageContext(logoutResponse, null, spEntityID, idpEntityID);
+ assert messageContext != null;
SAMLMessageSecuritySupport.signMessage(messageContext);
encodeOutboundMessageContextSOAP(messageContext, servletResponse);
}
@RequestMapping(value="/POST/ACS", method=RequestMethod.POST)
- public ResponseEntity<String> handleSSOResponsePOST(HttpServletRequest servletRequest,
- HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSSOResponsePOST(@Nonnull HttpServletRequest servletRequest,
+ @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
if (!(messageContext.getMessage() instanceof Response)) {
@@ -321,7 +325,9 @@ public class SAML2Controller extends BaseSAMLController {
}
final Response response = (Response) messageContext.getMessage();
+ assert response != null;
final Element responseElement = response.getDOM();
+ assert responseElement != null;
final String formattedMessage = SerializeSupport.prettyPrintXML(responseElement);
log.trace("Returning response" + System.lineSeparator() + "{}", formattedMessage);
@@ -334,8 +340,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/Redirect/SLO", method=RequestMethod.GET)
- public ResponseEntity<String> handleSLOResponseRedirect(final HttpServletRequest servletRequest,
- final HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSLOResponseRedirect(@Nonnull final HttpServletRequest servletRequest,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextRedirect(servletRequest);
if (messageContext.getMessage() instanceof LogoutRequest) {
@@ -345,7 +351,9 @@ public class SAML2Controller extends BaseSAMLController {
}
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
@@ -357,8 +365,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/POST/SLO", method=RequestMethod.POST)
- public ResponseEntity<String> handleSLOResponsePOST(final HttpServletRequest servletRequest,
- final HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSLOResponsePOST(@Nonnull final HttpServletRequest servletRequest,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextPost(servletRequest);
if (messageContext.getMessage() instanceof LogoutRequest) {
@@ -368,7 +376,9 @@ public class SAML2Controller extends BaseSAMLController {
}
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
@@ -380,8 +390,8 @@ public class SAML2Controller extends BaseSAMLController {
}
@RequestMapping(value="/SOAP/SLO", method=RequestMethod.POST)
- public ResponseEntity<String> handleSLOResponseSOAP(final HttpServletRequest servletRequest,
- final HttpServletResponse servletResponse) throws Exception {
+ public ResponseEntity<String> handleSLOResponseSOAP(final @Nonnull HttpServletRequest servletRequest,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final MessageContext messageContext = decodeInboundMessageContextSOAP(servletRequest);
if (messageContext.getMessage() instanceof LogoutRequest logreq) {
@@ -391,7 +401,9 @@ public class SAML2Controller extends BaseSAMLController {
}
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
@@ -434,8 +446,8 @@ public class SAML2Controller extends BaseSAMLController {
return messageContext;
}
- private void setupResponse(final AbstractHttpServletResponseMessageEncoder encoder,
- final HttpServletResponse response) {
+ private void setupResponse(final @Nonnull AbstractHttpServletResponseMessageEncoder encoder,
+ final @Nonnull HttpServletResponse response) {
encoder.setHttpServletResponseSupplier(new NonnullSupplier<>() {
@Nonnull public HttpServletResponse get() {
// TODO Auto-generated method stub
@@ -444,8 +456,8 @@ public class SAML2Controller extends BaseSAMLController {
});
}
- private void encodeOutboundMessageContextRedirect(final MessageContext messageContext,
- final HttpServletResponse servletResponse) throws Exception {
+ private void encodeOutboundMessageContextRedirect(final @Nonnull MessageContext messageContext,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
try {
setupResponse(encoder,servletResponse);
@@ -462,8 +474,8 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- private void encodeOutboundMessageContextPost(final MessageContext messageContext,
- final HttpServletResponse servletResponse) throws Exception {
+ private void encodeOutboundMessageContextPost(final @Nonnull MessageContext messageContext,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final HTTPPostEncoder encoder = new HTTPPostEncoder();
try {
setupResponse(encoder,servletResponse);
@@ -481,13 +493,14 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- private void encodeOutboundMessageContextArtifact(final MessageContext messageContext,
- final 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);
encoder.setMessageContext(messageContext);
encoder.setVelocityEngine(velocityEngine);
+ assert artifactMap != null;
encoder.setArtifactMap(artifactMap);
encoder.initialize();
@@ -501,8 +514,8 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- private void encodeOutboundMessageContextSOAP(final MessageContext messageContext,
- final HttpServletResponse servletResponse) throws Exception {
+ private void encodeOutboundMessageContextSOAP(final @Nonnull MessageContext messageContext,
+ final @Nonnull HttpServletResponse servletResponse) throws Exception {
final HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
try {
setupResponse(encoder,servletResponse);
@@ -535,7 +548,7 @@ public class SAML2Controller extends BaseSAMLController {
return sloEndpoint;
}
- private AuthnRequest buildAuthnRequest(final HttpServletRequest servletRequest) {
+ private AuthnRequest buildAuthnRequest(final @Nonnull HttpServletRequest servletRequest) {
final AuthnRequest authnRequest = (AuthnRequest) builderFactory.ensureBuilder(
AuthnRequest.DEFAULT_ELEMENT_NAME).buildObject(AuthnRequest.DEFAULT_ELEMENT_NAME);
@@ -724,7 +737,7 @@ public class SAML2Controller extends BaseSAMLController {
return logoutResponse;
}
- @Nonnull private String getDestinationRedirect(final HttpServletRequest servletRequest, final 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);
@@ -738,7 +751,7 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- @Nonnull private String getDestinationPost(final HttpServletRequest servletRequest, final String profile) {
+ @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);
@@ -752,7 +765,7 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- @Nonnull private String getDestinationArtifact(final HttpServletRequest servletRequest, final String profile) {
+ @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);
@@ -766,7 +779,7 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- @Nonnull private String getAcsUrl(final HttpServletRequest 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";
@@ -781,9 +794,10 @@ public class SAML2Controller extends BaseSAMLController {
}
}
- @Nonnull private String getBaseUrl(final HttpServletRequest servletRequest) {
+ @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);
@@ -822,7 +836,7 @@ public class SAML2Controller extends BaseSAMLController {
@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;
+ final Map<?,?> pathVariables = (Map<?,?>) attr;
final Object spId = pathVariables.get("spId");
log.trace("Found spID '{}'", spId);
if (spId != null) {
@@ -865,12 +879,13 @@ public class SAML2Controller extends BaseSAMLController {
*
* @throws Exception if an error occurs
*/
- @RequestMapping(value = "/InitSLO/SOAP", method = RequestMethod.POST) public ResponseEntity<String>
- 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 = "clientSigningCertificate", required = false) final String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) final String clientSigningPrivateKey)
+ @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 {
final HttpClient httpClient = buildHttpClient();
@@ -880,7 +895,7 @@ public class SAML2Controller extends BaseSAMLController {
httpSoapClient.setHttpClient(httpClient);
final LogoutRequest logoutRequest = buildLogoutRequest(servletRequest, principalName);
-
+ assert logoutRequest != null;
// Sign if client signing certificate is present
if (StringSupport.trimOrNull(clientSigningCertificate) != null) {
sign(logoutRequest, clientSigningCertificate, clientSigningPrivateKey);
@@ -889,18 +904,24 @@ public class SAML2Controller extends BaseSAMLController {
final Envelope envelope = buildSOAP11Envelope(logoutRequest);
if (log.isDebugEnabled()) {
+ final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
+ assert marshaller != null;
log.debug("Sending LogoutRequest to endpoint '{}':\n", endpoint, SerializeSupport.prettyPrintXML(
- marshallerFactory.getMarshaller(envelope).marshall(envelope, parserPool.newDocument())));
+ marshaller.marshall(envelope, parserPool.newDocument())));
}
final InOutOperationContext context = buildInOutOperationContext(envelope);
httpSoapClient.send(endpoint, context);
-
- final Envelope soapResponse =
- context.getInboundMessageContext().getSubcontext(SOAP11Context.class).getEnvelope();
-
- final String formattedMessage = SerializeSupport.prettyPrintXML(soapResponse.getDOM());
+ final MessageContext msgContext = context.getInboundMessageContext();
+ assert msgContext!= null;
+ final SOAP11Context soapContext = msgContext.getSubcontext(SOAP11Context.class);
+ assert soapContext != null;
+ final Envelope soapResponse = soapContext.getEnvelope();
+ assert soapResponse != null;
+ final Element dom = soapResponse.getDOM();
+ assert dom != null;
+ final String formattedMessage = SerializeSupport.prettyPrintXML(dom);
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "text/plain");
@@ -927,12 +948,13 @@ public class SAML2Controller extends BaseSAMLController {
*
* @throws Exception if an error occurs
*/
- @RequestMapping(value = "/AttributeQuery", method = RequestMethod.POST) public ResponseEntity<String>
- 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 = "clientSigningCertificate", required = false) final String clientSigningCertificate,
- @RequestParam(value = "clientSigningPrivateKey", required = false) final String clientSigningPrivateKey)
+ @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 {
final HttpClient httpClient = buildHttpClient();
@@ -951,18 +973,25 @@ public class SAML2Controller extends BaseSAMLController {
final Envelope envelope = buildSOAP11Envelope(attributeQuery);
if (log.isDebugEnabled()) {
+ final Marshaller marshaller = marshallerFactory.getMarshaller(envelope);
+ assert marshaller != null;
log.debug("Sending AttributeQuery to endpoint '{}':\n", endpoint, SerializeSupport.prettyPrintXML(
- marshallerFactory.getMarshaller(envelope).marshall(envelope, parserPool.newDocument())));
+ marshaller.marshall(envelope, parserPool.newDocument())));
}
final InOutOperationContext context = buildInOutOperationContext(envelope);
httpSoapClient.send(endpoint, context);
-
- final Envelope soapResponse =
- context.getInboundMessageContext().getSubcontext(SOAP11Context.class).getEnvelope();
-
- final String formattedMessage = SerializeSupport.prettyPrintXML(soapResponse.getDOM());
+
+ final MessageContext msgContext = context.getInboundMessageContext();
+ assert msgContext!= null;
+ final SOAP11Context soapContext = msgContext.getSubcontext(SOAP11Context.class);
+ assert soapContext != null;
+ final Envelope soapResponse = soapContext.getEnvelope();
+ assert soapResponse != null;
+ final Element dom = soapResponse.getDOM();
+ assert dom != null;
+ final String formattedMessage = SerializeSupport.prettyPrintXML(dom);
final HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "text/plain");
@@ -1129,8 +1158,8 @@ public class SAML2Controller extends BaseSAMLController {
final X509Certificate cert = CertUtil.readCertificate(certificateResource.getInputStream());
final PrivateKey key = KeyPairUtil.readPrivateKey(privateKeyResource.getInputStream());
+ assert cert != null && key != null;
final BasicX509Credential cred = new BasicX509Credential(cert, key);
-
final SignatureSigningParameters signingParameters = new SignatureSigningParameters();
signingParameters.setSigningCredential(cred);
signingParameters.setSignatureAlgorithm(SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256);
diff --git a/src/main/java/storage/SimpleStorageRecordSerializer.java b/src/main/java/storage/SimpleStorageRecordSerializer.java
index b714c30..18f79fd 100644
--- a/src/main/java/storage/SimpleStorageRecordSerializer.java
+++ b/src/main/java/storage/SimpleStorageRecordSerializer.java
@@ -42,6 +42,7 @@ import net.shibboleth.shared.component.AbstractInitializableComponent;
/**
* A simple {@link StorageRecord} serializer.
*/
+ at SuppressWarnings("rawtypes")
public class SimpleStorageRecordSerializer extends AbstractInitializableComponent
implements StorageSerializer<StorageRecord> {
@@ -51,7 +52,8 @@ public class SimpleStorageRecordSerializer extends AbstractInitializableComponen
/** JSON reader factory. */
@Nonnull private JsonReaderFactory readerFactory;
- public SimpleStorageRecordSerializer() {
+ @SuppressWarnings("null")
+ public SimpleStorageRecordSerializer() {
final Map<String, String> generatorConfig = new HashMap<>();
generatorConfig.put(JsonGenerator.PRETTY_PRINTING, "true");
generatorFactory = Json.createGeneratorFactory(generatorConfig);
@@ -59,7 +61,7 @@ public class SimpleStorageRecordSerializer extends AbstractInitializableComponen
}
/** {@inheritDoc} */
- public String serialize(@Nonnull final StorageRecord instance) throws IOException {
+ public @Nonnull String serialize( @Nonnull final StorageRecord instance) throws IOException {
final StringWriter sink = new StringWriter();
final JsonGenerator gen = generatorFactory.createGenerator(sink);
@@ -73,7 +75,9 @@ public class SimpleStorageRecordSerializer extends AbstractInitializableComponen
}
gen.writeEnd().close();
- return sink.toString();
+ final String result = sink.toString();
+ assert result != null;
+ return result;
}
/** {@inheritDoc} */
@@ -94,7 +98,7 @@ public class SimpleStorageRecordSerializer extends AbstractInitializableComponen
* @return a deserialized object
* @throws IOException if an error occurs
*/
- @Nonnull public StorageRecord deserialize(@Nonnull @NotEmpty final String context,
+ @Nonnull public StorageRecord<?> deserialize(@Nonnull @NotEmpty final String context,
@Nonnull @NotEmpty final String key, @Nonnull final String serialized) throws IOException {
final JsonReader reader = readerFactory.createReader(new StringReader(serialized));
final JsonStructure st = reader.read();
@@ -103,6 +107,7 @@ public class SimpleStorageRecordSerializer extends AbstractInitializableComponen
}
final JsonObject obj = (JsonObject) st;
final String value = obj.getString("value");
+ assert value != null;
final int version = obj.getInt("version");
Long expiration = null;
final JsonNumber jsonExpiration = obj.getJsonNumber("expiration");
@@ -116,7 +121,7 @@ public class SimpleStorageRecordSerializer extends AbstractInitializableComponen
/**
* Exposes mutation of {@link StorageRecord} properties including version.
*/
- private class VersionableStorageRecord extends MutableStorageRecord {
+ private class VersionableStorageRecord extends MutableStorageRecord<Object> {
/**
* Constructor.
diff --git a/src/main/java/storage/StorageServiceWrapperController.java b/src/main/java/storage/StorageServiceWrapperController.java
index a90bbe5..bdb43c7 100644
--- a/src/main/java/storage/StorageServiceWrapperController.java
+++ b/src/main/java/storage/StorageServiceWrapperController.java
@@ -25,7 +25,6 @@ import org.opensaml.storage.StorageRecord;
import org.opensaml.storage.StorageSerializer;
import org.opensaml.storage.StorageService;
import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
@@ -40,6 +39,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
+import net.shibboleth.shared.primitive.LoggerFactory;
+
/**
* Interact with storage services via HTTP.
*
@@ -81,6 +82,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
* curl 'http://localhost:8080/idp/storage/'
* </pre>
*/
+ at SuppressWarnings("rawtypes")
@Controller
public class StorageServiceWrapperController {
@@ -125,7 +127,9 @@ public class StorageServiceWrapperController {
final Map<String, StorageService> storageServices = new HashMap<>();
storageServices.putAll(appContext.getBeansOfType(StorageService.class));
- storageServices.putAll(appContext.getParent().getBeansOfType(StorageService.class));
+ final ApplicationContext parentContext = appContext.getParent();
+ assert parentContext != null;
+ storageServices.putAll(parentContext.getBeansOfType(StorageService.class));
if (log.isDebugEnabled()) {
for (final Map.Entry<String, StorageService> entry : storageServices.entrySet()) {
@@ -198,7 +202,7 @@ public class StorageServiceWrapperController {
}
log.debug("Reading from '{}' with context '{}' and key '{}'", storageServiceId, context, key);
- final StorageRecord record = storageService.read(context, key);
+ final StorageRecord record = storageService.read(context, key);
log.debug("Read '{}' from '{}' with context '{}' and key '{}'", record, storageServiceId, context, key);
if (record == null) {
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list