private EntityMapper getCredentialAttributeMapper(Class<? extends CredentialStorage> credentialStorageClass) { for (EntityMapper entityMapper : this.entityMappers) { ManagedCredential managedCredential = entityMapper.getEntityType().getAnnotation(ManagedCredential.class); if (managedCredential != null) { if (managedCredential.value().length > 0) { for (Class<?> supportedType : managedCredential.value()) { if (supportedType.equals(credentialStorageClass)) { return entityMapper; } } for (Class<?> supportedType : managedCredential.value()) { if (supportedType.isAssignableFrom(credentialStorageClass)) { return entityMapper; } } } else { return entityMapper; } } } throw new IdentityManagementException("No mapper for for credential storage type [" + credentialStorageClass + "]."); }
/** * <p>This entity is mapped to support X509 credential types using a {@link X509CertificateStorage}.</p> * * @author pedroigor */ @ManagedCredential (X509CertificateStorage.class) @Entity public class X509CredentialTypeEntity extends AbstractCredentialTypeEntity { private static final long serialVersionUID = -8313462190592256324L; @CredentialProperty @Column(length = 1024) private String base64Cert; public String getBase64Cert() { return base64Cert; } public void setBase64Cert(String base64Cert) { this.base64Cert = base64Cert; } }
private EntityMapper getCredentialAttributeMapper(Class<? extends CredentialStorage> credentialStorageClass) { for (EntityMapper entityMapper : this.entityMappers) { ManagedCredential managedCredential = entityMapper.getEntityType().getAnnotation(ManagedCredential.class); if (managedCredential != null) { if (managedCredential.value().length > 0) { for (Class<?> supportedType : managedCredential.value()) { if (supportedType.equals(credentialStorageClass)) { return entityMapper; } } for (Class<?> supportedType : managedCredential.value()) { if (supportedType.isAssignableFrom(credentialStorageClass)) { return entityMapper; } } } else { return entityMapper; } } } throw new IdentityManagementException("No mapper for for credential storage type [" + credentialStorageClass + "]."); }
/** * <p>This entity is mapped to support X509 credential types using a {@link X509CertificateStorage}.</p> * * @author pedroigor */ @ManagedCredential (X509CertificateStorage.class) @Entity public class X509CredentialTypeEntity extends AbstractCredentialTypeEntity { private static final long serialVersionUID = -8313462190592256324L; @CredentialProperty @Column(length = 1024) private String base64Cert; public String getBase64Cert() { return base64Cert; } public void setBase64Cert(String base64Cert) { this.base64Cert = base64Cert; } }
List<EntityMapping> mappings = new ArrayList<EntityMapping>(); Class<? extends CredentialStorage>[] storageTypes = getManagedCredential(entityType).value();
@ManagedCredential(TokenCredentialStorage.class) @Entity public class TokenCredentialTypeEntity extends AbstractCredentialTypeEntity {
List<EntityMapping> mappings = new ArrayList<EntityMapping>(); Class<? extends CredentialStorage>[] storageTypes = getManagedCredential(entityType).value();
@ManagedCredential(TokenCredentialStorage.class) @Entity public class TokenCredentialTypeEntity extends AbstractCredentialTypeEntity {
@ManagedCredential (DigestCredentialStorage.class) @Entity public class DigestCredentialTypeEntity extends AbstractCredentialTypeEntity {
@ManagedCredential (EncodedPasswordStorage.class) @Entity public class PasswordCredentialTypeEntity extends AbstractCredentialTypeEntity {
@ManagedCredential (OTPCredentialStorage.class) @Entity public class OTPCredentialTypeEntity extends AbstractCredentialTypeEntity {
@ManagedCredential (DigestCredentialStorage.class) @Entity public class DigestCredentialTypeEntity extends AbstractCredentialTypeEntity {
@ManagedCredential (OTPCredentialStorage.class) @Entity public class OTPCredentialTypeEntity extends AbstractCredentialTypeEntity {
@ManagedCredential (EncodedPasswordStorage.class) @Entity public class PasswordCredentialTypeEntity extends AbstractCredentialTypeEntity {