Aws-sdk-java-v2: Issue creating Profilefile

Created on 21 Jan 2019  路  2Comments  路  Source: aws/aws-sdk-java-v2

I'm using the v.20 Java with JDK11

I've created a IAM user with its profile file, formatted as follows:

          `[default]
          aws_access_key_id=XXXXXXXXXXXXXXXX
          aws_secret_access_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
          `

I want to create a client who can log and list buckets using the identity and the permissions of such a IAM user.

I'm creating a Profile Credentials Provider:

                      `ProfileCredentialsProvider 
                        profprovider = 
      ProfileCredentialsProvider.builder().profileFile(ProfileFile.builder().content(Paths.get(credenziali)).
       build()).build();`

where 'credenziali' is the windows path of the profile file with access key ID and Secret key.

It's about the same I was doing with Java 1.11, but I have to convert it to 2.0.

But here with 2.0 it looks like info cannot be retrieved from Profile file and I have the following error:

java.lang.NullPointerException: type must not be null. at software.amazon.awssdk.utils.Validate.paramNotNull(Validate.java:117) at software.amazon.awssdk.profiles.ProfileFile$BuilderImpl.build(ProfileFile.java:257) at com.mycompany.dcp.downloader3.NewJFrame.jButton4MouseClicked(NewJFrame.java:365) at com.mycompany.dcp.downloader3.NewJFrame.access$500(NewJFrame.java:70) at com.mycompany.dcp.downloader3.NewJFrame$6.mouseClicked(NewJFrame.java:196) at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:278) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6397) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4556) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90) java.lang.Exception at com.mycompany.dcp.downloader3.NewJFrame.jButton4MouseClicked(NewJFrame.java:433) at com.mycompany.dcp.downloader3.NewJFrame.access$500(NewJFrame.java:70) at com.mycompany.dcp.downloader3.NewJFrame$6.mouseClicked(NewJFrame.java:196) at java.desktop/java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:278) at java.desktop/java.awt.Component.processMouseEvent(Component.java:6635) at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3342) at java.desktop/java.awt.Component.processEvent(Component.java:6397) at java.desktop/java.awt.Container.processEvent(Container.java:2263) at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5008) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2321) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840) at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4918) at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4556) at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4488) at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2307) at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2772) at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840) at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745) at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742) at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

It seems this is the failing part:

ProfileFile.builder().content(Paths.get(credenziali)).build())....

Any better idea to create a client who can log with its own credentials (IAM user), lists buckets and perform some operations on Directories?

Thanks in advance

Most helpful comment

Update: I solved it myself.

The problem is the type of profile file must be specified to let it be properly parsed:

ProfileCredentialsProvider.builder().profileFile(ProfileFile.builder().type(ProfileFile.Type.CREDENTIALS).content(Paths.get(credenziali)).build()).build();

the part
.type(ProfileFile.Type.CREDENTIALS).

must be added

All 2 comments

Update: I solved it myself.

The problem is the type of profile file must be specified to let it be properly parsed:

ProfileCredentialsProvider.builder().profileFile(ProfileFile.builder().type(ProfileFile.Type.CREDENTIALS).content(Paths.get(credenziali)).build()).build();

the part
.type(ProfileFile.Type.CREDENTIALS).

must be added

Glad to hear you got it working!
And as this is a question regarding V2 we transferred it to the V2 repo, for visibility.

Closing this, fell free to reopen if you have further questions.

Was this page helpful?
0 / 5 - 0 ratings