• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java Failure类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.jboss.resteasy.spi.Failure的典型用法代码示例。如果您正苦于以下问题:Java Failure类的具体用法?Java Failure怎么用?Java Failure使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



Failure类属于org.jboss.resteasy.spi包,在下文中一共展示了Failure类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: toResponse

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@Override
public Response toResponse(Throwable exception) {
	if (exception instanceof WebApplicationException) {
		return ((WebApplicationException)exception).getResponse();
	} else if (exception instanceof Failure) {
		return ((Failure)exception).getResponse();
	} else {
		log.error("Exception hit the top level handler", exception);

		final Status status = (exception instanceof ClientException) ? Status.BAD_REQUEST : Status.INTERNAL_SERVER_ERROR;

		return Response
				.status(status)
				.type(MediaType.APPLICATION_JSON_TYPE)
				.entity(new ErrorBody(exception))
				.build();
	}
}
 
开发者ID:stickfigure,项目名称:gstrap,代码行数:19,代码来源:ThrowableMapper.java


示例2: toResponse

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
/**
 * Maps an unhandled {@link Failure} to a {@link Response}.
 *
 * @param exception the {@link Failure} exception that was not handled
 * @return a {@link Response} object with status code of the {@link Failure}'s response or the
 *     error code if the response is null (defaults to 500 if the exception's response is null
 *     and the error code is not a valid status code), a content-type of 'application/json', and
 *     a {@link JsonError} entity containing details about the unhandled exception in JSON format
 */
@Override
public Response toResponse(Failure exception) {

  int code = INTERNAL_SERVER_ERROR.getStatusCode();
  int errorCode = exception.getErrorCode();

  Response response = exception.getResponse();
  if (response != null) {
    code = response.getStatus();
  } else if (errorCode >= 100 && errorCode <= 599) {
    code = exception.getErrorCode();
  }

  if (code >= 400 && code < 500) {
    logger.warn("An unhandled exception was thrown.", exception);
  } else if (code >= 500) {
    logger.error("An unhandled exception was thrown.", exception);
  }

  return Optional.ofNullable(exception.getResponse())
      .map(Response::fromResponse)
      .orElse(Response.status(code))
      .entity(
          JsonError.builder()
              .code(code)
              .message(getMessage(code))
              .build())
      .type(MediaType.APPLICATION_JSON)
      .build();
}
 
开发者ID:cerner,项目名称:beadledom,代码行数:40,代码来源:FailureExceptionMapper.java


示例3: toResponse

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@Override
public Response toResponse(Exception exception) {
    Throwable cause = Throwables.getRootCause(exception);
    if (exception instanceof BusinessException) {
        return businessExceptionResponse(exception);
    } else if (exception instanceof ConstraintViolationException || exception instanceof SQLException) {
        return constraintViolationResponse(exception);
    } else if (cause instanceof Failure) {
        return failureResponse(cause);
    } else {
        return generalResponse(exception);
    }
}
 
开发者ID:jokoframework,项目名称:notification-server,代码行数:14,代码来源:GeneralExceptionMapper.java


示例4: failureResponse

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
public Response failureResponse(Throwable cause) {
    Failure failure = (Failure) cause;
    // Si ya se construyó una respuesta para la excepción,
    // usarla solo en caso que el objeto a retornar sea un Error
    if (failure.getResponse() != null) {
        Response response = failure.getResponse();
        if (response.getEntity() instanceof Error) {
            LOGGER.trace("Usando respuesta obtenida de la excepción");
            return helper.toResponse(response.getEntity(), response.getStatus());
        } else {
            // Tratar de reproducir el error usando Error
            int codigo = failure.getErrorCode();
            String mensaje = failure.getMessage();
            Error error = new Error(mapErrorCode(codigo), mensaje);
            return helper.toResponse(error, response.getStatus());
        }
    }

    // Construir una respuesta propia
    int entityErrorCode = failure.getErrorCode();
    int responseErrorCode = failure.getErrorCode();

    if (!isInErrorCodes(responseErrorCode)) {
        LOGGER.trace("El código " + entityErrorCode + " no pertenece a los códigos de error estándares, la respuesta se retorna con errorCode " + mapErrorCode(DEFAULT_RESPONSE_CODE));
        responseErrorCode = DEFAULT_RESPONSE_CODE;
    }

    String message = cause.getMessage();

    if (message == null) {
        message = "Error interno de Resteasy";
    }

    return helper.toResponse(new Error(mapErrorCode(entityErrorCode), message), responseErrorCode);
}
 
开发者ID:jokoframework,项目名称:notification-server,代码行数:36,代码来源:GeneralExceptionMapper.java


示例5: postProcess

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@Override
public void postProcess(ServerResponse response)
        throws Failure, WebApplicationException {

    if (response.getEntity() == null) {
        LOGGER.info("Entity de la respuesta es null");
    }
}
 
开发者ID:jokoframework,项目名称:notification-server,代码行数:9,代码来源:PostServiceInterceptor.java


