THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
package org.apache.kafka.common.security.oauthbearer; /** * The <code>b64token</code> value as defined in * <a href="https://tools.ietf.org/html/rfc6750#section-2.1">RFC 6750 Section * 2.1</a> along with the token's specific scope and lifetime and principal * name. * <p> * A network request would be required to re-hydrate an opaque token, and that * could result in (for example) an {@code IOException}, but retrievers for * various attributes ({@link #scope()}, {@link #lifetime()}, etc.) declare no * exceptions. Therefore, if a network request is required for any of these * retriever methods, that request could be performed at construction time so * that the various attributes can be reliably provided thereafter. For example, * a constructor might declare * {@code throws IOException, OAuthBearerIllegalTokenException} in such a case; * it might raise {@code IOException} if one or more required networked * resources (e.g. to re-hydrate an opaque token) is unavailable, and it might * raise {@code OAuthBearerIllegalTokenException} if there is something * fundamentally wrong with the token (if it is malformed, for example). * Alternatively, the retrievers could throw unchecked exceptions. * * @see <a href="https://tools.ietf.org/html/rfc6749#section-1.4">RFC 6749 * Section 1.4</a> and * <a href="https://tools.ietf.org/html/rfc6750#section-2.1">RFC 6750 * Section 2.1</a> */ public interface OAuthBearerToken { /** * The <code>b64token</code> value as defined in * <a href="https://tools.ietf.org/html/rfc6750#section-2.1">RFC 6750 Section * 2.1</a> * * @return <code>b64token</code> value as defined in * <a href="https://tools.ietf.org/html/rfc6750#section-2.1">RFC 6750 * Section 2.1</a> */ String value(); /** * The token's scope of access, as per * <a href="https://tools.ietf.org/html/rfc6749#section-1.4">RFC 6749 Section * 1.4</a> * * @return the token's (always non-null but potentially empty) scope of access, * as per <a href="https://tools.ietf.org/html/rfc6749#section-1.4">RFC * 6749 Section 1.4</a>. Note that all values in the returned set will * be trimmed of preceding and trailing whitespace, and the result will * never contain the empty string. */ Set<String> scope(); /** * The token's lifetime, expressed as the number of milliseconds since the * epoch, as per <a href="https://tools.ietf.org/html/rfc6749#section-1.4">RFC * 6749 Section 1.4</a> * * @return the token'slifetime, expressed as the number of milliseconds since * the epoch, as per * <a href="https://tools.ietf.org/html/rfc6749#section-1.4">RFC 6749 * Section 1.4</a>. */ long lifetime(); /** * The name of the principal to which this credential applies * * @return the always non-null/non-empty principal name */ String principalName(); /** * When the credential became valid, in terms of the number of milliseconds * since the epoch, if known, otherwise null. An expiring credential may not * necessarily indicate when it was created -- just when it expires -- so we * need to support a null return value here. * * @return the time when the credential became valid, in terms of the number of * milliseconds since the epoch, if known, otherwise null */ Long startTimeMillis(); } |
...