本文整理汇总了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();
}
}
示例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();
}
示例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);
}
}
示例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);
}
示例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");
}
}
示例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;
}
示例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;
}
示例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();
}
}
});
}
示例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;
}
示例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;
}
示例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;
}