Как отправить HTTP-ответ в Zuul PRE_TYPE Filter - PullRequest
0 голосов
/ 12 марта 2019

Я хочу запретить незарегистрированному пользователю доступ к прокси.Я могу выдать исключение, но ответом будет 404 вместо `401 или '403'.Это возможно?

Код фильтра:

@Component
public class CustomZuulFilter extends ZuulFilter {


    //FIXME - if 401,403 get the new token??, fallbackMethod = "fall",
    @HystrixCommand(
            commandProperties = {
                    @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "5000"),
                    @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage", value = "60")
            }
    )
    @Override
    public Object run() {
        logger.debug("Adding zulu header");
        String userName = getLoggedUser();
        RequestContext ctx = RequestContext.getCurrentContext();
        if (userName == null) {
           // throw new RuntimeException("User not authenticated");
            logger.info("User not authenticated");
            ctx.setResponseStatusCode(401);
            ctx.sendZuulResponse();
            return null;
        }

        return null;
    }


    private String getLoggedUser() {
       [...]
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public String filterType() {
        return PRE_TYPE;
    }

    @Override
    public int filterOrder() {
        return PRE_DECORATION_FILTER_ORDER - 1; 
    }

}
...