Class SecretsManagerPropertiesFunction

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.component.aws.secretsmanager.SecretsManagerPropertiesFunction
All Implemented Interfaces:
AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasCamelContext, org.apache.camel.spi.PropertiesFunction, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

@PropertiesFunction("aws") public class SecretsManagerPropertiesFunction extends org.apache.camel.support.service.ServiceSupport implements org.apache.camel.spi.PropertiesFunction, org.apache.camel.CamelContextAware
A PropertiesFunction that lookup the property value from AWS Secrets Manager service.

The credentials to access Secrets Manager is defined using three environment variables representing the static credentials:

  • CAMEL_VAULT_AWS_ACCESS_KEY
  • CAMEL_VAULT_AWS_SECRET_KEY
  • CAMEL_VAULT_AWS_REGION
  • CAMEL_VAULT_AWS_USE_DEFAULT_CREDENTIALS_PROVIDER
  • CAMEL_VAULT_AWS_USE_PROFILE_CREDENTIALS_PROVIDER
  • CAMEL_AWS_VAULT_PROFILE_NAME

Otherwise, it is possible to specify the credentials as properties:

  • camel.vault.aws.accessKey
  • camel.vault.aws.secretKey
  • camel.vault.aws.region
  • camel.vault.aws.defaultCredentialsProvider
  • camel.vault.aws.profileCredentialsProvider
  • camel.vault.aws.profileName

This implementation is to return the secret value associated with a key. The properties related to this kind of Properties Function are all prefixed with aws:. For example asking for aws:token, will return the secret value associated to the secret named token on AWS Secrets Manager. Another way of retrieving a secret value is using the following notation aws:database/username: in this case the field username of the secret database will be returned. As a fallback, the user could provide a default value, which will be returned in case the secret doesn't exist, the secret has been marked for deletion or, for example, if a particular field of the secret doesn't exist. For using this feature, the user could use the following notation aws:database/username:admin. The admin value will be returned as default value, if the conditions above were all met.

  • Field Summary

    Fields inherited from class org.apache.camel.support.service.BaseService

    BUILT, FAILED, INITIALIZED, INITIALIZING, lock, NEW, SHUTDOWN, SHUTTING_DOWN, STARTED, STARTING, status, STOPPED, STOPPING, SUSPENDED, SUSPENDING
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    apply(String remainder)
     
    protected void
     
    protected void
     
    org.apache.camel.CamelContext
     
     
    The profile name to use when using the profile credentials provider
    The region in use for connecting to AWS Secrets Manager
    Ids of the secrets in use
    boolean
    Whether login is using default credentials provider
    boolean
    Whether login is using default profile credentials provider
    void
    setCamelContext(org.apache.camel.CamelContext camelContext)
     

    Methods inherited from class org.apache.camel.support.service.BaseService

    build, doBuild, doFail, doInit, doLifecycleChange, doResume, doShutdown, doSuspend, fail, getStatus, init, isBuild, isInit, isNew, isRunAllowed, isShutdown, isStarted, isStarting, isStartingOrStarted, isStopped, isStopping, isStoppingOrStopped, isSuspended, isSuspending, isSuspendingOrSuspended, resume, shutdown, start, stop, suspend

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.apache.camel.spi.PropertiesFunction

    lookupFirst

    Methods inherited from interface org.apache.camel.Service

    build, close, init, start, stop

    Methods inherited from interface org.apache.camel.ShutdownableService

    shutdown

    Methods inherited from interface org.apache.camel.StatefulService

    getStatus, isRunAllowed, isStarted, isStarting, isStopped, isStopping, isSuspending

    Methods inherited from interface org.apache.camel.SuspendableService

    isSuspended, resume, suspend
  • Constructor Details

    • SecretsManagerPropertiesFunction

      public SecretsManagerPropertiesFunction()
  • Method Details

    • doStart

      protected void doStart() throws Exception
      Overrides:
      doStart in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • doStop

      protected void doStop() throws Exception
      Overrides:
      doStop in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • getName

      public String getName()
      Specified by:
      getName in interface org.apache.camel.spi.PropertiesFunction
    • apply

      public String apply(String remainder)
      Specified by:
      apply in interface org.apache.camel.spi.PropertiesFunction
    • setCamelContext

      public void setCamelContext(org.apache.camel.CamelContext camelContext)
      Specified by:
      setCamelContext in interface org.apache.camel.CamelContextAware
    • getCamelContext

      public org.apache.camel.CamelContext getCamelContext()
      Specified by:
      getCamelContext in interface org.apache.camel.spi.HasCamelContext
    • getSecrets

      public Set<String> getSecrets()
      Ids of the secrets in use
    • getRegion

      public String getRegion()
      The region in use for connecting to AWS Secrets Manager
    • isDefaultCredentialsProvider

      public boolean isDefaultCredentialsProvider()
      Whether login is using default credentials provider
    • isProfleCredentialsProvider

      public boolean isProfleCredentialsProvider()
      Whether login is using default profile credentials provider
    • getProfileName

      public String getProfileName()
      The profile name to use when using the profile credentials provider