Class JwtProvider
- java.lang.Object
-
- com.google.protobuf.AbstractMessageLite
-
- com.google.protobuf.AbstractMessage
-
- com.google.protobuf.GeneratedMessageV3
-
- io.envoyproxy.envoy.extensions.filters.http.jwt_authn.v3.JwtProvider
-
- All Implemented Interfaces:
com.google.protobuf.Message,com.google.protobuf.MessageLite,com.google.protobuf.MessageLiteOrBuilder,com.google.protobuf.MessageOrBuilder,JwtProviderOrBuilder,Serializable
public final class JwtProvider extends com.google.protobuf.GeneratedMessageV3 implements JwtProviderOrBuilder
Please see following for JWT authentication flow: * `JSON Web Token (JWT) <https://tools.ietf.org/html/rfc7519>`_ * `The OAuth 2.0 Authorization Framework <https://tools.ietf.org/html/rfc6749>`_ * `OpenID Connect <http://openid.net/connect>`_ A JwtProvider message specifies how a JSON Web Token (JWT) can be verified. It specifies: * issuer: the principal that issues the JWT. If specified, it has to match the ``iss`` field in JWT. * allowed audiences: the ones in the token have to be listed here. * how to fetch public key JWKS to verify the token signature. * how to extract JWT token in the request. * how to pass successfully verified token payload. Example: .. code-block:: yaml issuer: https://example.com audiences: - bookstore_android.apps.googleusercontent.com - bookstore_web.apps.googleusercontent.com remote_jwks: http_uri: uri: https://example.com/.well-known/jwks.json cluster: example_jwks_cluster timeout: 1s cache_duration: seconds: 300 [#next-free-field: 15]Protobuf typeenvoy.extensions.filters.http.jwt_authn.v3.JwtProvider- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classJwtProvider.BuilderPlease see following for JWT authentication flow: * `JSON Web Token (JWT) <https://tools.ietf.org/html/rfc7519>`_ * `The OAuth 2.0 Authorization Framework <https://tools.ietf.org/html/rfc6749>`_ * `OpenID Connect <http://openid.net/connect>`_ A JwtProvider message specifies how a JSON Web Token (JWT) can be verified.static classJwtProvider.JwksSourceSpecifierCase-
Nested classes/interfaces inherited from class com.google.protobuf.GeneratedMessageV3
com.google.protobuf.GeneratedMessageV3.BuilderParent, com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage,BuilderType extends com.google.protobuf.GeneratedMessageV3.ExtendableBuilder<MessageType,BuilderType>>, com.google.protobuf.GeneratedMessageV3.ExtendableMessage<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder<MessageType extends com.google.protobuf.GeneratedMessageV3.ExtendableMessage>, com.google.protobuf.GeneratedMessageV3.FieldAccessorTable, com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter
-
-
Field Summary
Fields Modifier and Type Field Description static intAUDIENCES_FIELD_NUMBERstatic intCLOCK_SKEW_SECONDS_FIELD_NUMBERstatic intFORWARD_FIELD_NUMBERstatic intFORWARD_PAYLOAD_HEADER_FIELD_NUMBERstatic intFROM_COOKIES_FIELD_NUMBERstatic intFROM_HEADERS_FIELD_NUMBERstatic intFROM_PARAMS_FIELD_NUMBERstatic intHEADER_IN_METADATA_FIELD_NUMBERstatic intISSUER_FIELD_NUMBERstatic intJWT_CACHE_CONFIG_FIELD_NUMBERstatic intLOCAL_JWKS_FIELD_NUMBERstatic intPAD_FORWARD_PAYLOAD_HEADER_FIELD_NUMBERstatic intPAYLOAD_IN_METADATA_FIELD_NUMBERstatic intREMOTE_JWKS_FIELD_NUMBER
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object obj)StringgetAudiences(int index)The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access.com.google.protobuf.ByteStringgetAudiencesBytes(int index)The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access.intgetAudiencesCount()The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access.com.google.protobuf.ProtocolStringListgetAudiencesList()The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access.intgetClockSkewSeconds()Specify the clock skew in seconds when verifying JWT time constraint, such as ``exp``, and ``nbf``.static JwtProvidergetDefaultInstance()JwtProvidergetDefaultInstanceForType()static com.google.protobuf.Descriptors.DescriptorgetDescriptor()booleangetForward()If false, the JWT is removed in the request after a success verification.StringgetForwardPayloadHeader()This field specifies the header name to forward a successfully verified JWT payload to the backend.com.google.protobuf.ByteStringgetForwardPayloadHeaderBytes()This field specifies the header name to forward a successfully verified JWT payload to the backend.StringgetFromCookies(int index)JWT is sent in a cookie.com.google.protobuf.ByteStringgetFromCookiesBytes(int index)JWT is sent in a cookie.intgetFromCookiesCount()JWT is sent in a cookie.com.google.protobuf.ProtocolStringListgetFromCookiesList()JWT is sent in a cookie.JwtHeadergetFromHeaders(int index)Two fields below define where to extract the JWT from an HTTP request.intgetFromHeadersCount()Two fields below define where to extract the JWT from an HTTP request.List<JwtHeader>getFromHeadersList()Two fields below define where to extract the JWT from an HTTP request.JwtHeaderOrBuildergetFromHeadersOrBuilder(int index)Two fields below define where to extract the JWT from an HTTP request.List<? extends JwtHeaderOrBuilder>getFromHeadersOrBuilderList()Two fields below define where to extract the JWT from an HTTP request.StringgetFromParams(int index)JWT is sent in a query parameter.com.google.protobuf.ByteStringgetFromParamsBytes(int index)JWT is sent in a query parameter.intgetFromParamsCount()JWT is sent in a query parameter.com.google.protobuf.ProtocolStringListgetFromParamsList()JWT is sent in a query parameter.StringgetHeaderInMetadata()If not empty, similar to :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>`, a successfully verified JWT header will be written to :ref:`Dynamic State <arch_overview_data_sharing_between_filters>` as an entry (``protobuf::Struct``) in ``envoy.filters.http.jwt_authn`` ``namespace`` with the value of this field as the key.com.google.protobuf.ByteStringgetHeaderInMetadataBytes()If not empty, similar to :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>`, a successfully verified JWT header will be written to :ref:`Dynamic State <arch_overview_data_sharing_between_filters>` as an entry (``protobuf::Struct``) in ``envoy.filters.http.jwt_authn`` ``namespace`` with the value of this field as the key.StringgetIssuer()Specify the `principal <https://tools.ietf.org/html/rfc7519#section-4.1.1>`_ that issued the JWT, usually a URL or an email address.com.google.protobuf.ByteStringgetIssuerBytes()Specify the `principal <https://tools.ietf.org/html/rfc7519#section-4.1.1>`_ that issued the JWT, usually a URL or an email address.JwtProvider.JwksSourceSpecifierCasegetJwksSourceSpecifierCase()JwtCacheConfiggetJwtCacheConfig()Enables JWT cache, its size is specified by ``jwt_cache_size``.JwtCacheConfigOrBuildergetJwtCacheConfigOrBuilder()Enables JWT cache, its size is specified by ``jwt_cache_size``.DataSourcegetLocalJwks()JWKS is in local data source.DataSourceOrBuildergetLocalJwksOrBuilder()JWKS is in local data source.booleangetPadForwardPayloadHeader()When :ref:`forward_payload_header <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.forward_payload_header>` is specified, the base64 encoded payload will be added to the headers.com.google.protobuf.Parser<JwtProvider>getParserForType()StringgetPayloadInMetadata()If non empty, successfully verified JWT payloads will be written to StreamInfo DynamicMetadata in the format as: ``namespace`` is the jwt_authn filter name as ````envoy.filters.http.jwt_authn```` The value is the ``protobuf::Struct``.com.google.protobuf.ByteStringgetPayloadInMetadataBytes()If non empty, successfully verified JWT payloads will be written to StreamInfo DynamicMetadata in the format as: ``namespace`` is the jwt_authn filter name as ````envoy.filters.http.jwt_authn```` The value is the ``protobuf::Struct``.RemoteJwksgetRemoteJwks()JWKS can be fetched from remote server via HTTP/HTTPS.RemoteJwksOrBuildergetRemoteJwksOrBuilder()JWKS can be fetched from remote server via HTTP/HTTPS.intgetSerializedSize()com.google.protobuf.UnknownFieldSetgetUnknownFields()inthashCode()booleanhasJwtCacheConfig()Enables JWT cache, its size is specified by ``jwt_cache_size``.booleanhasLocalJwks()JWKS is in local data source.booleanhasRemoteJwks()JWKS can be fetched from remote server via HTTP/HTTPS.protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTableinternalGetFieldAccessorTable()booleanisInitialized()static JwtProvider.BuildernewBuilder()static JwtProvider.BuildernewBuilder(JwtProvider prototype)JwtProvider.BuildernewBuilderForType()protected JwtProvider.BuildernewBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)protected ObjectnewInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)static JwtProviderparseDelimitedFrom(InputStream input)static JwtProviderparseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static JwtProviderparseFrom(byte[] data)static JwtProviderparseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static JwtProviderparseFrom(com.google.protobuf.ByteString data)static JwtProviderparseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static JwtProviderparseFrom(com.google.protobuf.CodedInputStream input)static JwtProviderparseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static JwtProviderparseFrom(InputStream input)static JwtProviderparseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static JwtProviderparseFrom(ByteBuffer data)static JwtProviderparseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)static com.google.protobuf.Parser<JwtProvider>parser()JwtProvider.BuildertoBuilder()voidwriteTo(com.google.protobuf.CodedOutputStream output)-
Methods inherited from class com.google.protobuf.GeneratedMessageV3
canUseUnsafe, computeStringSize, computeStringSizeNoTag, emptyBooleanList, emptyDoubleList, emptyFloatList, emptyIntList, emptyLongList, getAllFields, getDescriptorForType, getField, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, hasField, hasOneof, internalGetMapField, isStringEmpty, makeExtensionsImmutable, mergeFromAndMakeImmutableInternal, mutableCopy, mutableCopy, mutableCopy, mutableCopy, mutableCopy, newBooleanList, newBuilderForType, newDoubleList, newFloatList, newIntList, newLongList, parseDelimitedWithIOException, parseDelimitedWithIOException, parseUnknownField, parseUnknownFieldProto3, parseWithIOException, parseWithIOException, parseWithIOException, parseWithIOException, serializeBooleanMapTo, serializeIntegerMapTo, serializeLongMapTo, serializeStringMapTo, writeReplace, writeString, writeStringNoTag
-
Methods inherited from class com.google.protobuf.AbstractMessage
findInitializationErrors, getInitializationErrorString, hashBoolean, hashEnum, hashEnumList, hashFields, hashLong, toString
-
Methods inherited from class com.google.protobuf.AbstractMessageLite
addAll, addAll, checkByteStringIsUtf8, toByteArray, toByteString, writeDelimitedTo, writeTo
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
ISSUER_FIELD_NUMBER
public static final int ISSUER_FIELD_NUMBER
- See Also:
- Constant Field Values
-
AUDIENCES_FIELD_NUMBER
public static final int AUDIENCES_FIELD_NUMBER
- See Also:
- Constant Field Values
-
REMOTE_JWKS_FIELD_NUMBER
public static final int REMOTE_JWKS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
LOCAL_JWKS_FIELD_NUMBER
public static final int LOCAL_JWKS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
FORWARD_FIELD_NUMBER
public static final int FORWARD_FIELD_NUMBER
- See Also:
- Constant Field Values
-
FROM_HEADERS_FIELD_NUMBER
public static final int FROM_HEADERS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
FROM_PARAMS_FIELD_NUMBER
public static final int FROM_PARAMS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
FROM_COOKIES_FIELD_NUMBER
public static final int FROM_COOKIES_FIELD_NUMBER
- See Also:
- Constant Field Values
-
FORWARD_PAYLOAD_HEADER_FIELD_NUMBER
public static final int FORWARD_PAYLOAD_HEADER_FIELD_NUMBER
- See Also:
- Constant Field Values
-
PAD_FORWARD_PAYLOAD_HEADER_FIELD_NUMBER
public static final int PAD_FORWARD_PAYLOAD_HEADER_FIELD_NUMBER
- See Also:
- Constant Field Values
-
PAYLOAD_IN_METADATA_FIELD_NUMBER
public static final int PAYLOAD_IN_METADATA_FIELD_NUMBER
- See Also:
- Constant Field Values
-
HEADER_IN_METADATA_FIELD_NUMBER
public static final int HEADER_IN_METADATA_FIELD_NUMBER
- See Also:
- Constant Field Values
-
CLOCK_SKEW_SECONDS_FIELD_NUMBER
public static final int CLOCK_SKEW_SECONDS_FIELD_NUMBER
- See Also:
- Constant Field Values
-
JWT_CACHE_CONFIG_FIELD_NUMBER
public static final int JWT_CACHE_CONFIG_FIELD_NUMBER
- See Also:
- Constant Field Values
-
-
Method Detail
-
newInstance
protected Object newInstance(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
- Overrides:
newInstancein classcom.google.protobuf.GeneratedMessageV3
-
getUnknownFields
public final com.google.protobuf.UnknownFieldSet getUnknownFields()
- Specified by:
getUnknownFieldsin interfacecom.google.protobuf.MessageOrBuilder- Overrides:
getUnknownFieldsin classcom.google.protobuf.GeneratedMessageV3
-
getDescriptor
public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
-
internalGetFieldAccessorTable
protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
- Specified by:
internalGetFieldAccessorTablein classcom.google.protobuf.GeneratedMessageV3
-
getJwksSourceSpecifierCase
public JwtProvider.JwksSourceSpecifierCase getJwksSourceSpecifierCase()
- Specified by:
getJwksSourceSpecifierCasein interfaceJwtProviderOrBuilder
-
getIssuer
public String getIssuer()
Specify the `principal <https://tools.ietf.org/html/rfc7519#section-4.1.1>`_ that issued the JWT, usually a URL or an email address. It is optional. If specified, it has to match the ``iss`` field in JWT, otherwise the JWT ``iss`` field is not checked. Note: ``JwtRequirement`` :ref:`allow_missing <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtRequirement.allow_missing>` and :ref:`allow_missing_or_failed <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtRequirement.allow_missing_or_failed>` are implemented differently than other ``JwtRequirements``. Hence the usage of this field is different as follows if ``allow_missing`` or ``allow_missing_or_failed`` is used: * If a JWT has ``iss`` field, it needs to be specified by this field in one of ``JwtProviders``. * If a JWT doesn't have ``iss`` field, one of ``JwtProviders`` should fill this field empty. * Multiple ``JwtProviders`` should not have same value in this field. Example: https://securetoken.google.com Example: 1234567-compute@developer.gserviceaccount.com
string issuer = 1;- Specified by:
getIssuerin interfaceJwtProviderOrBuilder- Returns:
- The issuer.
-
getIssuerBytes
public com.google.protobuf.ByteString getIssuerBytes()
Specify the `principal <https://tools.ietf.org/html/rfc7519#section-4.1.1>`_ that issued the JWT, usually a URL or an email address. It is optional. If specified, it has to match the ``iss`` field in JWT, otherwise the JWT ``iss`` field is not checked. Note: ``JwtRequirement`` :ref:`allow_missing <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtRequirement.allow_missing>` and :ref:`allow_missing_or_failed <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtRequirement.allow_missing_or_failed>` are implemented differently than other ``JwtRequirements``. Hence the usage of this field is different as follows if ``allow_missing`` or ``allow_missing_or_failed`` is used: * If a JWT has ``iss`` field, it needs to be specified by this field in one of ``JwtProviders``. * If a JWT doesn't have ``iss`` field, one of ``JwtProviders`` should fill this field empty. * Multiple ``JwtProviders`` should not have same value in this field. Example: https://securetoken.google.com Example: 1234567-compute@developer.gserviceaccount.com
string issuer = 1;- Specified by:
getIssuerBytesin interfaceJwtProviderOrBuilder- Returns:
- The bytes for issuer.
-
getAudiencesList
public com.google.protobuf.ProtocolStringList getAudiencesList()
The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access. A JWT containing any of these audiences will be accepted. If not specified, will not check audiences in the token. Example: .. code-block:: yaml audiences: - bookstore_android.apps.googleusercontent.com - bookstore_web.apps.googleusercontent.comrepeated string audiences = 2;- Specified by:
getAudiencesListin interfaceJwtProviderOrBuilder- Returns:
- A list containing the audiences.
-
getAudiencesCount
public int getAudiencesCount()
The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access. A JWT containing any of these audiences will be accepted. If not specified, will not check audiences in the token. Example: .. code-block:: yaml audiences: - bookstore_android.apps.googleusercontent.com - bookstore_web.apps.googleusercontent.comrepeated string audiences = 2;- Specified by:
getAudiencesCountin interfaceJwtProviderOrBuilder- Returns:
- The count of audiences.
-
getAudiences
public String getAudiences(int index)
The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access. A JWT containing any of these audiences will be accepted. If not specified, will not check audiences in the token. Example: .. code-block:: yaml audiences: - bookstore_android.apps.googleusercontent.com - bookstore_web.apps.googleusercontent.comrepeated string audiences = 2;- Specified by:
getAudiencesin interfaceJwtProviderOrBuilder- Parameters:
index- The index of the element to return.- Returns:
- The audiences at the given index.
-
getAudiencesBytes
public com.google.protobuf.ByteString getAudiencesBytes(int index)
The list of JWT `audiences <https://tools.ietf.org/html/rfc7519#section-4.1.3>`_ are allowed to access. A JWT containing any of these audiences will be accepted. If not specified, will not check audiences in the token. Example: .. code-block:: yaml audiences: - bookstore_android.apps.googleusercontent.com - bookstore_web.apps.googleusercontent.comrepeated string audiences = 2;- Specified by:
getAudiencesBytesin interfaceJwtProviderOrBuilder- Parameters:
index- The index of the value to return.- Returns:
- The bytes of the audiences at the given index.
-
hasRemoteJwks
public boolean hasRemoteJwks()
JWKS can be fetched from remote server via HTTP/HTTPS. This field specifies the remote HTTP URI and how the fetched JWKS should be cached. Example: .. code-block:: yaml remote_jwks: http_uri: uri: https://www.googleapis.com/oauth2/v1/certs cluster: jwt.www.googleapis.com|443 timeout: 1s cache_duration: seconds: 300.envoy.extensions.filters.http.jwt_authn.v3.RemoteJwks remote_jwks = 3;- Specified by:
hasRemoteJwksin interfaceJwtProviderOrBuilder- Returns:
- Whether the remoteJwks field is set.
-
getRemoteJwks
public RemoteJwks getRemoteJwks()
JWKS can be fetched from remote server via HTTP/HTTPS. This field specifies the remote HTTP URI and how the fetched JWKS should be cached. Example: .. code-block:: yaml remote_jwks: http_uri: uri: https://www.googleapis.com/oauth2/v1/certs cluster: jwt.www.googleapis.com|443 timeout: 1s cache_duration: seconds: 300.envoy.extensions.filters.http.jwt_authn.v3.RemoteJwks remote_jwks = 3;- Specified by:
getRemoteJwksin interfaceJwtProviderOrBuilder- Returns:
- The remoteJwks.
-
getRemoteJwksOrBuilder
public RemoteJwksOrBuilder getRemoteJwksOrBuilder()
JWKS can be fetched from remote server via HTTP/HTTPS. This field specifies the remote HTTP URI and how the fetched JWKS should be cached. Example: .. code-block:: yaml remote_jwks: http_uri: uri: https://www.googleapis.com/oauth2/v1/certs cluster: jwt.www.googleapis.com|443 timeout: 1s cache_duration: seconds: 300.envoy.extensions.filters.http.jwt_authn.v3.RemoteJwks remote_jwks = 3;- Specified by:
getRemoteJwksOrBuilderin interfaceJwtProviderOrBuilder
-
hasLocalJwks
public boolean hasLocalJwks()
JWKS is in local data source. It could be either in a local file or embedded in the inline_string. Example: local file .. code-block:: yaml local_jwks: filename: /etc/envoy/jwks/jwks1.txt Example: inline_string .. code-block:: yaml local_jwks: inline_string: ACADADADADA.envoy.config.core.v3.DataSource local_jwks = 4;- Specified by:
hasLocalJwksin interfaceJwtProviderOrBuilder- Returns:
- Whether the localJwks field is set.
-
getLocalJwks
public DataSource getLocalJwks()
JWKS is in local data source. It could be either in a local file or embedded in the inline_string. Example: local file .. code-block:: yaml local_jwks: filename: /etc/envoy/jwks/jwks1.txt Example: inline_string .. code-block:: yaml local_jwks: inline_string: ACADADADADA.envoy.config.core.v3.DataSource local_jwks = 4;- Specified by:
getLocalJwksin interfaceJwtProviderOrBuilder- Returns:
- The localJwks.
-
getLocalJwksOrBuilder
public DataSourceOrBuilder getLocalJwksOrBuilder()
JWKS is in local data source. It could be either in a local file or embedded in the inline_string. Example: local file .. code-block:: yaml local_jwks: filename: /etc/envoy/jwks/jwks1.txt Example: inline_string .. code-block:: yaml local_jwks: inline_string: ACADADADADA.envoy.config.core.v3.DataSource local_jwks = 4;- Specified by:
getLocalJwksOrBuilderin interfaceJwtProviderOrBuilder
-
getForward
public boolean getForward()
If false, the JWT is removed in the request after a success verification. If true, the JWT is not removed in the request. Default value is false. caveat: only works for from_header & has no effect for JWTs extracted through from_params & from_cookies.
bool forward = 5;- Specified by:
getForwardin interfaceJwtProviderOrBuilder- Returns:
- The forward.
-
getFromHeadersList
public List<JwtHeader> getFromHeadersList()
Two fields below define where to extract the JWT from an HTTP request. If no explicit location is specified, the following default locations are tried in order: 1. The Authorization header using the `Bearer schema <https://tools.ietf.org/html/rfc6750#section-2.1>`_. Example:: Authorization: Bearer <token>. 2. `access_token <https://tools.ietf.org/html/rfc6750#section-2.3>`_ query parameter. Multiple JWTs can be verified for a request. Each JWT has to be extracted from the locations its provider specified or from the default locations. Specify the HTTP headers to extract JWT token. For examples, following config: .. code-block:: yaml from_headers: - name: x-goog-iap-jwt-assertion can be used to extract token from header:: ``x-goog-iap-jwt-assertion: <JWT>``.repeated .envoy.extensions.filters.http.jwt_authn.v3.JwtHeader from_headers = 6;- Specified by:
getFromHeadersListin interfaceJwtProviderOrBuilder
-
getFromHeadersOrBuilderList
public List<? extends JwtHeaderOrBuilder> getFromHeadersOrBuilderList()
Two fields below define where to extract the JWT from an HTTP request. If no explicit location is specified, the following default locations are tried in order: 1. The Authorization header using the `Bearer schema <https://tools.ietf.org/html/rfc6750#section-2.1>`_. Example:: Authorization: Bearer <token>. 2. `access_token <https://tools.ietf.org/html/rfc6750#section-2.3>`_ query parameter. Multiple JWTs can be verified for a request. Each JWT has to be extracted from the locations its provider specified or from the default locations. Specify the HTTP headers to extract JWT token. For examples, following config: .. code-block:: yaml from_headers: - name: x-goog-iap-jwt-assertion can be used to extract token from header:: ``x-goog-iap-jwt-assertion: <JWT>``.repeated .envoy.extensions.filters.http.jwt_authn.v3.JwtHeader from_headers = 6;- Specified by:
getFromHeadersOrBuilderListin interfaceJwtProviderOrBuilder
-
getFromHeadersCount
public int getFromHeadersCount()
Two fields below define where to extract the JWT from an HTTP request. If no explicit location is specified, the following default locations are tried in order: 1. The Authorization header using the `Bearer schema <https://tools.ietf.org/html/rfc6750#section-2.1>`_. Example:: Authorization: Bearer <token>. 2. `access_token <https://tools.ietf.org/html/rfc6750#section-2.3>`_ query parameter. Multiple JWTs can be verified for a request. Each JWT has to be extracted from the locations its provider specified or from the default locations. Specify the HTTP headers to extract JWT token. For examples, following config: .. code-block:: yaml from_headers: - name: x-goog-iap-jwt-assertion can be used to extract token from header:: ``x-goog-iap-jwt-assertion: <JWT>``.repeated .envoy.extensions.filters.http.jwt_authn.v3.JwtHeader from_headers = 6;- Specified by:
getFromHeadersCountin interfaceJwtProviderOrBuilder
-
getFromHeaders
public JwtHeader getFromHeaders(int index)
Two fields below define where to extract the JWT from an HTTP request. If no explicit location is specified, the following default locations are tried in order: 1. The Authorization header using the `Bearer schema <https://tools.ietf.org/html/rfc6750#section-2.1>`_. Example:: Authorization: Bearer <token>. 2. `access_token <https://tools.ietf.org/html/rfc6750#section-2.3>`_ query parameter. Multiple JWTs can be verified for a request. Each JWT has to be extracted from the locations its provider specified or from the default locations. Specify the HTTP headers to extract JWT token. For examples, following config: .. code-block:: yaml from_headers: - name: x-goog-iap-jwt-assertion can be used to extract token from header:: ``x-goog-iap-jwt-assertion: <JWT>``.repeated .envoy.extensions.filters.http.jwt_authn.v3.JwtHeader from_headers = 6;- Specified by:
getFromHeadersin interfaceJwtProviderOrBuilder
-
getFromHeadersOrBuilder
public JwtHeaderOrBuilder getFromHeadersOrBuilder(int index)
Two fields below define where to extract the JWT from an HTTP request. If no explicit location is specified, the following default locations are tried in order: 1. The Authorization header using the `Bearer schema <https://tools.ietf.org/html/rfc6750#section-2.1>`_. Example:: Authorization: Bearer <token>. 2. `access_token <https://tools.ietf.org/html/rfc6750#section-2.3>`_ query parameter. Multiple JWTs can be verified for a request. Each JWT has to be extracted from the locations its provider specified or from the default locations. Specify the HTTP headers to extract JWT token. For examples, following config: .. code-block:: yaml from_headers: - name: x-goog-iap-jwt-assertion can be used to extract token from header:: ``x-goog-iap-jwt-assertion: <JWT>``.repeated .envoy.extensions.filters.http.jwt_authn.v3.JwtHeader from_headers = 6;- Specified by:
getFromHeadersOrBuilderin interfaceJwtProviderOrBuilder
-
getFromParamsList
public com.google.protobuf.ProtocolStringList getFromParamsList()
JWT is sent in a query parameter. ``jwt_params`` represents the query parameter names. For example, if config is: .. code-block:: yaml from_params: - jwt_token The JWT format in query parameter is:: /path?jwt_token=<JWT>repeated string from_params = 7;- Specified by:
getFromParamsListin interfaceJwtProviderOrBuilder- Returns:
- A list containing the fromParams.
-
getFromParamsCount
public int getFromParamsCount()
JWT is sent in a query parameter. ``jwt_params`` represents the query parameter names. For example, if config is: .. code-block:: yaml from_params: - jwt_token The JWT format in query parameter is:: /path?jwt_token=<JWT>repeated string from_params = 7;- Specified by:
getFromParamsCountin interfaceJwtProviderOrBuilder- Returns:
- The count of fromParams.
-
getFromParams
public String getFromParams(int index)
JWT is sent in a query parameter. ``jwt_params`` represents the query parameter names. For example, if config is: .. code-block:: yaml from_params: - jwt_token The JWT format in query parameter is:: /path?jwt_token=<JWT>repeated string from_params = 7;- Specified by:
getFromParamsin interfaceJwtProviderOrBuilder- Parameters:
index- The index of the element to return.- Returns:
- The fromParams at the given index.
-
getFromParamsBytes
public com.google.protobuf.ByteString getFromParamsBytes(int index)
JWT is sent in a query parameter. ``jwt_params`` represents the query parameter names. For example, if config is: .. code-block:: yaml from_params: - jwt_token The JWT format in query parameter is:: /path?jwt_token=<JWT>repeated string from_params = 7;- Specified by:
getFromParamsBytesin interfaceJwtProviderOrBuilder- Parameters:
index- The index of the value to return.- Returns:
- The bytes of the fromParams at the given index.
-
getFromCookiesList
public com.google.protobuf.ProtocolStringList getFromCookiesList()
JWT is sent in a cookie. ``from_cookies`` represents the cookie names to extract from. For example, if config is: .. code-block:: yaml from_cookies: - auth-token Then JWT will be extracted from ``auth-token`` cookie in the request.
repeated string from_cookies = 13;- Specified by:
getFromCookiesListin interfaceJwtProviderOrBuilder- Returns:
- A list containing the fromCookies.
-
getFromCookiesCount
public int getFromCookiesCount()
JWT is sent in a cookie. ``from_cookies`` represents the cookie names to extract from. For example, if config is: .. code-block:: yaml from_cookies: - auth-token Then JWT will be extracted from ``auth-token`` cookie in the request.
repeated string from_cookies = 13;- Specified by:
getFromCookiesCountin interfaceJwtProviderOrBuilder- Returns:
- The count of fromCookies.
-
getFromCookies
public String getFromCookies(int index)
JWT is sent in a cookie. ``from_cookies`` represents the cookie names to extract from. For example, if config is: .. code-block:: yaml from_cookies: - auth-token Then JWT will be extracted from ``auth-token`` cookie in the request.
repeated string from_cookies = 13;- Specified by:
getFromCookiesin interfaceJwtProviderOrBuilder- Parameters:
index- The index of the element to return.- Returns:
- The fromCookies at the given index.
-
getFromCookiesBytes
public com.google.protobuf.ByteString getFromCookiesBytes(int index)
JWT is sent in a cookie. ``from_cookies`` represents the cookie names to extract from. For example, if config is: .. code-block:: yaml from_cookies: - auth-token Then JWT will be extracted from ``auth-token`` cookie in the request.
repeated string from_cookies = 13;- Specified by:
getFromCookiesBytesin interfaceJwtProviderOrBuilder- Parameters:
index- The index of the value to return.- Returns:
- The bytes of the fromCookies at the given index.
-
getForwardPayloadHeader
public String getForwardPayloadHeader()
This field specifies the header name to forward a successfully verified JWT payload to the backend. The forwarded data is:: base64url_encoded(jwt_payload_in_JSON) If it is not specified, the payload will not be forwarded.string forward_payload_header = 8 [(.validate.rules) = { ... }- Specified by:
getForwardPayloadHeaderin interfaceJwtProviderOrBuilder- Returns:
- The forwardPayloadHeader.
-
getForwardPayloadHeaderBytes
public com.google.protobuf.ByteString getForwardPayloadHeaderBytes()
This field specifies the header name to forward a successfully verified JWT payload to the backend. The forwarded data is:: base64url_encoded(jwt_payload_in_JSON) If it is not specified, the payload will not be forwarded.string forward_payload_header = 8 [(.validate.rules) = { ... }- Specified by:
getForwardPayloadHeaderBytesin interfaceJwtProviderOrBuilder- Returns:
- The bytes for forwardPayloadHeader.
-
getPadForwardPayloadHeader
public boolean getPadForwardPayloadHeader()
When :ref:`forward_payload_header <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.forward_payload_header>` is specified, the base64 encoded payload will be added to the headers. Normally JWT based64 encode doesn't add padding. If this field is true, the header will be padded. This field is only relevant if :ref:`forward_payload_header <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.forward_payload_header>` is specified.
bool pad_forward_payload_header = 11;- Specified by:
getPadForwardPayloadHeaderin interfaceJwtProviderOrBuilder- Returns:
- The padForwardPayloadHeader.
-
getPayloadInMetadata
public String getPayloadInMetadata()
If non empty, successfully verified JWT payloads will be written to StreamInfo DynamicMetadata in the format as: ``namespace`` is the jwt_authn filter name as ````envoy.filters.http.jwt_authn```` The value is the ``protobuf::Struct``. The value of this field will be the key for its ``fields`` and the value is the ``protobuf::Struct`` converted from JWT JSON payload. For example, if payload_in_metadata is ``my_payload``: .. code-block:: yaml envoy.filters.http.jwt_authn: my_payload: iss: https://example.com sub: test@example.com aud: https://example.com exp: 1501281058string payload_in_metadata = 9;- Specified by:
getPayloadInMetadatain interfaceJwtProviderOrBuilder- Returns:
- The payloadInMetadata.
-
getPayloadInMetadataBytes
public com.google.protobuf.ByteString getPayloadInMetadataBytes()
If non empty, successfully verified JWT payloads will be written to StreamInfo DynamicMetadata in the format as: ``namespace`` is the jwt_authn filter name as ````envoy.filters.http.jwt_authn```` The value is the ``protobuf::Struct``. The value of this field will be the key for its ``fields`` and the value is the ``protobuf::Struct`` converted from JWT JSON payload. For example, if payload_in_metadata is ``my_payload``: .. code-block:: yaml envoy.filters.http.jwt_authn: my_payload: iss: https://example.com sub: test@example.com aud: https://example.com exp: 1501281058string payload_in_metadata = 9;- Specified by:
getPayloadInMetadataBytesin interfaceJwtProviderOrBuilder- Returns:
- The bytes for payloadInMetadata.
-
getHeaderInMetadata
public String getHeaderInMetadata()
If not empty, similar to :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>`, a successfully verified JWT header will be written to :ref:`Dynamic State <arch_overview_data_sharing_between_filters>` as an entry (``protobuf::Struct``) in ``envoy.filters.http.jwt_authn`` ``namespace`` with the value of this field as the key. For example, if ``header_in_metadata`` is ``my_header``: .. code-block:: yaml envoy.filters.http.jwt_authn: my_header: alg: JWT kid: EF71iSaosbC5C4tC6Syq1Gm647M alg: PS256 When the metadata has ``envoy.filters.http.jwt_authn`` entry already (for example if :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` is not empty), it will be inserted as a new entry in the same ``namespace`` as shown below: .. code-block:: yaml envoy.filters.http.jwt_authn: my_payload: iss: https://example.com sub: test@example.com aud: https://example.com exp: 1501281058 my_header: alg: JWT kid: EF71iSaosbC5C4tC6Syq1Gm647M alg: PS256 .. warning:: Using the same key name for :ref:`header_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` and :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` is not suggested due to potential override of existing entry, while it is not enforced during config validation.string header_in_metadata = 14;- Specified by:
getHeaderInMetadatain interfaceJwtProviderOrBuilder- Returns:
- The headerInMetadata.
-
getHeaderInMetadataBytes
public com.google.protobuf.ByteString getHeaderInMetadataBytes()
If not empty, similar to :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>`, a successfully verified JWT header will be written to :ref:`Dynamic State <arch_overview_data_sharing_between_filters>` as an entry (``protobuf::Struct``) in ``envoy.filters.http.jwt_authn`` ``namespace`` with the value of this field as the key. For example, if ``header_in_metadata`` is ``my_header``: .. code-block:: yaml envoy.filters.http.jwt_authn: my_header: alg: JWT kid: EF71iSaosbC5C4tC6Syq1Gm647M alg: PS256 When the metadata has ``envoy.filters.http.jwt_authn`` entry already (for example if :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` is not empty), it will be inserted as a new entry in the same ``namespace`` as shown below: .. code-block:: yaml envoy.filters.http.jwt_authn: my_payload: iss: https://example.com sub: test@example.com aud: https://example.com exp: 1501281058 my_header: alg: JWT kid: EF71iSaosbC5C4tC6Syq1Gm647M alg: PS256 .. warning:: Using the same key name for :ref:`header_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` and :ref:`payload_in_metadata <envoy_v3_api_field_extensions.filters.http.jwt_authn.v3.JwtProvider.payload_in_metadata>` is not suggested due to potential override of existing entry, while it is not enforced during config validation.string header_in_metadata = 14;- Specified by:
getHeaderInMetadataBytesin interfaceJwtProviderOrBuilder- Returns:
- The bytes for headerInMetadata.
-
getClockSkewSeconds
public int getClockSkewSeconds()
Specify the clock skew in seconds when verifying JWT time constraint, such as ``exp``, and ``nbf``. If not specified, default is 60 seconds.
uint32 clock_skew_seconds = 10;- Specified by:
getClockSkewSecondsin interfaceJwtProviderOrBuilder- Returns:
- The clockSkewSeconds.
-
hasJwtCacheConfig
public boolean hasJwtCacheConfig()
Enables JWT cache, its size is specified by ``jwt_cache_size``. Only valid JWT tokens are cached.
.envoy.extensions.filters.http.jwt_authn.v3.JwtCacheConfig jwt_cache_config = 12;- Specified by:
hasJwtCacheConfigin interfaceJwtProviderOrBuilder- Returns:
- Whether the jwtCacheConfig field is set.
-
getJwtCacheConfig
public JwtCacheConfig getJwtCacheConfig()
Enables JWT cache, its size is specified by ``jwt_cache_size``. Only valid JWT tokens are cached.
.envoy.extensions.filters.http.jwt_authn.v3.JwtCacheConfig jwt_cache_config = 12;- Specified by:
getJwtCacheConfigin interfaceJwtProviderOrBuilder- Returns:
- The jwtCacheConfig.
-
getJwtCacheConfigOrBuilder
public JwtCacheConfigOrBuilder getJwtCacheConfigOrBuilder()
Enables JWT cache, its size is specified by ``jwt_cache_size``. Only valid JWT tokens are cached.
.envoy.extensions.filters.http.jwt_authn.v3.JwtCacheConfig jwt_cache_config = 12;- Specified by:
getJwtCacheConfigOrBuilderin interfaceJwtProviderOrBuilder
-
isInitialized
public final boolean isInitialized()
- Specified by:
isInitializedin interfacecom.google.protobuf.MessageLiteOrBuilder- Overrides:
isInitializedin classcom.google.protobuf.GeneratedMessageV3
-
writeTo
public void writeTo(com.google.protobuf.CodedOutputStream output) throws IOException- Specified by:
writeToin interfacecom.google.protobuf.MessageLite- Overrides:
writeToin classcom.google.protobuf.GeneratedMessageV3- Throws:
IOException
-
getSerializedSize
public int getSerializedSize()
- Specified by:
getSerializedSizein interfacecom.google.protobuf.MessageLite- Overrides:
getSerializedSizein classcom.google.protobuf.GeneratedMessageV3
-
equals
public boolean equals(Object obj)
- Specified by:
equalsin interfacecom.google.protobuf.Message- Overrides:
equalsin classcom.google.protobuf.AbstractMessage
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacecom.google.protobuf.Message- Overrides:
hashCodein classcom.google.protobuf.AbstractMessage
-
parseFrom
public static JwtProvider parseFrom(ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static JwtProvider parseFrom(ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static JwtProvider parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static JwtProvider parseFrom(com.google.protobuf.ByteString data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static JwtProvider parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static JwtProvider parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException
- Throws:
com.google.protobuf.InvalidProtocolBufferException
-
parseFrom
public static JwtProvider parseFrom(InputStream input) throws IOException
- Throws:
IOException
-
parseFrom
public static JwtProvider parseFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
parseDelimitedFrom
public static JwtProvider parseDelimitedFrom(InputStream input) throws IOException
- Throws:
IOException
-
parseDelimitedFrom
public static JwtProvider parseDelimitedFrom(InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
parseFrom
public static JwtProvider parseFrom(com.google.protobuf.CodedInputStream input) throws IOException
- Throws:
IOException
-
parseFrom
public static JwtProvider parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws IOException
- Throws:
IOException
-
newBuilderForType
public JwtProvider.Builder newBuilderForType()
- Specified by:
newBuilderForTypein interfacecom.google.protobuf.Message- Specified by:
newBuilderForTypein interfacecom.google.protobuf.MessageLite
-
newBuilder
public static JwtProvider.Builder newBuilder()
-
newBuilder
public static JwtProvider.Builder newBuilder(JwtProvider prototype)
-
toBuilder
public JwtProvider.Builder toBuilder()
- Specified by:
toBuilderin interfacecom.google.protobuf.Message- Specified by:
toBuilderin interfacecom.google.protobuf.MessageLite
-
newBuilderForType
protected JwtProvider.Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent)
- Specified by:
newBuilderForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstance
public static JwtProvider getDefaultInstance()
-
parser
public static com.google.protobuf.Parser<JwtProvider> parser()
-
getParserForType
public com.google.protobuf.Parser<JwtProvider> getParserForType()
- Specified by:
getParserForTypein interfacecom.google.protobuf.Message- Specified by:
getParserForTypein interfacecom.google.protobuf.MessageLite- Overrides:
getParserForTypein classcom.google.protobuf.GeneratedMessageV3
-
getDefaultInstanceForType
public JwtProvider getDefaultInstanceForType()
- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageLiteOrBuilder- Specified by:
getDefaultInstanceForTypein interfacecom.google.protobuf.MessageOrBuilder
-
-