I am developing an SSO solution using the Spring Security-SAML implementation. I am having difficulties integrating an existing IdP with Spring Security on the source side acting as the SP.
Upon access of a protected resource on the source side, I am successfully able to connect to the IdP with an AuthnRequest. The IdP presents the user with a login, authenticates the user, and transmits an AuthnResponse to the SP. However, the Spring Security SAML implementation has trouble digesting the response. The error I receive is as follows:
Unfortunately, the Spring Security-SAML code is swallowing the original exception, so I do not have a further stack trace to aid in troubleshooting. I can only assume that the digital signature used to sign the response from the IdP does not match what the SP expects, but I am having difficulties validating that this is the problem.Code:org.opensaml.common.SAMLRuntimeException: Error deconding incoming SAML message org.springframework.security.saml.SAMLProcessingFilter.attemptAuthentication(SAMLProcessingFilter.java:64) org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:258) org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) org.springframework.security.saml.metadata.MetadataDisplayFilter.doFilterHttp(MetadataDisplayFilter.java:90) org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) org.springframework.security.saml.SAMLEntryPoint.doFilterHttp(SAMLEntryPoint.java:104) org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236) org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
Does anyone have any insight on what configuration parameters I should check? The certificates on both the IdP and SP appear to match.


Reply With Quote
)