Its been a long time since i touched this api, but wouldn't you want
return findCredentials(credentialsId, Jenkins.get());
not null?

On Sun, Oct 30, 2022 at 1:34 PM Arnold van Wijnbergen <[email protected]>
wrote:

> Hi Jenkins Developers,
>
> We are currently busy with adding a new feature to OSS code signing
> plugin. In the current situation we store credentials (username/password)
> as global in Jenkins as credentials provider. For this we use the
> credentials plugin.
>
> This works well, but we want to improve this to support
> FolderCredentialsProvider used in combination with the Role strategy
> plugin.  Currently this works okay.
>
> 1) First step we moved UI code  to the simplebuildStep. This works and we
> can choose and save the folder based 'global' credential. We can see this
> credential in the dropdown list. So this UI and persistence part works.
>
> Now the second part is where we see some problems occur when we execute
> the job. The job is inside the folder we created the credentials.
>
> 2) When we now execute the job we use following code to lookup the
> credential by credentialId.
>
>  @Nullable
>     public static StandardUsernamePasswordCredentials
> findCredentials(String credentialsId) {
>         return findCredentials(credentialsId, null);
>     }
>
>     @Nullable
>     public static StandardUsernamePasswordCredentials
> findCredentials(String credentialsId, Item item) {
>         if (StringUtils.isBlank(credentialsId)) {
>             return null;
>         }
>         return CredentialsMatchers.firstOrNull(
>             CredentialsProvider.lookupCredentials(
>                 StandardUsernamePasswordCredentials.class,
>                 item,
>                 ACL.SYSTEM,
>                 Collections.emptyList()),
>             CredentialsMatchers.allOf(
>                 CredentialsMatchers.withId(credentialsId),
>                 CredentialsMatchers.anyOf(
>
> CredentialsMatchers.instanceOf(StandardUsernamePasswordCredentials.class))));
>     }
>
> This code executes but throws an exception (as defined by us) that  the
> credentialID is not found. I can see that this ID corresponds to the folder
> based credential.
>
> When updating the configuration with a Jenkins global credential
> everything works.
>
> To summarise : Seems that we currently still only can see Jenkins global
> credentials instead of folder global credentials we want to include as well.
>
> We already tried to look deeper into credentials API, but don't find a
> good hint, so looking for a suggestion here. The job is started by an admin
> user and running as SYSTEM.
>
> How can we include both Jenkins and folder provider credentials in the
> lookup, so both can be matched ? Currently the folder credentials are not
> found.
>
> Any help here is welcome. I think we just oversee something here
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/a33f9274-b484-4f74-ae0d-384c0ff3ba85n%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/a33f9274-b484-4f74-ae0d-384c0ff3ba85n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAG%3D_DutXtca99WrHnwBQuBfq%2Buzi4%3DP7NkKeV6eX9u6TziQzSg%40mail.gmail.com.

Reply via email to