diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 9626561..334cfed 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -1,7 +1,8 @@
name: Java CI
-
-on: [workflow_dispatch]
-
+on:
+ push:
+ tags:
+ - 'v*'
jobs:
build:
runs-on: ubuntu-latest
@@ -14,10 +15,11 @@ jobs:
java-version: '8'
distribution: 'adopt'
- name: Build with Maven
- run: mvn --batch-mode --update-snapshots verify
+ run: mvn -Drevision=${{github.ref_name}} --batch-mode --update-snapshots verify
- uses: jfrog/setup-jfrog-cli@v1
- env:
- JF_ARTIFACTORY_1: ${{ secrets.ARTIFACTORY_ACCESS_KEY }}
- run: |
- # Ping the server
- jfrog rt ping
\ No newline at end of file
+ mkdir ${{github.ref_name}}
+ cp target/*.jar ${{github.ref_name}}/.
+ jfrog rt u "${{github.ref_name}}/*.jar" akeyless-java/io/akeyless/cloudid/${{github.ref_name}}/ --url=https://akeyless.jfrog.io/artifactory --user=ci-user --password=${{ secrets.ARTIFACTORY_ACCESS_KEY }}
+ sed "s/\${revision}/${{github.ref_name}}/g" pom.xml >> target/cloudid-${{github.ref_name}}.pom
+ jfrog rt u "${{github.ref_name}}/*.pom" akeyless-java/io/akeyless/cloudid/${{github.ref_name}}/ --url=https://akeyless.jfrog.io/artifactory --user=ci-user --password=${{ secrets.ARTIFACTORY_ACCESS_KEY }}
\ No newline at end of file
diff --git a/.github/workflows/security_pr_scanner.yml b/.github/workflows/security_pr_scanner.yml
new file mode 100644
index 0000000..e114480
--- /dev/null
+++ b/.github/workflows/security_pr_scanner.yml
@@ -0,0 +1,17 @@
+name: Security PR Scan
+
+on: [pull_request]
+
+jobs:
+ Scanning_with:
+ uses: akeylesslabs/akeyless-security/.github/workflows/reusable-scanner.yaml@main
+ strategy:
+ fail-fast: false
+ matrix:
+ scan_type: ["SAST", "SCA"]
+ with:
+ branch_name: ${{ github.head_ref }}
+ repository_name: ${{ github.repository }}
+ event_name: ${{ github.event_name }}
+ scan_type: ${{ matrix.scan_type }}
+ secrets: inherit
\ No newline at end of file
diff --git a/README.md b/README.md
index e69de29..a308783 100644
--- a/README.md
+++ b/README.md
@@ -0,0 +1,105 @@
+# akeyless-java-cloud-id
+
+Akeyless CloudId Provider
+
+The purpose of this package is to exteact the required "cloudid" to authenticate to akeyless using cloud authorization providers.
+
+For more information, please visit [http://akeyless.io](http://akeyless.io)
+
+## Publishing a new version
+Tag the commit with a new tag and push to the repository.
+The workflow will build and publish a new version to the artifactory repository.
+
+## Requirements
+
+Using the cloudid provider requires:
+1. Java 1.8+
+2. Maven/Gradle
+
+## Installation
+
+### Maven users
+
+Add the following repository definition to your Maven settings file (default
+`~/.m2/settings.xml`) or your POM file:
+
+```xml
+
+ central
+ https://akeyless.jfrog.io/artifactory/akeyless-java
+ false
+
+```
+
+Add this dependency to your project's POM:
+
+```xml
+
+ io.akeyless
+ cloudid
+ Specify the CloudId package version here
+
+```
+To use akeyless java sdk, you should also add:
+```xml
+
+ io.akeyless
+ akeyless-java
+ Specify the SDK version here
+
+```
+
+## Getting Started
+
+Please follow the [installation](#installation) instruction and execute the following Java code:
+
+```java
+import io.akeyless.client.ApiException;
+import io.akeyless.cloudid.CloudProviderFactory;
+import io.akeyless.cloudid.CloudIdProvider;
+
+import io.akeyless.client.ApiClient;
+import io.akeyless.client.Configuration;
+import io.akeyless.client.model.*;
+import io.akeyless.client.api.V2Api;
+
+public class Main {
+ public static void main(String[] argv) {
+ // Use azure_ad/aws_iam/gcp, according to your cloud provider
+ String accessType = "azure_ad";
+ CloudIdProvider idProvider = CloudProviderFactory.getCloudIdProvider(accessType);
+ try {
+ String cloudId = idProvider.getCloudId();
+
+ ApiClient client = Configuration.getDefaultApiClient();
+ client.setBasePath("https://api.akeyless.io");
+
+ V2Api api = new V2Api(client);
+ Auth auth = new Auth();
+ auth.accessId("");
+ auth.accessType(accessType);
+ auth.cloudId(cloudId);
+
+ AuthOutput result = api.auth(auth);
+
+
+ ListItems listBody = new ListItems();
+ listBody.setToken(result.getToken());
+ ListItemsInPathOutput listOut = api.listItems(listBody);
+ System.out.println(listOut.getItems().size());
+ } catch (ApiException e) {
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ } catch (Exception e) {
+ System.err.println("Reason: " + e.getMessage());
+ e.printStackTrace();
+ }
+ }
+}
+ ```
+
+## Author
+support@akeyless.io
+
diff --git a/cloudid.iml b/cloudid.iml
index 4eb1aa3..64393b4 100644
--- a/cloudid.iml
+++ b/cloudid.iml
@@ -1,5 +1,6 @@
+
diff --git a/pom.xml b/pom.xml
index 77c4cea..f40afc1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,10 +3,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
-
io.akeyless
cloudid
- 0.1.0
+ ${revision}
jar
akeyless-cloud-id
https://github.com/akeylesslabs/akeyless-java-cloud-id
@@ -31,6 +30,7 @@
+ 2.14.0
8
8
@@ -43,11 +43,18 @@
1.5.3
-
+
com.fasterxml.jackson.core
- jackson-core
- 2.13.1
+ jackson-databind
+ ${fasterxml_version}
+
+
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-cbor
+ ${fasterxml_version}
@@ -55,6 +62,20 @@
com.amazonaws
aws-java-sdk-core
1.12.169
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-cbor
+
+
@@ -65,4 +86,27 @@
https://akeyless.jfrog.io/artifactory/akeyless-java
+
+
+
+
+
+ maven-assembly-plugin
+
+
+ package
+
+ single
+
+
+
+
+
+ jar-with-dependencies
+
+ false
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/akeyless/Main.java b/src/main/java/io/akeyless/Main.java
deleted file mode 100644
index 490a05c..0000000
--- a/src/main/java/io/akeyless/Main.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package io.akeyless;
-
-public class Main {
-
- public static void main(String[] args) {
- if (args.length < 1) {
- System.out.println("Please enter provider type");
- System.exit(1);
- }
- CloudIdProvider provider = CloudProviderFactory.getCloudIdProvider(args[0]);
- try {
- String cloudId = provider.getCloudId();
- System.out.println(cloudId);
- } catch (Exception e) {
- System.err.println(e.getMessage());
- }
- }
-}
diff --git a/src/main/java/io/akeyless/AwsCloudIdProvider.java b/src/main/java/io/akeyless/cloudid/AwsCloudIdProvider.java
similarity index 98%
rename from src/main/java/io/akeyless/AwsCloudIdProvider.java
rename to src/main/java/io/akeyless/cloudid/AwsCloudIdProvider.java
index 144d7bb..32edcb7 100644
--- a/src/main/java/io/akeyless/AwsCloudIdProvider.java
+++ b/src/main/java/io/akeyless/cloudid/AwsCloudIdProvider.java
@@ -1,4 +1,4 @@
-package io.akeyless;
+package io.akeyless.cloudid;
import com.amazonaws.DefaultRequest;
import com.amazonaws.auth.AWS4Signer;
diff --git a/src/main/java/io/akeyless/AzureCloudIdProvider.java b/src/main/java/io/akeyless/cloudid/AzureCloudIdProvider.java
similarity index 98%
rename from src/main/java/io/akeyless/AzureCloudIdProvider.java
rename to src/main/java/io/akeyless/cloudid/AzureCloudIdProvider.java
index a7b5e50..06c9c51 100644
--- a/src/main/java/io/akeyless/AzureCloudIdProvider.java
+++ b/src/main/java/io/akeyless/cloudid/AzureCloudIdProvider.java
@@ -1,4 +1,4 @@
-package io.akeyless;
+package io.akeyless.cloudid;
import java.io.InputStream;
import java.net.HttpURLConnection;
diff --git a/src/main/java/io/akeyless/CloudIdProvider.java b/src/main/java/io/akeyless/cloudid/CloudIdProvider.java
similarity index 73%
rename from src/main/java/io/akeyless/CloudIdProvider.java
rename to src/main/java/io/akeyless/cloudid/CloudIdProvider.java
index f2c78c4..a53353c 100644
--- a/src/main/java/io/akeyless/CloudIdProvider.java
+++ b/src/main/java/io/akeyless/cloudid/CloudIdProvider.java
@@ -1,4 +1,4 @@
-package io.akeyless;
+package io.akeyless.cloudid;
public interface CloudIdProvider {
String getCloudId() throws Exception;
diff --git a/src/main/java/io/akeyless/CloudProviderFactory.java b/src/main/java/io/akeyless/cloudid/CloudProviderFactory.java
similarity index 94%
rename from src/main/java/io/akeyless/CloudProviderFactory.java
rename to src/main/java/io/akeyless/cloudid/CloudProviderFactory.java
index fa08a13..77d8c25 100644
--- a/src/main/java/io/akeyless/CloudProviderFactory.java
+++ b/src/main/java/io/akeyless/cloudid/CloudProviderFactory.java
@@ -1,4 +1,4 @@
-package io.akeyless;
+package io.akeyless.cloudid;
import java.util.Objects;
diff --git a/src/main/java/io/akeyless/GcpCloudIdProvider.java b/src/main/java/io/akeyless/cloudid/GcpCloudIdProvider.java
similarity index 95%
rename from src/main/java/io/akeyless/GcpCloudIdProvider.java
rename to src/main/java/io/akeyless/cloudid/GcpCloudIdProvider.java
index 56f40eb..8547a95 100644
--- a/src/main/java/io/akeyless/GcpCloudIdProvider.java
+++ b/src/main/java/io/akeyless/cloudid/GcpCloudIdProvider.java
@@ -1,4 +1,4 @@
-package io.akeyless;
+package io.akeyless.cloudid;
import com.google.auth.oauth2.IdToken;
import com.google.auth.oauth2.IdTokenCredentials;
@@ -6,7 +6,6 @@
import com.google.auth.oauth2.GoogleCredentials;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF
deleted file mode 100644
index 2bf19d6..0000000
--- a/src/main/resources/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Main-Class: io.akeyless.Main
-