Class AbstractSAMLAttributeTranscoder<AttributeType extends SAMLObject,EncodedType extends IdPAttributeValue>
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- net.shibboleth.idp.attribute.transcoding.AbstractAttributeTranscoder<AttributeType>
-
- net.shibboleth.idp.saml.attribute.transcoding.AbstractSAMLAttributeTranscoder<AttributeType,EncodedType>
-
- Type Parameters:
AttributeType- type of object producedEncodedType- the type of data that can be handled by the transcoder
- All Implemented Interfaces:
AttributeTranscoder<AttributeType>,Component,DestructableComponent,InitializableComponent
- Direct Known Subclasses:
AbstractSAML1AttributeTranscoder,AbstractSAML2AttributeTranscoder
public abstract class AbstractSAMLAttributeTranscoder<AttributeType extends SAMLObject,EncodedType extends IdPAttributeValue> extends AbstractAttributeTranscoder<AttributeType>
Base class for transcoders that support SAML attributes.
-
-
Field Summary
Fields Modifier and Type Field Description private org.slf4j.LoggerlogClass logger.
-
Constructor Summary
Constructors Constructor Description AbstractSAMLAttributeTranscoder()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract AttributeTypebuildAttribute(ProfileRequestContext profileRequestContext, IdPAttribute attribute, Class<? extends AttributeType> to, TranscodingRule rule, List<XMLObject> attributeValues)Builds a SAML attribute element from the given attribute values.protected abstract IdPAttributebuildIdPAttribute(ProfileRequestContext profileRequestContext, AttributeType attribute, TranscodingRule rule, List<IdPAttributeValue> attributeValues)Builds anIdPAttributefrom the given values.protected abstract booleancanEncodeValue(IdPAttribute idpAttribute, IdPAttributeValue value)Checks if the given value can be handled by the transcoder.protected abstract IdPAttributeValuedecodeValue(ProfileRequestContext profileRequestContext, AttributeType attribute, TranscodingRule rule, XMLObject value)Function to decode a singleXMLObjectinto anIdPAttributeValue.IdPAttributedoDecode(ProfileRequestContext profileRequestContext, AttributeType input, TranscodingRule rule)Decode the supplied object into a protocol-neutral representation.AttributeTypedoEncode(ProfileRequestContext profileRequestContext, IdPAttribute attribute, Class<? extends AttributeType> to, TranscodingRule rule)Encode the supplied attribute into a protocol specific representation.protected abstract XMLObjectencodeValue(ProfileRequestContext profileRequestContext, IdPAttribute attribute, TranscodingRule rule, EncodedType value)Encodes an attribute value into a SAML AttributeValue element.protected StringgetStringValue(XMLObject object)Function to return an XML object in string form.protected abstract Iterable<XMLObject>getValues(AttributeType input)Returns the values to decode from the concrete input object.-
Methods inherited from class net.shibboleth.idp.attribute.transcoding.AbstractAttributeTranscoder
decode, encode, setActivationCondition
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, doDestroy, doInitialize, initialize, isDestroyed, isInitialized
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.shibboleth.idp.attribute.transcoding.AttributeTranscoder
getEncodedName, getEncodedType
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Method Detail
-
doEncode
@Nullable public AttributeType doEncode(@Nullable ProfileRequestContext profileRequestContext, @Nonnull IdPAttribute attribute, @Nonnull Class<? extends AttributeType> to, @Nonnull TranscodingRule rule) throws AttributeEncodingException
Encode the supplied attribute into a protocol specific representation.- Specified by:
doEncodein classAbstractAttributeTranscoder<AttributeType extends SAMLObject>- Parameters:
profileRequestContext- current profile request contextattribute- the attribute to encodeto- specific type of object to encoderule- properties governing the encoding process, principally the resulting object's naming- Returns:
- the Object the attribute was encoded into
- Throws:
AttributeEncodingException- if unable to successfully encode attribute
-
doDecode
@Nullable public IdPAttribute doDecode(@Nullable ProfileRequestContext profileRequestContext, @Nonnull AttributeType input, @Nonnull TranscodingRule rule) throws AttributeDecodingException
Decode the supplied object into a protocol-neutral representation.- Specified by:
doDecodein classAbstractAttributeTranscoder<AttributeType extends SAMLObject>- Parameters:
profileRequestContext- current profile request contextinput- the object to decoderule- properties governing the decoding process, principally the resulting attribute's naming- Returns:
- the attribute the object was decoded into
- Throws:
AttributeDecodingException- if unable to successfully decode object
-
getStringValue
@Nullable protected String getStringValue(@Nonnull XMLObject object)
Function to return an XML object in string form.- Parameters:
object- object to decode- Returns:
- decoded string, or null
-
canEncodeValue
protected abstract boolean canEncodeValue(@Nonnull IdPAttribute idpAttribute, @Nonnull IdPAttributeValue value)Checks if the given value can be handled by the transcoder.In many cases this is simply a check to see if the given object is of the right type.
- Parameters:
idpAttribute- the attribute being encoded, never nullvalue- the value to check, never null- Returns:
- true if the transcoder can encode this value, false if not
-
buildAttribute
@Nonnull protected abstract AttributeType buildAttribute(@Nullable ProfileRequestContext profileRequestContext, @Nullable IdPAttribute attribute, @Nonnull Class<? extends AttributeType> to, @Nonnull TranscodingRule rule, @Nonnull @NonnullElements List<XMLObject> attributeValues) throws AttributeEncodingException
Builds a SAML attribute element from the given attribute values.- Parameters:
profileRequestContext- current profile requestattribute- the attribute being encodedto- target type to createrule- properties to control encodingattributeValues- the encoded values for the attribute- Returns:
- the SAML attribute object
- Throws:
AttributeEncodingException- thrown if there is a problem constructing the SAML attribute
-
encodeValue
@Nullable protected abstract XMLObject encodeValue(@Nullable ProfileRequestContext profileRequestContext, @Nonnull IdPAttribute attribute, @Nonnull TranscodingRule rule, @Nonnull EncodedType value) throws AttributeEncodingException
Encodes an attribute value into a SAML AttributeValue element.- Parameters:
profileRequestContext- current profile requestattribute- the attribute being encodedrule- properties to control encodingvalue- the value to encode- Returns:
- the attribute value or null if the resulting attribute value would be empty
- Throws:
AttributeEncodingException- thrown if there is a problem encoding the attribute value
-
buildIdPAttribute
@Nonnull protected abstract IdPAttribute buildIdPAttribute(@Nullable ProfileRequestContext profileRequestContext, @Nonnull AttributeType attribute, @Nonnull TranscodingRule rule, @Nonnull @NonnullElements List<IdPAttributeValue> attributeValues) throws AttributeDecodingException
Builds anIdPAttributefrom the given values.- Parameters:
profileRequestContext- current profile requestattribute- the attribute being decodedrule- properties to control decodingattributeValues- the decoded values for the attribute- Returns:
- the IdPAttribute object
- Throws:
AttributeDecodingException- thrown if there is a problem constructing the IdPAttribute
-
getValues
@Nonnull protected abstract Iterable<XMLObject> getValues(@Nonnull AttributeType input)
Returns the values to decode from the concrete input object.- Parameters:
input- input object- Returns:
- values to decode
-
decodeValue
@Nullable protected abstract IdPAttributeValue decodeValue(@Nullable ProfileRequestContext profileRequestContext, @Nonnull AttributeType attribute, @Nonnull TranscodingRule rule, @Nullable XMLObject value)
Function to decode a singleXMLObjectinto anIdPAttributeValue.- Parameters:
profileRequestContext- current profile requestattribute- the attribute being decodedrule- properties to control decodingvalue- the value to decode- Returns:
- the returned final
IdPAttributeValueor null if decoding failed
-
-