Class SecretManagerConfigDataLocationResolverLoader

java.lang.Object
com.google.cloud.spring.autoconfigure.secretmanager.SecretManagerConfigDataLocationResolverLoader
All Implemented Interfaces:
org.springframework.boot.context.config.ConfigDataLocationResolver<org.springframework.boot.context.config.ConfigDataResource>

public class SecretManagerConfigDataLocationResolverLoader extends Object implements org.springframework.boot.context.config.ConfigDataLocationResolver<org.springframework.boot.context.config.ConfigDataResource>
A safe delegating ConfigDataLocationResolver that loads SecretManagerConfigDataLocationResolver only if Secret Manager dependency is present on the classpath.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    isResolvable(org.springframework.boot.context.config.ConfigDataLocationResolverContext context, org.springframework.boot.context.config.ConfigDataLocation location)
    Checks if the property can be resolved by the Secret Manager resolver.
    List<org.springframework.boot.context.config.ConfigDataResource>
    resolve(org.springframework.boot.context.config.ConfigDataLocationResolverContext context, org.springframework.boot.context.config.ConfigDataLocation location)
     

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface org.springframework.boot.context.config.ConfigDataLocationResolver

    resolveProfileSpecific
  • Constructor Details

    • SecretManagerConfigDataLocationResolverLoader

      public SecretManagerConfigDataLocationResolverLoader()
  • Method Details

    • isResolvable

      public boolean isResolvable(org.springframework.boot.context.config.ConfigDataLocationResolverContext context, org.springframework.boot.context.config.ConfigDataLocation location)
      Checks if the property can be resolved by the Secret Manager resolver. For the check, we rely on the presence of the SecretManagerSyntaxUtils class, which is an optional dependency. Since optional dependencies may not be present at runtime, we explicitly check for its existence before resolving the property. If it's not present, it means this config resolver is not meant to be used.
      Specified by:
      isResolvable in interface org.springframework.boot.context.config.ConfigDataLocationResolver<org.springframework.boot.context.config.ConfigDataResource>
      Returns:
      true if the delegate resolver is initialized and the location has the expected Secret Manager prefix (e.g., sm@ or sm://); false otherwise.
    • resolve

      public List<org.springframework.boot.context.config.ConfigDataResource> resolve(org.springframework.boot.context.config.ConfigDataLocationResolverContext context, org.springframework.boot.context.config.ConfigDataLocation location)
      Specified by:
      resolve in interface org.springframework.boot.context.config.ConfigDataLocationResolver<org.springframework.boot.context.config.ConfigDataResource>