如何处理从Java中的“ VM选项”注入的参数

时间:2019-02-07 13:59:33

标签: java amazon-s3 jvm

我正在使用连接到Amazon S3的代码,并且想在代码之外提供秘密和访问密钥(因为在将它保存在Git中时,我不想保存它)。

我试图使用VM Options来提供这些参数并能够从我的代码中读取它们。我正在使用Java。

2 个答案:

答案 0 :(得分:1)

您可以在调用-D开关的java命令时为VM提供属性。

java -cp [myClassPath] -D[mypropName]=[myvalue] [myMainClass]

然后在您的Java应用程序中,您可以按以下方式访问属性:

public String retreiveMyProperty() {
   return  System.getProperty("[mypropName]");
}

希望获得帮助。

答案 1 :(得分:0)

我这样做了:

从VM选项读取的这段代码:

curl -X POST   http://localhost:8080/auth/realms/${realm}/protocol/openid-connect/token  -H "Authorization: Bearer ${access_token}" --data "grant_type=urn:ietf:params:oauth:grant-type:uma-ticket" --data "audience={resource_server_client_id}"  --data "permission=Resource#Scope"

这就是我从VM Options中提供它的方式:

 private List<String> getAmazonParams() {
        List<String> s3CredentialsList = new ArrayList<>();
        s3CredentialsList.add(System.getProperty("access_key"));
        s3CredentialsList.add(System.getProperty("secret_key"));
        return s3CredentialsList;

    }