####################################################################################################
#                                                                                                  #
#  This is where the implementation classes for various core PingFederate services are specified.  #
#                                                                                                  #
####################################################################################################

# Runtime state management services
artifact.store=org.sourceid.saml20.service.impl.proxy.ArtifactPersistenceSvcProxy

assertion.replay.prevention.service=org.sourceid.saml20.service.impl.proxy.AssertionReplayPreventionSvcProxy

idp.session.reqistry=org.sourceid.saml20.service.impl.proxy.IdpSessionRegistryProxy

sp.session.reqistry=org.sourceid.saml20.service.impl.proxy.SpSessionRegistryProxy

# Supported classes:
#   org.sourceid.saml20.service.impl.proxy.InterRequestStateMgmtProxy
#   org.sourceid.saml20.service.impl.grouprpc.InterRequestStateMgmtGroupRpcImpl
#   org.sourceid.saml20.service.impl.localmemory.InterReqStateMgmtMapImpl
inter.request.state.mgmt=org.sourceid.saml20.service.impl.proxy.InterRequestStateMgmtProxy

session.revocation.service=org.sourceid.saml20.service.impl.proxy.SessionRevocationServiceProxy

node.index.registry=org.sourceid.saml20.service.impl.grouprpc.NodeIndexRegistryGroupRpcImpl

# Supported classes:
#   org.sourceid.saml20.service.impl.proxy.AccountLockingServiceProxy
#   org.sourceid.saml20.service.impl.grouprpc.AccountLockingServiceGroupRpcImpl (should only be used for engine nodes, not the admin console)
#   org.sourceid.saml20.service.impl.localmemory.AccountLockingServiceInMemoryImpl
account.locking.service=org.sourceid.saml20.service.impl.proxy.AccountLockingServiceProxy

# Crypto provider services
# JCEManager supported classes are
#   com.pingidentity.crypto.SunJCEManager         : Use this service-point if you are using default certificate storage
#   com.pingidentity.crypto.LunaJCEManager        : Use this service-point element if you are using the Thales Luna SA HSM to store certs
#   com.pingidentity.crypto.NcipherJCEManager     : Use this service-point element if you are using the Entrust nShield Connect HSM to store certs
#   com.pingidentity.crypto.AWSCloudHSMJCEManager : Use this service-point element if you are using the AWS Cloud HSM (not classic) to store certs
#   com.pingidentity.crypto.BCFIPSJCEManager      : Use this service-point element if you are using the Bouncy Castle FIPS provider to store certs
jce.manager=com.pingidentity.crypto.SunJCEManager

# Certificate storage supported classes:
#   com.pingidentity.crypto.CertificateServiceImpl            : Use this service-point if you are using default certificate storage
#   com.pingidentity.crypto.LunaCertificateServiceImpl        : Use this service-point element if you are using the Thales Luna SA HSM to store certs
#   com.pingidentity.crypto.NcipherCertificateServiceImpl     : Use this service-point element if you are using the Entrust nShield Connect HSM to store certs
#   com.pingidentity.crypto.AWSCloudHSMCertificateServiceImpl : Use this service-point element if you are using the AWS Cloud HSM (not classic) to store certs
#   com.pingidentity.crypto.BCFIPSCertificateServiceImpl      : Use this service-point element if you are using the Bouncy Castle FIPS provider to store certs
certificate.service=com.pingidentity.crypto.CertificateServiceImpl

# Service/adapter for storage of account linking
# Supported classes:
#     org.sourceid.saml20.service.impl.AccountLinkingServiceDBImpl       : Use this service-point for a database implementation
#     org.sourceid.saml20.service.impl.AccountLinkingServiceLDAPImpl     : Use this service-point for an LDAP implementation
#     org.sourceid.saml20.service.impl.AccountLinkingServiceDynamoDBImpl : Use this service-point for an Amazon DynamoDB implementation
account.linking.service=org.sourceid.saml20.service.impl.AccountLinkingServiceDBImpl

# Service for storage of access grants
# Supported classes:
#     org.sourceid.oauth20.token.AccessGrantManagerJdbcImpl               : Use this service-point for a Jdbc implementation
#     org.sourceid.oauth20.token.AccessGrantManagerLDAPADImpl             : Use this service-point for a Microsoft Active Directory implementation
#     org.sourceid.oauth20.token.AccessGrantManagerLDAPOracleImpl         : Use this service-point for an Oracle Directory Server Enterprise Edition implementation
#     org.sourceid.oauth20.token.AccessGrantManagerLDAPPingDirectoryImpl  : Use this service-point for a PingDirectory implementation
#     org.sourceid.oauth20.token.AccessGrantManagerLDAPPingDSImpl         : Use this service-point for a PingDS implementation
#     org.sourceid.oauth20.token.AccessGrantManagerDynamoDBImpl           : Use this service-point for an Amazon DynamoDB implementation
access.grant.manager=org.sourceid.oauth20.token.AccessGrantManagerJdbcImpl

# Service/adapter for creating pseudonym name ids
pseudonym.service=org.sourceid.saml20.service.impl.PseudonymServiceSha1Impl

# Service/adapter for creating pairwise pseudonymous identifiers
pairwise.pseudonym.service=org.sourceid.openid.connect.service.impl.PairwisePseudonymServiceAESImpl

# URL matching service for target apps/adapter selection
url.matching.service=org.sourceid.saml20.profiles.sp.UrlMatchingServiceOneStarImpl

# Service for certificate revocation checking
# Supported classes are
#   com.pingidentity.crypto.RevocationCheckerImpl                   : Use this to do certificate revocation checking
#   com.pingidentity.crypto.RevocationCheckerNullImpl               : Use this to turn off certificate revocation checking
revocation.checker=com.pingidentity.crypto.RevocationCheckerImpl

halter=org.sourceid.saml20.util.SystemUtil$RealHalter

# Locale override service
locale.override.service=com.pingidentity.locale.LocaleOverrideServiceImpl

# Service for using custom OAuth client storage implementation.
client.storage.manager=org.sourceid.oauth20.domain.NoOpClientStorageManager

# Service for storing OAuth client configuration.
# Supported classes are
#   org.sourceid.oauth20.domain.ClientManagerXmlFileImpl            : Use this service-point for an XML implementation.
#   org.sourceid.oauth20.domain.ClientManagerJdbcImpl               : Use this service-point for a Jdbc implementation.
#   org.sourceid.oauth20.domain.ClientManagerLdapImpl               : Use this service-point for an LDAP implementation.
#   org.sourceid.oauth20.domain.ClientManagerDynamoDBImpl           : Use this service-point for a DynamoDB implementation
#   org.sourceid.oauth20.domain.ClientManagerGenericImpl            : Use this service-point if you have specified a custom ClientStorageManager implementation above.
client.manager=org.sourceid.oauth20.domain.ClientManagerXmlFileImpl


# Service for storing Authentication Sessions.
# Supported classes:
#   org.sourceid.saml20.service.session.data.impl.SessionStorageManagerJdbcImpl : Use this service-point for a Jdbc implementation.
#   org.sourceid.saml20.service.session.data.impl.SessionStorageManagerLdapImpl : Use this service-point for an LDAP implementation.
#   org.sourceid.saml20.service.session.data.impl.SessionStorageManagerDynamoDBImpl : Use this service-point for a DynamoDB implementation.
session.storage.manager=org.sourceid.saml20.service.session.data.impl.SessionStorageManagerJdbcImpl

# Service for encrypting/decrypting PingFederate's master key file (pf.jwk). The default
# implementation does no operation and hence the keys are stored in plain text. Any custom
# implementation can be created and referred to here. Ping Federate 9.3 added support for
# master key encryption using AWS Key Management Services. See the PingFederate SDK's
# com.pingidentity.sdk.key.MasterKeyEncryptor interface for more info.
#
# Supported classes:
#   com.pingidentity.crypto.jwk.NoOpMasterKeyEncryptor                    : The default implementation that does no operation.
#   com.pingidentity.pingcommons.aws.key.AwsKmsMasterKeyEncryptor         : AWS KMS implementation. Note that admin should specify the key Id in MasterKeySet.xml.
#   com.pingidentity.pingcommons.gcp.key.GcpKmsMasterKeyEncryptor         : GCP KMS implementation. Note that admin should specify the key Id in MasterKeySet.xml.
master.key.encryptor=com.pingidentity.crypto.jwk.NoOpMasterKeyEncryptor