keycloak-service
公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 関数 | 静的関数 | 非公開変数類 | 全メンバ一覧
org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser クラス
org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser の継承関係図
Inheritance graph
org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser 連携図
Collaboration graph

公開メンバ関数

 AuthzEndpointQueryStringParser (MultivaluedMap< String, String > requestParams)
 
void parseRequest (AuthorizationEndpointRequest request)
 

静的公開変数類

static final int ADDITIONAL_REQ_PARAMS_MAX_MUMBER = 5
 
static final int ADDITIONAL_REQ_PARAMS_MAX_SIZE = 200
 

限定公開メンバ関数

String getParameter (String paramName)
 
Integer getIntParameter (String paramName)
 
Set< String > keySet ()
 
void extractAdditionalReqParams (Map< String, String > additionalReqParams)
 

関数

protected< T > T replaceIfNotNull (T previousVal, T newVal)
 

静的関数

 [static initializer]
 

非公開変数類

final MultivaluedMap< String, String > requestParams
 

詳解

Parse the parameters from request queryString

著者
Marek Posolda

構築子と解体子

◆ AuthzEndpointQueryStringParser()

org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser.AuthzEndpointQueryStringParser ( MultivaluedMap< String, String >  requestParams)
inline
32  {
34  }
final MultivaluedMap< String, String > requestParams
Definition: AuthzEndpointQueryStringParser.java:30

関数詳解

◆ [static initializer]()

org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointRequestParser.[static initializer] ( )
inlinestaticpackageinherited

◆ extractAdditionalReqParams()

void org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointRequestParser.extractAdditionalReqParams ( Map< String, String >  additionalReqParams)
inlineprotectedinherited
105  {
106  for (String paramName : keySet()) {
107  if (!KNOWN_REQ_PARAMS.contains(paramName)) {
108  String value = getParameter(paramName);
109  if (value != null && value.trim().isEmpty()) {
110  value = null;
111  }
112  if (value != null && value.length() <= ADDITIONAL_REQ_PARAMS_MAX_SIZE) {
113  if (additionalReqParams.size() >= ADDITIONAL_REQ_PARAMS_MAX_MUMBER) {
114  logger.debug("Maximal number of additional OIDC params (" + ADDITIONAL_REQ_PARAMS_MAX_MUMBER + ") exceeded, ignoring rest of them!");
115  break;
116  }
117  additionalReqParams.put(paramName, value);
118  } else {
119  logger.debug("OIDC Additional param " + paramName + " ignored because value is empty or longer than " + ADDITIONAL_REQ_PARAMS_MAX_SIZE);
120  }
121  }
122 
123  }
124  }
static final Logger logger
Definition: AuthzEndpointRequestParser.java:34
static final Set< String > KNOWN_REQ_PARAMS
Definition: AuthzEndpointRequestParser.java:49
static final int ADDITIONAL_REQ_PARAMS_MAX_SIZE
Definition: AuthzEndpointRequestParser.java:46
static final int ADDITIONAL_REQ_PARAMS_MAX_MUMBER
Definition: AuthzEndpointRequestParser.java:40

◆ getIntParameter()

Integer org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser.getIntParameter ( String  paramName)
inlineprotected
42  {
43  String paramVal = requestParams.getFirst(paramName);
44  return paramVal==null ? null : Integer.parseInt(paramVal);
45  }
final MultivaluedMap< String, String > requestParams
Definition: AuthzEndpointQueryStringParser.java:30

◆ getParameter()

String org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser.getParameter ( String  paramName)
inlineprotected
37  {
38  return requestParams.getFirst(paramName);
39  }
final MultivaluedMap< String, String > requestParams
Definition: AuthzEndpointQueryStringParser.java:30

◆ keySet()

Set<String> org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser.keySet ( )
inlineprotected
48  {
49  return requestParams.keySet();
50  }
final MultivaluedMap< String, String > requestParams
Definition: AuthzEndpointQueryStringParser.java:30

◆ parseRequest()

