Class SimplePrincipalSerializer<T extends Principal>
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- net.shibboleth.idp.authn.principal.AbstractPrincipalSerializer<String>
-
- net.shibboleth.idp.authn.principal.SimplePrincipalSerializer<T>
-
- Type Parameters:
T- principal type
- All Implemented Interfaces:
PrincipalSerializer<String>,Component,DestructableComponent,InitializableComponent
- Direct Known Subclasses:
SealedPrincipalSerializer
@ThreadSafe public class SimplePrincipalSerializer<T extends Principal> extends AbstractPrincipalSerializer<String>
Principal serializer for string-based principals that serialize to a simple JSON structure.- Since:
- 4.1.0
-
-
Field Summary
Fields Modifier and Type Field Description private Constructor<T>ctorConstructor.private StringfieldNameField name.private PatternjsonPatternPattern used to determine if input is supported.private org.slf4j.LoggerlogClass logger.private Class<T>principalTypePrincipal type.
-
Constructor Summary
Constructors Constructor Description SimplePrincipalSerializer(Class<T> claz, String name)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Tdeserialize(String value)Deserialize the supplied value.protected StringgetName(String serializedName)Return the appropriate value to create thePrincipalaround based on the serialized form.protected StringgetName(Principal principal)Return the appropriate value to serialize from the input object.Stringserialize(Principal principal)Serialize the supplied principal.booleansupports(String value)Whether the supplied value can be deserialized.booleansupports(Principal principal)Whether the supplied principal can be serialized.-
Methods inherited from class net.shibboleth.idp.authn.principal.AbstractPrincipalSerializer
getJsonGenerator, getJsonReader
-
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.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Field Detail
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
ctor
@Nonnull private final Constructor<T extends Principal> ctor
Constructor.
-
jsonPattern
@Nonnull private final Pattern jsonPattern
Pattern used to determine if input is supported.
-
-
Constructor Detail
-
SimplePrincipalSerializer
public SimplePrincipalSerializer(@Nonnull @ParameterName(name="claz") Class<T> claz, @Nonnull @NotEmpty @ParameterName(name="name") String name) throws NoSuchMethodException, SecurityException
Constructor.- Parameters:
claz- principal typename- field name of JSON structure- Throws:
SecurityException- if the constructor cannot be accessedNoSuchMethodException- if the constructor does not exist
-
-
Method Detail
-
supports
public boolean supports(@Nonnull Principal principal)Whether the supplied principal can be serialized.- Parameters:
principal- to examine- Returns:
- whether principal can be serialized
-
serialize
@Nonnull @NotEmpty public String serialize(@Nonnull Principal principal) throws IOException
Serialize the supplied principal.- Parameters:
principal- to serialize- Returns:
- serialized value
- Throws:
IOException- if an error occurs during serialization
-
getName
@Nonnull @NotEmpty protected String getName(@Nonnull Principal principal) throws IOException
Return the appropriate value to serialize from the input object.- Parameters:
principal- input object- Returns:
- the value to serialize.
- Throws:
IOException- if an error occurs
-
supports
public boolean supports(@Nonnull @NotEmpty String value)
Whether the supplied value can be deserialized.- Parameters:
value- to examine- Returns:
- whether value can be deserialized
-
deserialize
@Nullable public T deserialize(@Nonnull @NotEmpty String value) throws IOException
Deserialize the supplied value.- Parameters:
value- to deserialize- Returns:
- principal
- Throws:
IOException- if an error occurs during deserialization
-
getName
@Nullable protected String getName(@Nullable String serializedName) throws IOException
Return the appropriate value to create thePrincipalaround based on the serialized form.- Parameters:
serializedName- the value in the serialization.- Returns:
- the transformed value
- Throws:
IOException- if an error occurs
-
-