title: spring saml Cannot sign outgoing message as no signing credential is set in the context
body: <p>I'm trying to use the standard <a href="https://github.com/spring-projects/spring-security-saml" rel="nofollow noreferrer">spring saml example</a> with locally stored SP meta data. After verifying that the example works fine with the auto-generated meta-data, I stored the data locally using the provided instructions:</p>
  <blockquote>
  <p>In order to permanently store the metadata follow these instructions:</p>
  <ul>
  <li>Store metadata content inside your achrive at
  /WEB-INF/classes/metadata/vcdevelopmenttestrobert_sp.xml</li>
  <li>Make sure to update your identity provider(s) with the generated metadata</li>
  <li>Modify bean &quot;metadata&quot; in your securityContext.xml and include content from
  the configuration above</li>
  </ul>
  </blockquote>
  <p>I get the error (while triggering the SSO login)</p>
  <pre><code>Message:
  Cannot sign outgoing message as no signing credential is set in the context 
  
  StackTrace:
  java.lang.IllegalArgumentException: Cannot sign outgoing message as no signing credential is set in the context
  at org.springframework.util.Assert.notNull(Assert.java:112)
  at org.springframework.security.saml.processor.SAMLProcessorImpl.sendMessage(SAMLProcessorImpl.java:222)
  at ...
  </code></pre>
  <p>the meta-data looks like this:</p>
  <pre><code> &lt;bean id=&quot;metadata&quot; class=&quot;org.springframework.security.saml.metadata.CachingMetadataManager&quot;&gt;
      &lt;constructor-arg&gt;
          &lt;list&gt;
              &lt;bean class=&quot;org.opensaml.saml2.metadata.provider.HTTPMetadataProvider&quot;&gt;
                  &lt;constructor-arg&gt;
                      &lt;value type=&quot;java.lang.String&quot;&gt;http://idp.ssocircle.com/idp-meta.xml&lt;/value&gt;
                  &lt;/constructor-arg&gt;
                  &lt;constructor-arg&gt;
                      &lt;value type=&quot;int&quot;&gt;5000&lt;/value&gt;
                  &lt;/constructor-arg&gt;
                  &lt;property name=&quot;parserPool&quot; ref=&quot;parserPool&quot;/&gt;
              &lt;/bean&gt;
              &lt;bean class=&quot;org.springframework.security.saml.metadata.ExtendedMetadataDelegate&quot;&gt;
                  &lt;constructor-arg&gt;
                      &lt;bean class=&quot;org.opensaml.saml2.metadata.provider.ResourceBackedMetadataProvider&quot;&gt;
                          &lt;constructor-arg&gt;
                              &lt;bean class=&quot;java.util.Timer&quot;/&gt;
                          &lt;/constructor-arg&gt;
                          &lt;constructor-arg&gt;
                              &lt;bean class=&quot;org.opensaml.util.resource.ClasspathResource&quot;&gt;
                                  &lt;constructor-arg value=&quot;/metadata/vcdevelopmenttestrobert_sp.xml&quot;/&gt;
                              &lt;/bean&gt;
                          &lt;/constructor-arg&gt;
                          &lt;property name=&quot;parserPool&quot; ref=&quot;parserPool&quot;/&gt;
                      &lt;/bean&gt;
                  &lt;/constructor-arg&gt;
                  &lt;constructor-arg&gt;
                      &lt;bean class=&quot;org.springframework.security.saml.metadata.ExtendedMetadata&quot;&gt;
                          &lt;property name=&quot;local&quot; value=&quot;true&quot;/&gt;
                          &lt;property name=&quot;securityProfile&quot; value=&quot;metaiop&quot;/&gt;
                          &lt;property name=&quot;sslSecurityProfile&quot; value=&quot;pkix&quot;/&gt;
                          &lt;property name=&quot;sslHostnameVerification&quot; value=&quot;default&quot;/&gt;
                          &lt;property name=&quot;signMetadata&quot; value=&quot;false&quot;/&gt;
                          &lt;property name=&quot;signingKey&quot; value=&quot;null&quot;/&gt;
                          &lt;property name=&quot;encryptionKey&quot; value=&quot;null&quot;/&gt;
                          &lt;property name=&quot;requireArtifactResolveSigned&quot; value=&quot;true&quot;/&gt;
                          &lt;property name=&quot;requireLogoutRequestSigned&quot; value=&quot;true&quot;/&gt;
                          &lt;property name=&quot;requireLogoutResponseSigned&quot; value=&quot;false&quot;/&gt;
                          &lt;property name=&quot;idpDiscoveryEnabled&quot; value=&quot;true&quot;/&gt;
                          &lt;property name=&quot;idpDiscoveryURL&quot; value=&quot;http://localhost:8080/saml/discovery&quot;/&gt;
                          &lt;property name=&quot;idpDiscoveryResponseURL&quot; value=&quot;http://localhost:8080/saml/login?disco=true&quot;/&gt;
                      &lt;/bean&gt;
                  &lt;/constructor-arg&gt;
              &lt;/bean&gt; 
          &lt;/list&gt;
      &lt;/constructor-arg&gt;
   &lt;/bean&gt;
  </code></pre>
  <p>Any idea what I am doing wrong?</p>