github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/clients/hadoopfs/src/main/java/io/lakefs/auth/TemporaryAWSCredentialsLakeFSTokenProvider.java (about) 1 package io.lakefs.auth; 2 3 import com.amazonaws.auth.AWSCredentialsProvider; 4 import org.apache.hadoop.conf.Configuration; 5 import com.amazonaws.auth.AWSCredentials; 6 import com.amazonaws.auth.BasicSessionCredentials; 7 import io.lakefs.Constants; 8 import io.lakefs.FSConfiguration; 9 10 import java.io.IOException; 11 12 public class TemporaryAWSCredentialsLakeFSTokenProvider extends AWSLakeFSTokenProvider { 13 14 public static final String NAME = "io.lakefs.auth.TemporaryAWSCredentialsLakeFSTokenProvider"; 15 16 public TemporaryAWSCredentialsLakeFSTokenProvider(String scheme, Configuration conf) throws IOException { 17 String accessKey = FSConfiguration.get(conf, scheme, Constants.TOKEN_AWS_CREDENTIALS_PROVIDER_ACCESS_KEY_SUFFIX); 18 if (accessKey == null) { 19 throw new IOException("Missing AWS access key"); 20 } 21 String secretKey = FSConfiguration.get(conf, scheme, Constants.TOKEN_AWS_CREDENTIALS_PROVIDER_SECRET_KEY_SUFFIX); 22 if (secretKey == null) { 23 throw new IOException("Missing AWS secret key"); 24 } 25 String sessionToken = FSConfiguration.get(conf, scheme, Constants.TOKEN_AWS_CREDENTIALS_PROVIDER_SESSION_TOKEN_KEY_SUFFIX); 26 if (sessionToken == null) { 27 throw new IOException("Missing AWS session token"); 28 } 29 AWSCredentialsProvider awsProvider = new AWSCredentialsProvider() { 30 @Override 31 public AWSCredentials getCredentials() { 32 return new BasicSessionCredentials( 33 accessKey, 34 secretKey, 35 sessionToken 36 ); 37 } 38 39 @Override 40 public void refresh() { 41 } 42 }; 43 44 this.initialize(awsProvider, scheme, conf); 45 } 46 }