Handling database errors

Manuel Haim haim at hrz.uni-marburg.de
Fri Sep 1 03:32:45 EDT 2017


Thanks Scott and Martin,

it turned out that the IdP still works fine inspite of database errors,
but my attribute-resolver.xml config fails completely, resulting in an
empty attribute set.

Is there a way to conditionally define the eduPersonTargetedID and/or
StoredId, so they won't break the attribute resolver on database errors?

Background:

With the database turned off, my StoredId data connector cannot resolve
a persistentId, causing the definition of "eduPersonTargetedId" to fail:

<AttributeDefinition id="eduPersonTargetedID" xsi:type="SAML2NameID"
    sourceAttributeID="persistentId"
    nameIdFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">
  <Dependency ref="myStoredId" />
  <AttributeEncoder xsi:type="SAML1XMLObject"
      name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" />
  <AttributeEncoder xsi:type="SAML2XMLObject"
      name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10"
      friendlyName="eduPersonTargetedID" />
</AttributeDefinition>

<DataConnector id="myStoredId"
    xsi:type="StoredId"
    generatedAttributeID="persistentId"
    sourceAttributeID="%{idp.persistentId.sourceAttribute}"
    queryTimeout="PT5S">
    <Dependency ref="%{idp.persistentId.sourceAttribute}" />
    <BeanManagedConnection
        >shibboleth.PostgreSQLDataSource</BeanManagedConnection>
</DataConnector>


ERROR [net.shibboleth.idp.profile.impl.ResolveAttributes:299] - Profile
Action ResolveAttributes: Error resolving attributes
net.shibboleth.idp.attribute.resolver.ResolutionException:
org.opensaml.saml.common.SAMLException: ID storage error obtaining
persistent identifier
[...]
WARN [net.shibboleth.idp.profile.logic.AbstractAttributePredicate:88] -
No AttributeContext located for evaluation

This results in an empty attribute set to be passed to the SP. However,
if I comment out the definition of "eduPersonTargetedId", the remaining
attributes are resolved correctly.

Kind regards,
Manuel



More information about the users mailing list