阿里云访问控制STS模式简要说明
API参考
参考代码
AliyunStsProperties.java
@Data
@Configuration
@ConfigurationProperties(prefix = "aliyun.sts")
public class AliyunStsProperties {
private String stsAccessKeyId;
private String stsAccessKeySecret;
private String roleArn;
private Long durationSeconds;
private String regionId;
private String endpoint;
}
AliyunSts.java
public interface AliyunSts {
STSToken getToken(BucketTypeEnum bucketTypeEnum, String roleSessionName) throws ClientException;
default Policy generatePolicy() {
return null;
}
}
AliyunStsImpl.java
@Slf4j
@Component
public class AliyunStsImpl implements AliyunSts {
@Resource
private AliyunStsProperties aliyunStsProperties;
@Resource
private AliyunOssProperties aliyunOssProperties;
@Override
public STSToken getToken(BucketTypeEnum bucketTypeEnum,
String roleSessionName) throws ClientException {
DefaultProfile profile = DefaultProfile.getProfile(
aliyunStsProperties.getRegionId(),
aliyunStsProperties.getStsAccessKeyId(),
aliyunStsProperties.getStsAccessKeySecret());
IAcsClient client = new DefaultAcsClient(profile);
AssumeRoleRequest request = getAssumeRoleRequest(bucketTypeEnum, roleSessionName);
AssumeRoleResponse response;
try