spring-cloud-config-aws-kms icon indicating copy to clipboard operation
spring-cloud-config-aws-kms copied to clipboard

getting error Caused by: com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment .

Open jangid21 opened this issue 2 years ago • 0 comments

Hi, I am trying to upgrade the spring boot to 2.6.6 I am trying to use zalando library for aws kms implementation. but it is failing in decryption process. getting error

"Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kms' defined in class path resource [de/zalando/spring/cloud/config/aws/kms/KmsEncryptionConfiguration$KmsConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.amazonaws.services.kms.AWSKMS]: Factory method 'kms' threw exception; nested exception is com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region. Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.amazonaws.services.kms.AWSKMS]: Factory method 'kms' threw exception; nested exception is com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region. Caused by: com.amazonaws.SdkClientException: Unable to find a region via the region provider chain. Must provide an explicit region in the builder or setup environment to supply a region. "

I have one controller class.

import com.logmein.ucc.Application; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;

@EnableAutoConfiguration @RestController public class DemoController {

// @SuppressWarnings("unused") // @Autowired // private TextEncryptor encryptor;

@Value("${not.secret}")
private String notSecret;

@Value("${yes.secret}")
private String yesSecret;

@RequestMapping("/secret")
public String testConfiguration() {
    // values that start with {cipher} are automatically decrypted. Or you
    // can use the injected encryptor to encrypt/decrypt text on the fly.
    //String decrypted = encryptor.decrypt("Another secret");
    return String.format("No Secret = %s<br/>Secret = %s", notSecret, yesSecret);
}

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

I have added secrets in the application.properties

not.secret=Not Secret yes.secret={cipher}AQECAHgC4i08YQPWUmjDPAmJr78ypSphQy+cO9D/UNvsgKmjNAAAAGgwZgYJKoZIhvcNAQcGoFkwVwIBADBSBgkqhkiG9w0BBwEwHgYJYIZIAWUDBAEuMBEEDHWhtF95tvJzwtncNQIBEIAlTrYDV6TI1FwKPMCuUYMt6wsYLEE+f7uQkZ0Kcx6nPMjd57VNEA==

can anyone suggest how to resolve this issue ?

jangid21 avatar Jun 10 '22 11:06 jangid21