}
v = params.get("id_token_hint");
JWT idTokenHint = null;
if (StringUtils.isNotBlank(v)) {
try {
idTokenHint = JWTParser.parse(v);
} catch (java.text.ParseException e) {
throw new ParseException("Invalid \"id_token_hint\" parameter: " + e.getMessage(),
OAuth2Error.INVALID_REQUEST,
clientID, redirectURI, state, e);
}
}
String loginHint = params.get("login_hint");
v = params.get("acr_values");
List<ACR> acrValues = null;
if (StringUtils.isNotBlank(v)) {
acrValues = new LinkedList<>();
StringTokenizer st = new StringTokenizer(v, " ");
while (st.hasMoreTokens()) {
acrValues.add(new ACR(st.nextToken()));
}
}
v = params.get("claims");
ClaimsRequest claims = null;
if (StringUtils.isNotBlank(v)) {
JSONObject jsonObject;
try {
jsonObject = JSONObjectUtils.parseJSONObject(v);
} catch (ParseException e) {
throw new ParseException("Invalid \"claims\" parameter: " + e.getMessage(),
OAuth2Error.INVALID_REQUEST,
clientID, redirectURI, state, e);
}
// Parse exceptions silently ignored
claims = ClaimsRequest.parse(jsonObject);
}
v = params.get("request_uri");
URI requestURI = null;
if (StringUtils.isNotBlank(v)) {
try {
requestURI = new URI(v);
} catch (URISyntaxException e) {
throw new ParseException("Invalid \"request_uri\" parameter: " + e.getMessage(),
OAuth2Error.INVALID_REQUEST,
clientID, redirectURI, state, e);
}
}
v = params.get("request");
JWT requestObject = null;
if (StringUtils.isNotBlank(v)) {
// request_object and request_uri must not be defined at the same time
if (requestURI != null) {