org.eclipse.jgit.transport

## Class ChainingCredentialsProvider

- java.lang.Object
- - org.eclipse.jgit.transport.CredentialsProvider
  - - org.eclipse.jgit.transport.ChainingCredentialsProvider

    public class ChainingCredentialsProvider
    extends CredentialsProvider

A credentials provider chaining multiple credentials providers

Since:
  3.5

### Constructor Summary

Constructors
Constructor and Description
`ChainingCredentialsProvider(CredentialsProvider... providers)` Create a new chaining credential provider.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `get(URIish uri, CredentialItem... items)` Populates the credential items with the credentials provided by the first credential provider in the list which populates them with non-null values
`boolean` `isInteractive()` Check if the provider is interactive with the end-user.
`boolean` `supports(CredentialItem... items)` Check if the provider can supply the necessary `CredentialItem`s.

### Methods inherited from class org.eclipse.jgit.transport.CredentialsProvider

`get, getDefault, reset, setDefault`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ChainingCredentialsProvider

    public ChainingCredentialsProvider(CredentialsProvider... providers)

Create a new chaining credential provider. This provider tries to retrieve credentials from the chained credential providers in the order they are given here. If multiple providers support the requested items and have non-null credentials the first of them will be used.

Parameters:
  `providers` - credential providers asked for credentials in the order given here

### Method Detail

#### isInteractive

    public boolean isInteractive()

Description copied from class: `CredentialsProvider`
Check if the provider is interactive with the end-user. An interactive provider may try to open a dialog box, or prompt for input on the terminal, and will wait for a user response. A non-interactive provider will either populate CredentialItems, or fail.

Specified by:
  `isInteractive` in class `CredentialsProvider`
Returns:
  `true` if any of the credential providers in the list is interactive, otherwise `false`
See Also:
  `CredentialsProvider.isInteractive()`

#### supports

    public boolean supports(CredentialItem... items)

Description copied from class: `CredentialsProvider`
Check if the provider can supply the necessary `CredentialItem`s.

Specified by:
  `supports` in class `CredentialsProvider`
Parameters:
  `items` - the items the application requires to complete authentication.
Returns:
  `true` if any of the credential providers in the list supports the requested items, otherwise `false`
See Also:
  `CredentialsProvider.supports(org.eclipse.jgit.transport.CredentialItem[])`

#### get

    public boolean get(URIish uri,
                       CredentialItem... items)
                throws UnsupportedCredentialItem

Populates the credential items with the credentials provided by the first credential provider in the list which populates them with non-null values

Specified by:
  `get` in class `CredentialsProvider`
Parameters:
  `uri` - the URI of the remote resource that needs authentication.
  `items` - the items the application requires to complete authentication.
Returns:
  `true` if any of the credential providers in the list supports the requested items, otherwise `false`
Throws:
  `UnsupportedCredentialItem` - if one of the items supplied is not supported.
See Also:
  `CredentialsProvider.supports(org.eclipse.jgit.transport.CredentialItem[])`