java option请求_java – 如何说服spring 4.2将OPTIONS请求传递给控制器

我们在控制器上使用带有@RestController注释的spring mvc,我们正在处理控制器中的授权.我们使用相同的代码来设置响应CORS飞行前请求的允许方法.为实现这一目标,我们有:

在调度程序servlet的配置中,然后我们有:

@RequestMapping(value="/some/collections",method=RequestMethod.OPTIONS)

public void collectionOptions(

HttpServletRequest req,HttpServletResponse res) {

List

我们还有一个拦截器,它对CORS pre-flight进行基本检查,以查看原点是否可能具有任何权限.

我们这样做主要是因为某些请求的权限实际上取决于@RequestParams,即:

OPTIONS /api/collections?userId=122

如果您具有管理权限,或者您实际上是具有ID 122的用户,则可能被允许.此外,我们还有API密钥

OPTIONS /api/collections?userId=122&apiKey=ABC

对于一个原点可能没问题,但对另一个原点则不行.

这工作正常,但是现在,Spring 4.2决定是否处理OPTIONS请求,通过调用:

CorsUtils.isCorsRequest(request);

在AbstractHandlerMapping中然后返回

HandlerInterceptor[] interceptors = chain.getInterceptors();

chain = new HandlerExecutionChain(new PreFlightHandler(config),interceptors);

而不是HandlerMethod ……

我们需要的是告诉spring让控制器处理OPTIONS请求的一些方法,无论预检请求处理程序是什么.

我们似乎无法找到一个点,我们可以告诉内置的CORS处理是安静的,或者在某个地方配置一些允许我们绕过新添加的代码的子类:

AbstractHandlerMapping.getHandler(HSR request)

这有可能吗?在我主动启用它之前(通过WebMvcConfigurerAdapter或通过@CrossOrigin注释),这样的功能是不是很安静?

——–编辑————-

HTTP标准说明了以下关于OPTIONS方法的内容:

OPTIONS方法表示请求有关Request-URI标识的请求/响应链上可用的通信选项的信息.该方法允许客户端确定与资源相关联的选项和/或要求,或服务器的能力,而不暗示资源动作或启动资源检索.

认为beyong只是CORS,我认为拦截CORS选项调用虽然相应的方法映射到控制器上是不正确的方法.是的,CORS是你可以用OPTIONS调用做的一件事.但它绝不是唯一的一个.

如果没有映射,并且如果使用不同的请求方法和@CrossOrigin注释映射处理程序方法,我希望触发内置CORS支持的假设会很好,但我不认为任何请求原始标头集应该只自动转到CORS处理程序.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机二级web题目(7.1)--综合选择题1

(1)程序流程图中带有箭头的线段表示的是(C)。 A、图元关系 B、数据流 C、控制流 D、调用关系 解析:①长方形表示要处理执行的步骤。②菱形表示条件判断。③平行四边形表示输入或输出。 (2)结构化程序设计的基本原则不包括(A&#…

java8 javafx_Java 8的新增功能(第1部分– JavaFX)

java8 javafx免责声明:我不为Oracle工作,也不以任何方式代表Oracle。 此功能列表不是官方的。 作为“局外人”,这只是我研究的一部分。 Java 8已在大约两个月前完成了功能,并且开发者预览版即将到来(两周后&#xff0…

Java面向对象(1)--对象的创建使用类的实例化

1、类与对象 类是对一类事物的描述,是抽象的、概念上的定义。 对象是实际存在的该类事物的每个个体,因而也称为实例(instance)。 通常都是将类实例化,也就是对象的创建 可以理解为:类 抽象概念的“人”;对象 实实在…

java ee 下载 安装配置_JavaEE下载安装及配置.doc

JavaEE下载安装及配置Apache Tomcat下载安装及配置下载Tomcat6.X最新版本官网下载地址:/tomcat/tomcat-6/v6.0.35/bin/右键迅雷下载即可。安装怎样在windows下安装tomcat步骤/方法双击.exe安装程序,显示如下图所示的欢迎页面。点击next按扭出现如下图所示…

Java简单内存解析

堆(Heap),此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。 通常所说的栈(Stack)&…

servlet3异步_Servlet 3的异步Servlet功能

servlet3异步在深入了解什么是异步Servlet之前,让我们尝试了解为什么需要它。 假设我们有一个Servlet,处理时间很长,如下所示。 LongRunningServlet.java package com.journaldev.servlet;import java.io.IOException; import java.io.Prin…

计算机二级web题目(7.2)--基本操作题1

前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击跳转人工智能学习资料) 1、在考生文件夫下的Web1目录中,存有1.htm和label2.htm文件&#xff…

java矩阵连乘算法_使用java写的矩阵乘法实例(Strassen算法)

Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算。而朴素算法却需要进行8次乘法运算。原理Strassen算法的原理如下所示,使用sympy验证Strassen算法的正确性import sympy as sA …

计算机二级web题目(7.3)--简单应用题1

说明:如有不清楚的地方,可以评论区留言,及时回复。 1、在考生文件夹下的Web3目录中,存有3.htm文件,该文件不完整,请在标有********Found******字符串的注释行下一语句的下划线处填入正确内容,然…

使用Spring Security 5.0和OIDC轻松构建身份验证

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 Spring Security不仅是一个功能强大且可高度自定义的身份验证和访问控制框架&#xf…

java访问类的方法_Java:如何从另一个类访问方法

小编典典你需要以某种方式为Alpha类提供对cBeta的引用。有三种方法可以做到这一点。1)在构造函数中为Alphas提供Beta。在Alpha课堂上写道:public class Alpha {private Beta beta;public Alpha(Beta beta) {this.beta beta;}并从main()调用cAlpha new Alpha(cBeta…

计算机二级web题目(7.4)--综合应用题1

说明:如有不清楚的地方,可以评论留言,及时回复。 1、在考生文件夹下的Web5目录中,存有5.htm文件,该文件不完整,请在标有 *********Foun********字符串的往释行 下一-语句的下划线处填入正确内容&#xff0c…

(1.2)HarmonyOS鸿蒙config.json

跟应用相关的所有信息,都会在config.json文件中进行配置。 项目的配置(app) 比如:厂商信息,项目的版本等 应用在设备上的配置信息(deviceConfig) 比如:应用运行时进程名&#xff0c…

java随机数函数_java随机函数详解

本文主要介绍java里的一些随机函数实现与用法,也会附带介绍一些随机数知识。 目前计算机实现的随机函数过程中,都是伪随机的,不过,可以实现统计学意义上的随机。比如手机鼠标移动位置,点击,系统的参数等等作为种子,这种随机统计上看起来就是“真随机数”了,具有较高的安…

Arquillian变色龙。 简化您的Arquillian测试

Arquillian Chameleon的诞生是为了简化Arquillian测试的配置。 我很自豪地宣布,使用1.0.0.CR2版本,我们不仅简化了Arquillian测试的配置方式,而且简化了编写方式。 在此新版本中,添加了三个新的简化: 您只需要使用1个…

为什么要学习鸿蒙,HarmonyOS不只是操作系统

前些天发现了十分不错的人工智能学习网站,通俗易懂,风趣幽默,没有广告,分享给大家,大家可以自行看看。(点击跳转人工智能学习资料) 前言 对于IT行业,头部力量或者已经形成生态的东西…

mysql 视图树查询_TreeView (树视图)遍历数据库的方法

多数从事数据库编程人员都经历过,对新接触的数据库技术无论是低版本Foxbase、Access97-2000还是支持网络环境高版本的Sql Server2000和 Oracel等系统,都经过一个循循渐进、吃苦耐劳学习过程,达到知识技术从量变到质变的过程,才能把…

(1.3)HarmonyOS鸿蒙启动程序运行流程

程序启动运行流程: ①解析config.json文件 ②初始化 ③获取入口Ability的全类名(config.json里的module里的mainAbility) ④找到Ability并运行 ⑤运行Ability中的子界面 ⑥加载xml文件,展示内容(xml在resources里面&am…

arraylist内存溢出_ArrayList使用内存映射文件

arraylist内存溢出介绍 内存中的计算由于负担得起的硬件而开始兴起,大多数数据保留在RAM中以满足延迟和吞吐量的目标,但是将数据保留在RAM中会增加垃圾收集器的开销,尤其是在您不预先分配内存的情况下。 因此,有效地我们需要一种无…

【vtkWidgetRepresentation】第十八期 vtkHoverWidget

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享vtkHoverWidget,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. vtkHoverWidget vtkHoverWidget用于在呈现窗口中…