44             AuthorizationEndpointRequest request = 
new AuthorizationEndpointRequest();
    46             new AuthzEndpointQueryStringParser(requestParams).parseRequest(request);
    48             String requestParam = requestParams.getFirst(OIDCLoginProtocol.REQUEST_PARAM);
    49             String requestUriParam = requestParams.getFirst(OIDCLoginProtocol.REQUEST_URI_PARAM);
    51             if (requestParam != null && requestUriParam != null) {
    52                 throw new RuntimeException(
"Illegal to use both 'request' and 'request_uri' parameters together");
    55             String requestObjectRequired = OIDCAdvancedConfigWrapper.fromClientModel(client).getRequestObjectRequired();
    57             if (OIDCConfigAttributes.REQUEST_OBJECT_REQUIRED_REQUEST_OR_REQUEST_URI.equals(requestObjectRequired)
    58                     && requestParam == null && requestUriParam == null) {
    59                 throw new RuntimeException(
"Client is required to use 'request' or 'request_uri' parameter.");
    60             } 
else if (OIDCConfigAttributes.REQUEST_OBJECT_REQUIRED_REQUEST.equals(requestObjectRequired)
    61                     && requestParam == null) {
    62                 throw new RuntimeException(
"Client is required to use 'request' parameter.");
    63             } 
else if (OIDCConfigAttributes.REQUEST_OBJECT_REQUIRED_REQUEST_URI.equals(requestObjectRequired)
    64                     && requestUriParam == null) {
    65                 throw new RuntimeException(
"Client is required to use 'request_uri' parameter.");
    68             if (requestParam != null) {
    69                 new AuthzEndpointRequestObjectParser(session, requestParam, client).parseRequest(request);
    70             } 
else if (requestUriParam != null) {
    71                 InputStream is = session.getProvider(HttpClientProvider.class).get(requestUriParam);
    72                 String retrievedRequest = StreamUtil.readString(is);
    74                 new AuthzEndpointRequestObjectParser(session, retrievedRequest, client).parseRequest(request);
    79         } 
catch (Exception e) {
    80             ServicesLogger.LOGGER.invalidRequest(e);
    81             event.error(Errors.INVALID_REQUEST);
    82             throw new ErrorPageException(session, Response.Status.BAD_REQUEST, Messages.INVALID_REQUEST);