void org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointRequestParser.parseRequest ( AuthorizationEndpointRequest  request)
inlineinherited
75  {
76  String clientId = getParameter(OIDCLoginProtocol.CLIENT_ID_PARAM);
77 
78  if (request.clientId != null && !request.clientId.equals(clientId)) {
79  throw new IllegalArgumentException("The client_id parameter doesn't match the one from OIDC 'request' or 'request_uri'");
80  }
81 
82  request.clientId = clientId;
83  request.responseType = replaceIfNotNull(request.responseType, getParameter(OIDCLoginProtocol.RESPONSE_TYPE_PARAM));
84  request.responseMode = replaceIfNotNull(request.responseMode, getParameter(OIDCLoginProtocol.RESPONSE_MODE_PARAM));
85  request.redirectUriParam = replaceIfNotNull(request.redirectUriParam, getParameter(OIDCLoginProtocol.REDIRECT_URI_PARAM));
86  request.state = replaceIfNotNull(request.state, getParameter(OIDCLoginProtocol.STATE_PARAM));
87  request.scope = replaceIfNotNull(request.scope, getParameter(OIDCLoginProtocol.SCOPE_PARAM));
88  request.loginHint = replaceIfNotNull(request.loginHint, getParameter(OIDCLoginProtocol.LOGIN_HINT_PARAM));
89  request.prompt = replaceIfNotNull(request.prompt, getParameter(OIDCLoginProtocol.PROMPT_PARAM));
90  request.idpHint = replaceIfNotNull(request.idpHint, getParameter(AdapterConstants.KC_IDP_HINT));
91  request.nonce = replaceIfNotNull(request.nonce, getParameter(OIDCLoginProtocol.NONCE_PARAM));
92  request.maxAge = replaceIfNotNull(request.maxAge, getIntParameter(OIDCLoginProtocol.MAX_AGE_PARAM));
93  request.claims = replaceIfNotNull(request.claims, getParameter(OIDCLoginProtocol.CLAIMS_PARAM));
94  request.acr = replaceIfNotNull(request.acr, getParameter(OIDCLoginProtocol.ACR_PARAM));
95  request.display = replaceIfNotNull(request.display, getParameter(OAuth2Constants.DISPLAY));
96 
97  // https://tools.ietf.org/html/rfc7636#section-6.1
98  request.codeChallenge = replaceIfNotNull(request.codeChallenge, getParameter(OIDCLoginProtocol.CODE_CHALLENGE_PARAM));
99  request.codeChallengeMethod = replaceIfNotNull(request.codeChallengeMethod, getParameter(OIDCLoginProtocol.CODE_CHALLENGE_METHOD_PARAM));
100 
101  extractAdditionalReqParams(request.additionalReqParams);
102  }
void extractAdditionalReqParams(Map< String, String > additionalReqParams)
Definition: AuthzEndpointRequestParser.java:105
protected< T > T replaceIfNotNull(T previousVal, T newVal)
Definition: AuthzEndpointRequestParser.java:126

◆ replaceIfNotNull()

protected<T> T org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointRequestParser.replaceIfNotNull ( previousVal,
newVal 
)
inlinepackageinherited
126  {
127  return newVal==null ? previousVal : newVal;
128  }

メンバ詳解

◆ ADDITIONAL_REQ_PARAMS_MAX_MUMBER

final int org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointRequestParser.ADDITIONAL_REQ_PARAMS_MAX_MUMBER = 5
staticinherited

Max number of additional req params copied into client session note to prevent DoS attacks

◆ ADDITIONAL_REQ_PARAMS_MAX_SIZE

final int org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointRequestParser.ADDITIONAL_REQ_PARAMS_MAX_SIZE = 200
staticinherited

Max size of additional req param value copied into client session note to prevent DoS attacks - params with longer value are ignored

◆ requestParams

final MultivaluedMap<String, String> org.keycloak.protocol.oidc.endpoints.request.AuthzEndpointQueryStringParser.requestParams
private

このクラス詳解は次のファイルから抽出されました: