private FullHttpResponse handleJsonServiceMappings( FullHttpRequest request, JsonServiceMapping jsonServiceMapping, Matcher matcher) throws Exception { if (!httpSessionManager.hasReadAccess(request)) { return handleNotAuthenticated(request); } boolean isGetRequest = request.method().name().equals(HttpMethod.GET.name()); if (!isGetRequest && !httpSessionManager.hasAdminAccess(request)) { return handleNotAuthorized(); } String requestText = getRequestText(request); String[] args = new String[matcher.groupCount()]; for (int i = 0; i < args.length; i++) { String group = matcher.group(i + 1); checkNotNull(group); args[i] = group; } logger.debug( "handleJsonRequest(): serviceMethodName={}, args={}, requestText={}", jsonServiceMapping.methodName(), args, requestText); Object responseObject; try { responseObject = callMethod( jsonServiceMapping.service(), jsonServiceMapping.methodName(), args, requestText); } catch (Exception e) { return newHttpResponseFromException(e); } return buildJsonResponse(responseObject); }
private @Nullable FullHttpResponse handleHttpService( ChannelHandlerContext ctx, FullHttpRequest request, HttpService httpService) throws Exception { if (!httpSessionManager.hasReadAccess(request) && !(httpService instanceof UnauthenticatedHttpService)) { return handleNotAuthenticated(request); } boolean isGetRequest = request.method().name().equals(HttpMethod.GET.name()); if (!isGetRequest && !httpSessionManager.hasAdminAccess(request)) { return handleNotAuthorized(); } return httpService.handleRequest(ctx, request); }