Class AbstractSecurityProviderRegistrar

java.lang.Object
org.apache.sshd.common.util.logging.AbstractLoggingBean
org.apache.sshd.common.util.security.AbstractSecurityProviderRegistrar
All Implemented Interfaces:
NamedResource, OptionalFeature, PropertyResolver, SecurityProviderChoice, SecurityProviderRegistrar
Direct Known Subclasses:
BouncyCastleSecurityProviderRegistrar, EdDSASecurityProviderRegistrar

public abstract class AbstractSecurityProviderRegistrar extends AbstractLoggingBean implements SecurityProviderRegistrar
  • Field Details

  • Constructor Details

    • AbstractSecurityProviderRegistrar

      protected AbstractSecurityProviderRegistrar(String name)
  • Method Details

    • getName

      public final String getName()
      Specified by:
      getName in interface NamedResource
      Returns:
      The resource name
    • getProperties

      public Map<String,Object> getProperties()
      Description copied from interface: PropertyResolver

      A map of properties that can be used to configure the SSH server or client. This map will never be changed by either the server or client and is not supposed to be changed at runtime (changes are not bound to have any effect on a running client or server), though it may affect the creation of sessions later as these values are usually not cached.

      Note: the type of the mapped property should match the expected configuration value type - Long, Integer, Boolean, String, etc.... If it doesn't, the toString() result of the mapped value is used to convert it to the required type. E.g., if the mapped value is the string "1234" and the expected value is a long then it will be parsed into one. Also, if the mapped value is an Integer but a long is expected, then it will be converted into one.

      Specified by:
      getProperties in interface PropertyResolver
      Specified by:
      getProperties in interface SecurityProviderRegistrar
      Returns:
      a valid Map containing configuration values, never null. Note: may be immutable.
    • isSecurityEntitySupported

      public boolean isSecurityEntitySupported(Class<?> entityType, String name)
      Specified by:
      isSecurityEntitySupported in interface SecurityProviderRegistrar
    • getOrCreateProvider

      protected Provider getOrCreateProvider(String providerClassName) throws ReflectiveOperationException
      Attempts to see if a provider with this name already registered. If not, then uses reflection API in order to load and instantiate the specified providerClassName
      Parameters:
      providerClassName - The fully-qualified class name to instantiate if a provider not already registered
      Returns:
      The resolved Provider instance - Note: the result is cached - i.e., successful resolution result will not cause the code to re-resolve the provider
      Throws:
      ReflectiveOperationException - If failed to instantiate the provider
      UnsupportedOperationException - If registrar not supported
      See Also:
    • createProviderInstance

      protected Provider createProviderInstance(String providerClassName) throws ReflectiveOperationException
      Throws:
      ReflectiveOperationException
    • toString

      public String toString()
      Overrides:
      toString in class Object