Package io.quarkus.oidc.runtime
Class OidcUtils
- java.lang.Object
-
- io.quarkus.oidc.runtime.OidcUtils
-
public final class OidcUtils extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static String
CONFIG_METADATA_ATTRIBUTE
static String
DEFAULT_TENANT_ID
(package private) static BlockingTaskRunner<Void>
deleteTokensRequestContext
static String
INTROSPECTION_ATTRIBUTE
static String
POST_LOGOUT_COOKIE_NAME
static String
QUARKUS_IDENTITY_EXPIRE_TIME
static String
SESSION_COOKIE_NAME
static String
STATE_COOKIE_NAME
static String
TENANT_ID_ATTRIBUTE
static String
USER_INFO_ATTRIBUTE
(package private) static io.smallrye.mutiny.Uni<Void>
VOID_UNI
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description (package private) static void
addTokenScopesAsPermissions(QuarkusSecurityIdentity.Builder builder, Collection<String> scopes)
static io.vertx.core.json.JsonObject
decodeJwtContent(String jwt)
static String
decodeJwtContentAsString(String jwt)
static io.vertx.core.json.JsonObject
decodeJwtHeaders(String jwt)
static String
decodeJwtHeadersAsString(String jwt)
static io.vertx.core.json.JsonObject
decryptJson(String jweString, Key key)
static String
decryptString(String jweString, Key key)
static String
decryptString(String jweString, Key key, io.smallrye.jwt.algorithm.KeyEncryptionAlgorithm algorithm)
static String
encryptJson(io.vertx.core.json.JsonObject json, SecretKey key)
static String
encryptString(String jweString, SecretKey key)
static List<String>
findRoles(String clientId, OidcTenantConfig.Roles rolesConfig, io.vertx.core.json.JsonObject json)
static io.smallrye.mutiny.Uni<io.vertx.core.MultiMap>
getFormUrlEncodedData(io.vertx.ext.web.RoutingContext context)
static String
getJwtContentPart(String jwt)
static byte[]
getSha256Digest(byte[] value)
static boolean
isEncryptedToken(String token)
static boolean
isFormUrlEncodedRequest(io.vertx.ext.web.RoutingContext context)
static boolean
isOpaqueToken(String token)
static boolean
isServiceApp(OidcTenantConfig oidcConfig)
static boolean
isWebApp(OidcTenantConfig oidcConfig)
(package private) static OidcTenantConfig
mergeTenantConfig(OidcTenantConfig tenant, OidcTenantConfig provider)
Merge the current tenant and well-known OpenId Connect provider configurations.(package private) static String
removeCookie(io.vertx.ext.web.RoutingContext context, OidcTenantConfig oidcConfig, String cookieName)
(package private) static void
removeCookie(io.vertx.ext.web.RoutingContext context, io.vertx.core.http.impl.ServerCookie cookie, OidcTenantConfig oidcConfig)
(package private) static io.smallrye.mutiny.Uni<Void>
removeSessionCookie(io.vertx.ext.web.RoutingContext context, OidcTenantConfig oidcConfig, String cookieName, TokenStateManager tokenStateManager)
(package private) static OidcTenantConfig
resolveProviderConfig(OidcTenantConfig oidcTenantConfig)
static void
setBlockingApiAttribute(QuarkusSecurityIdentity.Builder builder, io.vertx.ext.web.RoutingContext vertxContext)
(package private) static void
setCookiePath(io.vertx.ext.web.RoutingContext context, OidcTenantConfig.Authentication auth, io.vertx.core.http.impl.ServerCookie cookie)
static void
setRoutingContextAttribute(QuarkusSecurityIdentity.Builder builder, io.vertx.ext.web.RoutingContext routingContext)
static void
setSecurityIdentityConfigMetadata(QuarkusSecurityIdentity.Builder builder, TenantConfigContext resolvedContext)
static void
setSecurityIdentityIntrospection(QuarkusSecurityIdentity.Builder builder, TokenIntrospection introspectionResult)
(package private) static void
setSecurityIdentityPermissions(QuarkusSecurityIdentity.Builder builder, OidcTenantConfig config, io.vertx.core.json.JsonObject permissionsJson)
static void
setSecurityIdentityRoles(QuarkusSecurityIdentity.Builder builder, OidcTenantConfig config, io.vertx.core.json.JsonObject rolesJson)
static void
setSecurityIdentityUserInfo(QuarkusSecurityIdentity.Builder builder, UserInfo userInfo)
static void
setTenantIdAttribute(QuarkusSecurityIdentity.Builder builder, OidcTenantConfig config)
(package private) static Permission[]
transformScopesToPermissions(Collection<String> scopes)
(package private) static QuarkusSecurityIdentity
validateAndCreateIdentity(Map<String,Object> requestData, io.quarkus.security.credential.TokenCredential credential, TenantConfigContext resolvedContext, io.vertx.core.json.JsonObject tokenJson, io.vertx.core.json.JsonObject rolesJson, UserInfo userInfo, TokenIntrospection introspectionResult, io.quarkus.security.identity.request.TokenAuthenticationRequest request)
static void
validatePrimaryJwtTokenType(OidcTenantConfig.Token tokenConfig, io.vertx.core.json.JsonObject tokenJson)
-
-
-
Field Detail
-
CONFIG_METADATA_ATTRIBUTE
public static final String CONFIG_METADATA_ATTRIBUTE
- See Also:
- Constant Field Values
-
USER_INFO_ATTRIBUTE
public static final String USER_INFO_ATTRIBUTE
- See Also:
- Constant Field Values
-
INTROSPECTION_ATTRIBUTE
public static final String INTROSPECTION_ATTRIBUTE
- See Also:
- Constant Field Values
-
TENANT_ID_ATTRIBUTE
public static final String TENANT_ID_ATTRIBUTE
- See Also:
- Constant Field Values
-
DEFAULT_TENANT_ID
public static final String DEFAULT_TENANT_ID
- See Also:
- Constant Field Values
-
SESSION_COOKIE_NAME
public static final String SESSION_COOKIE_NAME
- See Also:
- Constant Field Values
-
STATE_COOKIE_NAME
public static final String STATE_COOKIE_NAME
- See Also:
- Constant Field Values
-
POST_LOGOUT_COOKIE_NAME
public static final String POST_LOGOUT_COOKIE_NAME
- See Also:
- Constant Field Values
-
VOID_UNI
static final io.smallrye.mutiny.Uni<Void> VOID_UNI
-
deleteTokensRequestContext
static final BlockingTaskRunner<Void> deleteTokensRequestContext
-
QUARKUS_IDENTITY_EXPIRE_TIME
public static final String QUARKUS_IDENTITY_EXPIRE_TIME
- See Also:
- Constant Field Values
-
-
Method Detail
-
isServiceApp
public static boolean isServiceApp(OidcTenantConfig oidcConfig)
-
isWebApp
public static boolean isWebApp(OidcTenantConfig oidcConfig)
-
isEncryptedToken
public static boolean isEncryptedToken(String token)
-
isOpaqueToken
public static boolean isOpaqueToken(String token)
-
decodeJwtContent
public static io.vertx.core.json.JsonObject decodeJwtContent(String jwt)
-
decodeJwtHeaders
public static io.vertx.core.json.JsonObject decodeJwtHeaders(String jwt)
-
findRoles
public static List<String> findRoles(String clientId, OidcTenantConfig.Roles rolesConfig, io.vertx.core.json.JsonObject json)
-
validateAndCreateIdentity
static QuarkusSecurityIdentity validateAndCreateIdentity(Map<String,Object> requestData, io.quarkus.security.credential.TokenCredential credential, TenantConfigContext resolvedContext, io.vertx.core.json.JsonObject tokenJson, io.vertx.core.json.JsonObject rolesJson, UserInfo userInfo, TokenIntrospection introspectionResult, io.quarkus.security.identity.request.TokenAuthenticationRequest request)
-
setSecurityIdentityPermissions
static void setSecurityIdentityPermissions(QuarkusSecurityIdentity.Builder builder, OidcTenantConfig config, io.vertx.core.json.JsonObject permissionsJson)
-
addTokenScopesAsPermissions
static void addTokenScopesAsPermissions(QuarkusSecurityIdentity.Builder builder, Collection<String> scopes)
-
transformScopesToPermissions
static Permission[] transformScopesToPermissions(Collection<String> scopes)
-
setSecurityIdentityRoles
public static void setSecurityIdentityRoles(QuarkusSecurityIdentity.Builder builder, OidcTenantConfig config, io.vertx.core.json.JsonObject rolesJson)
-
setBlockingApiAttribute
public static void setBlockingApiAttribute(QuarkusSecurityIdentity.Builder builder, io.vertx.ext.web.RoutingContext vertxContext)
-
setTenantIdAttribute
public static void setTenantIdAttribute(QuarkusSecurityIdentity.Builder builder, OidcTenantConfig config)
-
setRoutingContextAttribute
public static void setRoutingContextAttribute(QuarkusSecurityIdentity.Builder builder, io.vertx.ext.web.RoutingContext routingContext)
-
setSecurityIdentityUserInfo
public static void setSecurityIdentityUserInfo(QuarkusSecurityIdentity.Builder builder, UserInfo userInfo)
-
setSecurityIdentityIntrospection
public static void setSecurityIdentityIntrospection(QuarkusSecurityIdentity.Builder builder, TokenIntrospection introspectionResult)
-
setSecurityIdentityConfigMetadata
public static void setSecurityIdentityConfigMetadata(QuarkusSecurityIdentity.Builder builder, TenantConfigContext resolvedContext)
-
validatePrimaryJwtTokenType
public static void validatePrimaryJwtTokenType(OidcTenantConfig.Token tokenConfig, io.vertx.core.json.JsonObject tokenJson)
-
removeSessionCookie
static io.smallrye.mutiny.Uni<Void> removeSessionCookie(io.vertx.ext.web.RoutingContext context, OidcTenantConfig oidcConfig, String cookieName, TokenStateManager tokenStateManager)
-
removeCookie
static String removeCookie(io.vertx.ext.web.RoutingContext context, OidcTenantConfig oidcConfig, String cookieName)
-
removeCookie
static void removeCookie(io.vertx.ext.web.RoutingContext context, io.vertx.core.http.impl.ServerCookie cookie, OidcTenantConfig oidcConfig)
-
setCookiePath
static void setCookiePath(io.vertx.ext.web.RoutingContext context, OidcTenantConfig.Authentication auth, io.vertx.core.http.impl.ServerCookie cookie)
-
mergeTenantConfig
static OidcTenantConfig mergeTenantConfig(OidcTenantConfig tenant, OidcTenantConfig provider)
Merge the current tenant and well-known OpenId Connect provider configurations. Initialized properties take priority over uninitialized properties. Initialized properties in the current tenant configuration take priority over the same initialized properties in the well-known OpenId Connect provider configuration. Tenant id property of the current tenant must be set before the merge operation.- Parameters:
tenant
- current tenant configurationprovider
- well-known OpenId Connect provider configuration- Returns:
- merged configuration
-
resolveProviderConfig
static OidcTenantConfig resolveProviderConfig(OidcTenantConfig oidcTenantConfig)
-
getSha256Digest
public static byte[] getSha256Digest(byte[] value) throws NoSuchAlgorithmException
- Throws:
NoSuchAlgorithmException
-
encryptJson
public static String encryptJson(io.vertx.core.json.JsonObject json, SecretKey key) throws Exception
- Throws:
Exception
-
encryptString
public static String encryptString(String jweString, SecretKey key) throws Exception
- Throws:
Exception
-
decryptJson
public static io.vertx.core.json.JsonObject decryptJson(String jweString, Key key) throws Exception
- Throws:
Exception
-
decryptString
public static String decryptString(String jweString, Key key) throws Exception
- Throws:
Exception
-
decryptString
public static String decryptString(String jweString, Key key, io.smallrye.jwt.algorithm.KeyEncryptionAlgorithm algorithm) throws org.jose4j.lang.JoseException
- Throws:
org.jose4j.lang.JoseException
-
isFormUrlEncodedRequest
public static boolean isFormUrlEncodedRequest(io.vertx.ext.web.RoutingContext context)
-
getFormUrlEncodedData
public static io.smallrye.mutiny.Uni<io.vertx.core.MultiMap> getFormUrlEncodedData(io.vertx.ext.web.RoutingContext context)
-
-