示例6: preProcess

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@Override
public ServerResponse preProcess(HttpRequest hr, ResourceMethodInvoker rmi) throws Failure, WebApplicationException {
    String methodName = rmi.getMethod().getName();
    String remoteAddress = servletRequest.getRemoteAddr();
    String requestUri = servletRequest.getRequestURI();
    String queryString = servletRequest.getQueryString();
    String httpMethod = servletRequest.getMethod();

    String requestData = "Remote Adress: " + remoteAddress + "\n\t\t\t"
            + "Method: " + methodName + "\n\t\t\t"
            + "Request URI: " + requestUri + "\n\t\t\t"
            + "Query String: " + queryString + "\n\t\t\t"
            + "HTTP Method: " + httpMethod;

    LOGGER.info(requestData);

    Enumeration<String> headerNames = servletRequest.getHeaderNames();
    servletRequest.getHeader("");

    if (LOGGER.isTraceEnabled()) {
        while (headerNames.hasMoreElements()) {
            String headerName = headerNames.nextElement();

            Enumeration<String> headers = servletRequest.getHeaders(headerName);
            while (headers.hasMoreElements()) {
                String headerValue = headers.nextElement();
                LOGGER.trace(headerName + ": " + headerValue);
            }
        }
    } else {
        String contentType = servletRequest.getHeader("content-type");
        LOGGER.info("content-type: " + contentType);

        String acceptEnconding = servletRequest.getHeader("accept-encoding");
        LOGGER.info("accept-encoding: " + acceptEnconding);
    }

    return null;
}
 
开发者ID:jokoframework,项目名称:notification-server,代码行数:40,代码来源:LoggingInterceptor.java


示例7: preProcess

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
public ServerResponse preProcess(HttpRequest request, ResourceMethodInvoker method)
        throws Failure, WebApplicationException {
    if (logger.isDebugEnabled()) {

        String httpMethod = request.getHttpMethod();

        URI uri = ui.getRequestUri();

        String uriPath = uri.getPath();
        if (uri.getQuery() != null) {
            uriPath += "?" + uri.getQuery();
        }
        if (uri.getFragment() != null) {
            uriPath += "#" + uri.getFragment();
        }

        String sessionid = null;
        List<String> headerSessionId = request.getHttpHeaders().getRequestHeader("sessionid");
        if (headerSessionId != null) {
            sessionid = headerSessionId.get(0);
        }
        if (logger.isDebugEnabled()) {
            // log only in debug mode
            logger.debug(sessionid + "|" + httpMethod + "|" + uriPath);
        }
    }
    return null;
}
 
开发者ID:ow2-proactive,项目名称:scheduling,代码行数:29,代码来源:LoggingInterceptor.java


示例8: handle

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@Override
public void handle(HttpServerRequest request)
{
   request.bodyHandler(buff -> {
      Context ctx = vertx.getOrCreateContext();
      ResteasyUriInfo uriInfo = VertxUtil.extractUriInfo(request.getDelegate(), servletMappingPrefix);
      ResteasyHttpHeaders headers = VertxUtil.extractHttpHeaders(request.getDelegate());
      HttpServerResponse response = request.response();
      VertxHttpResponse vertxResponse = new VertxHttpResponse(response.getDelegate(), dispatcher.getProviderFactory(), request.method());
      VertxHttpRequest vertxRequest = new VertxHttpRequest(ctx.getDelegate(), headers, uriInfo, request.rawMethod(), dispatcher.getDispatcher(), vertxResponse, false);
      if (buff.length() > 0)
      {
         ByteBufInputStream in = new ByteBufInputStream(buff.getDelegate().getByteBuf());
         vertxRequest.setInputStream(in);
      }

      try
      {
     	AppGlobals.set(appGlobals);
     	appGlobals.injectGlobals();
         dispatcher.service(ctx.getDelegate(), request.getDelegate(), response.getDelegate(), vertxRequest, vertxResponse, true);
      } catch (Failure e1)
      {
         vertxResponse.setStatus(e1.getErrorCode());
      } catch (Exception ex)
      {
         vertxResponse.setStatus(500);
         LogMessages.LOGGER.error(Messages.MESSAGES.unexpected(), ex);
      }
      finally 
      {
     	 AppGlobals.set(null);
      }
      if (!vertxRequest.getAsyncContext().isSuspended())
      {
         try
         {
            vertxResponse.finish();
         } catch (IOException e)
         {
            e.printStackTrace();
         }
      }
   });
}
 
开发者ID:FroMage,项目名称:redpipe,代码行数:46,代码来源:VertxPluginRequestHandler.java


