java - spring boot - 从过滤器返回 pojo 响应

标签 java spring spring-boot spring-mvc spring-filter

我想创建一个具有 Autowiring 构造函数参数的过滤器/bean,并且对于对某些 url 的每个请求检查 header 并返回 pojo 错误(或者理想情况下抛出将由 spring 处理的异常),或者通过过滤器链。类似的东西

@Bean
class MyFilter {

  @Autowired
  public MyFilter(MyService myService) {...}

  public doFilter(request, response, chain) {
     if (request. ...) {
        throw new ResponseStatusException(HttpStatus.BAD_REQUEST)
        // or return new MyErrorPojo()
     }
     return chain.doFilter(request, response)
  }
}

Spring 的做法是什么?

最佳答案

也许这会对你有所帮助。

import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

@Component
@Order( 1 )
public class RequestFilter implements Filter
{

    @Override
    public void doFilter(
            ServletRequest request,
            ServletResponse response,
            FilterChain chain ) throws IOException, ServletException

    {

        HttpServletRequest req = ( HttpServletRequest ) request;
        if( false )
        {
            response.getWriter().println( "error" );
            throw new ServletException( "" );
        }
        else
        {
            doFilter( request, response, chain );
        }

    }
}

关于java - spring boot - 从过滤器返回 pojo 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59089681/

相关文章:

java - Android 画图应用程序数组

java - 将 NetBeans 项目从 Windows 转移到 Linux VM 时 Ant 构建出错

java - 无法使用 JDK 11 运行 Apache Netbeans 11

java - 使用 spel 访问 spring 注释中的静态变量

spring - 了解微服务架构

java - 将 thymeleaf 登录表单转换为 REST 解决方案

java - Vaadin Spring 集成插件不起作用

spring - 有没有办法在 Intellij IDEA 中查看所有 @RequestMapping URL 的映射?

java - 带有 Spring Boot 和 Spring Data Neo4j 的 REST API

java - 使用 Spring Boot 应用程序将数据库凭据作为 Quartz API 中的命令行输入传递