Skip to content

Commit

Permalink
Merge pull request #1923 from fjuma/ELY-2570
Browse files Browse the repository at this point in the history
[ELY-2570] Add newly added constants for bearer-only support to org.wildfly.security.http.oidc.Oidc
  • Loading branch information
fjuma committed Jun 21, 2023
2 parents df382d6 + 3f30477 commit b36180f
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 14 deletions.
Expand Up @@ -19,7 +19,6 @@
package org.wildfly.security.http.bearer;

import static org.wildfly.security.http.HttpConstants.BEARER_TOKEN;
import static org.wildfly.security.http.HttpConstants.BEARER_TOKEN_PATTERN;
import static org.wildfly.security.http.HttpConstants.FORBIDDEN;
import static org.wildfly.security.http.HttpConstants.REALM;
import static org.wildfly.security.http.HttpConstants.UNAUTHORIZED;
Expand All @@ -29,6 +28,7 @@
import java.io.IOException;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
Expand Down Expand Up @@ -65,6 +65,8 @@
*/
final class BearerTokenAuthenticationMechanism implements HttpServerAuthenticationMechanism {

private static final Pattern BEARER_TOKEN_PATTERN = Pattern.compile("^Bearer *([^ ]+) *$", Pattern.CASE_INSENSITIVE);

private final CallbackHandler callbackHandler;

BearerTokenAuthenticationMechanism(CallbackHandler callbackHandler) {
Expand Down
Expand Up @@ -20,8 +20,8 @@

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.wildfly.common.array.Arrays2.indexOf;
import static org.wildfly.security.http.HttpConstants.NO_TOKEN;
import static org.wildfly.security.http.oidc.ElytronMessages.log;
import static org.wildfly.security.http.oidc.Oidc.NO_TOKEN;

import java.nio.ByteBuffer;
import java.nio.CharBuffer;
Expand Down
Expand Up @@ -18,14 +18,14 @@

package org.wildfly.security.http.oidc;

import static org.wildfly.security.http.HttpConstants.BEARER_TOKEN_PATTERN;
import static org.wildfly.security.http.HttpConstants.ERROR;
import static org.wildfly.security.http.HttpConstants.ERROR_DESCRIPTION;
import static org.wildfly.security.http.HttpConstants.INVALID_TOKEN;
import static org.wildfly.security.http.HttpConstants.REALM;
import static org.wildfly.security.http.HttpConstants.STALE_TOKEN;
import static org.wildfly.security.http.HttpConstants.WWW_AUTHENTICATE;
import static org.wildfly.security.http.oidc.ElytronMessages.log;
import static org.wildfly.security.http.oidc.Oidc.BEARER_TOKEN_PATTERN;
import static org.wildfly.security.http.oidc.Oidc.ERROR;
import static org.wildfly.security.http.oidc.Oidc.ERROR_DESCRIPTION;
import static org.wildfly.security.http.oidc.Oidc.INVALID_TOKEN;
import static org.wildfly.security.http.oidc.Oidc.STALE_TOKEN;
import static org.wildfly.security.http.oidc.Oidc.logToken;

import java.security.cert.Certificate;
Expand Down
19 changes: 19 additions & 0 deletions http/oidc/src/main/java/org/wildfly/security/http/oidc/Oidc.java
Expand Up @@ -44,6 +44,7 @@
*/
public class Oidc {

public static final String ACCEPT = "Accept";
public static final String OIDC_NAME = "OIDC";
public static final String JSON_CONTENT_TYPE = "application/json";
public static final String HTML_CONTENT_TYPE = "text/html";
Expand All @@ -60,9 +61,15 @@ public class Oidc {
public static final String CLIENT_ID = "client_id";
public static final String CODE = "code";
public static final String ERROR = "error";
public static final String ERROR_DESCRIPTION = "error_description";
public static final String FACES_REQUEST = "Faces-Request";
public static final String GRANT_TYPE = "grant_type";
public static final String INVALID_TOKEN = "invalid_token";
public static final String LOGIN_HINT = "login_hint";
public static final String MAX_AGE = "max_age";
public static final String NO_TOKEN = "no_token";
public static final String OPTIONS = "OPTIONS";
public static final String PARTIAL = "partial/";
public static final String PASSWORD = "password";
public static final String PROMPT = "prompt";
public static final String SCOPE = "scope";
Expand All @@ -73,6 +80,8 @@ public class Oidc {
public static final String REFRESH_TOKEN = "refresh_token";
public static final String RESPONSE_TYPE = "response_type";
public static final String SESSION_STATE = "session_state";
public static final String SOAP_ACTION = "SOAPAction";
public static final String STALE_TOKEN = "Stale token";
public static final String STATE = "state";
public static final int INVALID_ISSUED_FOR_CLAIM = -1;
public static final int INVALID_AT_HASH_CLAIM = -2;
Expand Down Expand Up @@ -103,6 +112,16 @@ public class Oidc {
static final String KEYCLOAK_QUERY_BEARER_TOKEN = "k_query_bearer_token";
static final String DEFAULT_TOKEN_SIGNATURE_ALGORITHM = "RS256";
public static final String DISABLE_TYP_CLAIM_VALIDATION_PROPERTY_NAME = "wildfly.elytron.oidc.disable.typ.claim.validation";
public static final String X_REQUESTED_WITH = "X-Requested-With";
public static final String XML_HTTP_REQUEST = "XMLHttpRequest";

/**
* Bearer token pattern.
* The Bearer token authorization header is of the form "Bearer", followed by optional whitespace, followed by
* the token itself, followed by optional whitespace. The token itself must be one or more characters and must
* not contain any whitespace.
*/
public static final Pattern BEARER_TOKEN_PATTERN = Pattern.compile("^Bearer *([^ ]+) *$", Pattern.CASE_INSENSITIVE);


// keycloak-specific request parameter used to specify the identifier of the identity provider that should be used to authenticate a user
Expand Down
Expand Up @@ -18,11 +18,11 @@

package org.wildfly.security.http.oidc;

import static org.wildfly.security.http.HttpConstants.OPTIONS;
import static org.wildfly.security.http.oidc.ElytronMessages.log;
import static org.wildfly.security.http.oidc.Oidc.OIDC_CLIENT_CONTEXT_KEY;
import static org.wildfly.security.http.oidc.Oidc.AuthOutcome;
import static org.wildfly.security.http.oidc.Oidc.OIDC_NAME;
import static org.wildfly.security.http.oidc.Oidc.OPTIONS;

import java.util.Map;

Expand Down
Expand Up @@ -18,17 +18,17 @@

package org.wildfly.security.http.oidc;

import static org.wildfly.security.http.HttpConstants.ACCEPT;
import static org.wildfly.security.http.HttpConstants.FACES_REQUEST;
import static org.wildfly.security.http.HttpConstants.PARTIAL;
import static org.wildfly.security.http.HttpConstants.SOAP_ACTION;
import static org.wildfly.security.http.HttpConstants.XML_HTTP_REQUEST;
import static org.wildfly.security.http.HttpConstants.X_REQUESTED_WITH;
import static org.wildfly.security.http.oidc.ElytronMessages.log;
import static org.wildfly.security.http.oidc.Oidc.ACCEPT;
import static org.wildfly.security.http.oidc.Oidc.AuthOutcome;
import static org.wildfly.security.http.oidc.Oidc.FACES_REQUEST;
import static org.wildfly.security.http.oidc.Oidc.HTML_CONTENT_TYPE;
import static org.wildfly.security.http.oidc.Oidc.PARTIAL;
import static org.wildfly.security.http.oidc.Oidc.SOAP_ACTION;
import static org.wildfly.security.http.oidc.Oidc.TEXT_CONTENT_TYPE;
import static org.wildfly.security.http.oidc.Oidc.WILDCARD_CONTENT_TYPE;
import static org.wildfly.security.http.oidc.Oidc.XML_HTTP_REQUEST;
import static org.wildfly.security.http.oidc.Oidc.X_REQUESTED_WITH;

import java.util.Collections;
import java.util.List;
Expand Down

0 comments on commit b36180f

Please sign in to comment.