iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Quarkus中filter过滤器跨域cors问题怎么解决
  • 404
分享到

Quarkus中filter过滤器跨域cors问题怎么解决

2023-06-29 06:06:34 404人浏览 独家记忆
摘要

本篇内容介绍了“Quarkus中filter过滤器跨域cors问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言Quarkus中

本篇内容介绍了“Quarkus中filter过滤器跨域cors问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    前言

    Quarkus中的WEB模块是基于java标准web规范jax-rs构建的,实现则选用了jboss的resteasy。这部分只是请求路由转发部分实现。真正的请求接收则使用了eclipse开源的vert.x框架,底层也是基于Netty的一个响应式开发框架。Quarkus将vert.x和resteasy集成在了一起,所以支持响应式和非响应式应用混合开发,这也是Quarkus的一大卖点。

    web依赖

    <dependency>            <groupId>io.quarkus</groupId>            <artifactId>quarkus-resteasy-JSONb</artifactId></dependency>

    过滤器filter开发

    resteasy的filter

    @Priority(Priorities.USER + 1)@Providerpublic class MyFilter implements ContainerRequestFilter, ContainerResponseFilter {    private volatile CurrentVertxRequest currentVertxRequest;    CurrentVertxRequest currentVertxRequest() {        if (currentVertxRequest == null) {            currentVertxRequest = CDI.current().select(CurrentVertxRequest.class).get();        }        return currentVertxRequest;    }    @Override    public void filter(ContainerRequestContext requestContext) throws IOException {        RoutinGContext httpserverRequest = this.currentVertxRequest().getCurrent();        String str = HttpServerRequest.getBodyAsString();        jsonObject jsonObject = httpServerRequest.getBodyAsJson();        RequestImpl request = (RequestImpl) requestContext.getRequest();        System.out.println("拦截到请求了");    }    @Override    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {        System.out.println("拦截到响应了");    }}

    实现ContainerRequestFilter、ContainerResponseFilter接口,可以分别拦截请求和响应。最后使用@Provider注解标记,@Priority注解用于表明优先级,值越大,优先级越高。前面已经说过,Quarkus虽然使用了resteasy,但是请求是使用vert'x来接收的,所以在拦截器实现里,可以通过上下文信息拿到vert'x的路由信息RoutingContext

    vertx的filter

    @ApplicationScopedpublic class MyFilter {    public void initfilter(@Observes Filters filters) {        filters.reGISter(routingContext -> {            HttpServerRequest httpServerRequest = routingContext.request();            ForkJoinPool.commonPool().submit(()->{                System.out.println("进入vertx拦截器,下面是header参数:");            });            httpServerRequest.headers().forEach(stringStringEntry -> {                System.out.println("key:"+stringStringEntry.geTKEy() +",value:"+stringStringEntry.getValue());            });            routingContext.next();//这一句不能漏掉,让拦截器继续往下走的逻辑        }, 100);    }}

    Quarkus中的跨域

    Quarkus中解决跨域问题,可以从两个层面来分析,一个是resteasy的角度。resteasy中内置了CorsFilter过滤器,我们只需要激活它即可解决跨域问题。如:

    @Providerpublic class CorsFilter extends org.jboss.resteasy.plugins.interceptors.CorsFilter {    public CorsFilter() {        super.setAllowedMethods("OPTIONS, GET, POST, DELETE, PUT, PATCH");        super.setAllowedHeaders("*");        super.getAllowedOrigins().add("*");    }}

    Quarkus本身也做了跨域的解决方案,是基于vert't的角度来实现的,代码见io.quarkus.vertx.http.runtime.cors.CORSFilter。从vertx的handler就拦截到了请求并做了跨域处理,但是跨域功能默认不是开启的,我们可以基于以下的配置来激活它,并进行相关的设置:

    quarkus.http.cors=truequarkus.http.cors.origins=*quarkus.http.cors.headers=accept, authorization, content-type, x-requested-withquarkus.http.cors.methods=GET, OPTIONS

    “Quarkus中filter过滤器跨域cors问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    --结束END--

    本文标题: Quarkus中filter过滤器跨域cors问题怎么解决

    本文链接: https://www.lsjlt.com/news/323264.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Quarkus中filter过滤器跨域cors问题怎么解决
      本篇内容介绍了“Quarkus中filter过滤器跨域cors问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言Quarkus中...
      99+
      2023-06-29
    • Quarkus中filter过滤器跨域cors问题解决方案
      目录前言web依赖过滤器filter开发resteasy的filtervertx的filterQuarkus中的跨域前言 Quarkus中的web模块是基于java标准web规范ja...
      99+
      2024-04-02
    • 解决Django cors跨域问题
      Django cors跨域问题 前后端分离项目中的跨域问题 即同源策略 同源策略:同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 19...
      99+
      2024-04-02
    • Django cors跨域问题怎么解决
      这篇文章主要介绍“Django cors跨域问题怎么解决”,在日常操作中,相信很多人在Django cors跨域问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Django&nb...
      99+
      2023-07-02
    • jsonp和CORS跨域请求问题怎么解决
      这篇文章主要讲解了“jsonp和CORS跨域请求问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jsonp和CORS跨域请求问题怎么解决”吧!JSONPjsonp 的原理很简单,利...
      99+
      2023-06-02
    • 详解JavaWeb过滤器Filter问题解决
      目录基本概念1.过滤器概述2.使用过滤器解决中文编码异常问题3.使用过滤器实现用户登录权限拦截基本概念 1、 Filter 过滤器它是 JavaWeb 的三大组件之一。 三大组件分别...
      99+
      2022-11-13
      javaweb filter过滤器 javaweb 过滤器
    • 跨域(CORS)问题的解决方案分享
      目录前后端分离项目,如何解决跨域问题什么是跨域问题跨域问题演示及解决点击前端登录按钮覆盖默认的CorsFilter来解决该问题重新运行代码,点击登录按钮设置SpringSecurit...
      99+
      2023-02-13
      cors跨域问题 CORS跨域解决方案 CORS解决跨域的几种实现方式
    • 快速解决跨域请求问题:jsonp和CORS
      网上各种跨域教程,各种实践,各种问答,除了简单的 jsonp 以外,很多说 CORS 的都是行不通的,老是缺那么一两个关键的配置。本文只想解决问题,所有的代码经过亲自实践。本文解决跨域中的 get、post、data、cookie 等这些问...
      99+
      2023-05-30
      jsonp 跨域问题 cors跨域请求
    • Nginx如何解决前端跨域问题以及CORS跨域配置
      Nginx如何解决前端跨域问题以及CORS跨域配置,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Nginx的CORS配置,网上太多这配置了,但大家更多的复制粘贴...
      99+
      2023-06-04
    • SpringBoot怎么配置跨域过滤器允许跨域访问
      这篇文章主要讲解了“SpringBoot怎么配置跨域过滤器允许跨域访问”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot怎么配置跨域过滤器允许跨域访问”吧!SpringBoo...
      99+
      2023-07-02
    • 如何解决Spring boot 和Vue开发中CORS跨域问题
      这篇文章主要介绍如何解决Spring boot 和Vue开发中CORS跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 遇到的问题:我用spring-boot 做Rest服...
      99+
      2024-04-02
    • CorsFilter 过滤器解决跨域的处理
      CorsFilter 过滤器如何解决跨域 不多逼逼,直接贴代码,前端所有请求头都放在headers里面就行 @Component public class CorsFilter ...
      99+
      2024-04-02
    • Node.js基于cors解决接口跨域的问题(推荐)
      目录解决问题使用express编写get/post接口构造服务器并将接口写入在html页面中发起get/post请求:接口的跨域问题使用cors中间件解决跨域问题了解问题什么是COR...
      99+
      2022-11-13
      Node.js cors解决接口跨域 Node.js 接口跨域
    • vue跨域问题怎么解决
      1、可以在后端服务器中进行配置,允许指定的域名或IP地址访问后端API,这样就可以解决跨域问题。常用的方法是在服务器端添加CORS(...
      99+
      2023-05-13
      vue跨域问题 vue
    • react跨域问题怎么解决
      在 React 中解决跨域问题通常有以下几种方法:1. 设置代理:在开发环境中,可以通过设置代理服务器来解决跨域问题。可以在 `pa...
      99+
      2023-08-19
      react
    • Springboot怎么通过配置WebMvcConfig处理Cors非同源访问跨域问题
      这篇文章主要介绍了Springboot怎么通过配置WebMvcConfig处理Cors非同源访问跨域问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Springboot怎么通过配置WebMvcConfig处理...
      99+
      2023-07-05
    • 怎么解决WebSocket跨域问题
      怎么解决WebSocket跨域问题?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。WebSocket通信是点对点:一是建立WebSocket链接的URL加上时间戳保证通信会话是唯...
      99+
      2023-06-09
    • ajax跨域问题怎么解决
      在Ajax请求中,由于浏览器的同源策略限制,如果请求的域名、端口或协议与当前页面不同,则会出现跨域问题,无法正常获取数据。以下是几种...
      99+
      2023-05-13
      ajax跨域问题 ajax
    • 怎么解决ajax跨域问题
      本篇内容主要讲解“怎么解决ajax跨域问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么解决ajax跨域问题”吧!什么是ajax跨域ajax跨域的原理aja...
      99+
      2024-04-02
    • vue2.0跨域问题怎么解决
      本篇内容主要讲解“vue2.0跨域问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue2.0跨域问题怎么解决”吧! 一种解决方案: 一般的情况下...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作