示例9: preProcess

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@Override
public ServerResponse preProcess(HttpRequest request, ResourceMethod method) throws Failure, WebApplicationException {

	boolean authenticated = false;
	String authenticationScheme = null;
	String username = null;
	String password;
	// Check http basic authentication first
	List<String> authentication = request.getHttpHeaders().getRequestHeader("Authorization");
	if (authentication != null && authentication.size() > 0) {
		for (String auth : authentication) {
			if (!auth.startsWith("Basic")) {
				continue;
			}
			String hash = auth.substring(6);

			try {
				byte[] decoded = Base64.decode(hash);
				String usernamePassword = new String(decoded);

				int colon = usernamePassword.indexOf(':');
				if (colon > 0) {
					username = usernamePassword.substring(0, colon);
					password = usernamePassword.substring(colon + 1, usernamePassword.length());

					authenticated = providerService.authenticate(username, password);
					authenticationScheme = SecurityContext.BASIC_AUTH;
					break;
				}
			} catch (IOException e) {
				log.log(Level.SEVERE, "Cannot encode authentication realm", e);
			}

		}
	}

	if (!authenticated) {
		// Check username and password as query parameters
		MultivaluedMap<String, String> queryParams = request.getUri().getQueryParameters();
		if (queryParams != null) {
			username = queryParams.getFirst("provider");
			password = queryParams.getFirst("pwd");
			if (username != null && !username.isEmpty() && password != null && !password.isEmpty()) {
				authenticated = providerService.authenticate(username, password);
				authenticationScheme = "CUSTOM";
			}
		}
	}

	if (authenticated) {
		Principal principal = new SimplePrincipal(username);
		ResteasyProviderFactory.pushContext(SecurityContext.class,
				new CustomSecurityContext(principal, providerService.isSuperProvider(username), true, authenticationScheme));
		log.log(Level.FINE, "Request authenticated. Username: {0}", username);
	}

	return null;

}
 
开发者ID:macanhhuy,项目名称:dcp-api,代码行数:60,代码来源:AuthenticationInterceptor.java


示例10: preProcess

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@Override
public ServerResponse preProcess(HttpRequest httpRequest, ResourceMethod resourceMethod) throws Failure, WebApplicationException {
    AuthenticationSession session = new AnonymousSession();
    IsisContext.openSession(session);
    return null;
}
 
开发者ID:madytyoo,项目名称:dhtmlx-isis-viewer,代码行数:7,代码来源:ViewerInterceptor.java


示例11: preProcess

import org.jboss.resteasy.spi.Failure; //导入依赖的package包/类
@SuppressWarnings({"rawtypes", "unchecked"})
@Override
public ServerResponse preProcess(HttpRequest request, ResourceMethod resourceMethod) throws Failure, WebApplicationException {
	// Retrieve again all annotations
	String[] rolesAllowed = null;
	boolean denyAll;
	boolean permitAll;

	Class declaring = resourceMethod.getResourceClass();
	Method method = resourceMethod.getMethod();

	if (declaring == null || method == null) {
		return null;
	}
	RolesAllowed allowed = (RolesAllowed) declaring.getAnnotation(RolesAllowed.class);
	RolesAllowed methodAllowed = method.getAnnotation(RolesAllowed.class);
	if (methodAllowed != null) {
		allowed = methodAllowed;
	}
	if (allowed != null) {
		rolesAllowed = allowed.value();
	}

	denyAll = (declaring.isAnnotationPresent(DenyAll.class)
			&& method.isAnnotationPresent(RolesAllowed.class) == false
			&& method.isAnnotationPresent(PermitAll.class) == false) || method.isAnnotationPresent(DenyAll.class);

	permitAll = (declaring.isAnnotationPresent(PermitAll.class) == true
			&& method.isAnnotationPresent(RolesAllowed.class) == false
			&& method.isAnnotationPresent(DenyAll.class) == false) || method.isAnnotationPresent(PermitAll.class);


	if (denyAll) {
		return createHttpBasicChallengeResponse();
	}
	if (permitAll) {
		return null;
	}
	if (rolesAllowed != null) {
		log.log(Level.FINEST, "Roles Allowed: {0}", rolesAllowed);
		SecurityContext context = ResteasyProviderFactory.getContextData(SecurityContext.class);
		if (context != null) {
			log.log(Level.FINEST, "User Principal: {0}", context.getUserPrincipal());
			boolean onlyTestedRole = true;
			for (String role : rolesAllowed) {
				if (context.isUserInRole(role)) {
					return null;
				}
				if (!testedRoles.contains(role)) {
					onlyTestedRole = false;
				}
			}
			if (onlyTestedRole) {
				if (context.getUserPrincipal() == null) {
					return createHttpBasicChallengeResponse();
				} else {
					return createForbiddenResponse();
				}
			} else {
				return super.preProcess(request, resourceMethod);
			}
		}
	}

	return null;
}
 
开发者ID:searchisko,项目名称:searchisko,代码行数:67,代码来源:HttpBasicChallengeInterceptor.java



注:本文中的org.jboss.resteasy.spi.Failure类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java StreamingMetrics类代码示例发布时间:2022-05-22
下一篇:
Java ResponseInfo类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap