Class SecretsManagerPropertiesFunction

  • All Implemented Interfaces:
    AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Service, org.apache.camel.ShutdownableService, 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

    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.useDefaultCredentialsProvider

    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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      String apply​(String remainder)  
      protected void doStart()  
      protected void doStop()  
      org.apache.camel.CamelContext getCamelContext()  
      String getName()  
      String getRegion()
      The region in use for connecting to AWS Secrets Manager
      Set<String> getSecrets()
      Ids of the secrets in use
      boolean isDefaultCredentialsProvider()
      Whether login is using default credentials provider, or access/secret keys
      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 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 Detail

      • SecretsManagerPropertiesFunction

        public SecretsManagerPropertiesFunction()
    • Method Detail

      • 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.CamelContextAware
      • 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, or access/secret keys