keycloak~正确让api接口支持跨域
相关参考
- https://leejjon.medium.com/how-to-allow-cross-origin-requests-in-a-jax-rs-microservice-d2a6aa2df484
- https://stackoverflow.com/questions/28065963/how-to-handle-cors-using-jax-rs-with-jersey
- https://keycloak.discourse.group/t/cors-problem-in-custom-rest-endpoint/7437
- https://stackoverflow.com/questions/47860019/keycloak-cors-headers-in-401
jax-ws环境的cors
return Response.ok()
.entity(p)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
keycloak对jax-ws的cors封装
下面是keycloak源码中,针对/cert这个接口的跨域请求
@OPTIONS
@Path("certs")
@Produces(MediaType.APPLICATION_JSON)
public Response getVersionPreflight() {
return Cors.add(request, Response.ok()).allowedMethods("GET").preflight().auth().build();
}
@GET
@Path("certs")
@Produces(MediaType.APPLICATION_JSON)
@NoCache
public Response certs() {
// 相关业务代码
Response.ResponseBuilder responseBuilder =
Response.ok().cacheControl(CacheControlUtil.getDefaultCacheControl());
return Cors.add(request, responseBuilder).allowedOrigins("*").auth().build();
}
org.keycloak.services.resources.Cors对象
org.keycloak.services.resources.Cors
类是 Keycloak 中用于处理跨域资源共享(CORS)的工具类。在 Web 开发中,由于浏览器的同源策略限制,跨域请求可能会受到限制,而 CORS 是一种机制,允许服务器声明哪些源可以访问其资源。
org.keycloak.services.resources.Cors
类提供了一些方法来帮助处理 CORS 相关的逻辑,包括:
checkCorsPreflightRequest
:用于检查是否为 CORS 预检请求(Preflight Request),并根据请求头信息进行相应处理。addHeaders
:向响应中添加 CORS 相关的头信息,如Access-Control-Allow-Origin
、Access-Control-Allow-Methods
、Access-Control-Allow-Headers
等。
通过使用 org.keycloak.services.resources.Cors
类,你可以更方便地处理跨域请求,确保符合 CORS 的规范,从而使得客户端能够安全地与 Keycloak 服务进行交互。这个类在 Keycloak 中的一些内部实现中被使用,以确保跨域请求能够正确处理和响应。
跨域说明
当前端向后端发送xhr请求时,如果域名不同(a.shop.com和b.shop.com,虽然主域相同,但对于cors来说,也是跨域),浏览器会先发一个options的请求,返回是否支持跨域,并且告诉客户端哪些(get,post,put,delete)方式支持跨域。
例如,如果服务端支持跨域,你的浏览器发送的OPTIONS请求将会返回如下截图:
keycloak~正确让api接口支持跨域的更多相关文章
- Spring MVC 后端接口支持跨域CORS调用
Spring MVC 从4.2版本开始增加了对CORS的支持,可以全局配置,也可以对类或方法配置:可以通过Java代码,也可以通过xml配置方式. 对于低版本的Spring MVC 可以通过Filte ...
- api接口开发跨域注意事项和设置
因为跨域请求会先发送一个OPTIONS请求,所以需要判断下OPTIONS请求的就直接返回 if(strtoupper($_SERVER['REQUEST_METHOD'])== 'OPTIONS'){ ...
- [JAVA]SpringBoot中让接口支持跨域
官方原文:https://spring.io/blog/2015/06/08/cors-support-in-spring-framework ===抽空翻译 最简单办法:在方法上增加注解: @Cro ...
- Asp.Net Web Api 接口,拥抱支持跨域访问。
如何让你的 Asp.Net Web Api 接口,拥抱支持跨域访问. 由于 web api 项目通常是被做成了一个独立站点,来提供数据,在做web api 项目的时候,不免前端会遇到跨域访问接口的问题 ...
- 使Web Api 支持跨域资源共享(CORS)
Reference:http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api Imp ...
- webapi支持跨域访问
写在前面 在实际应用中,跨域请求还是比较常见的,如何上接口直接支持跨域的访问呢? demo 场景项目A有个接口用来获取用户列表,现在项目b也有个功能需要加载用户列表.这两个项目在两个域名下,至少端口好 ...
- 让 QtWebkit 支持跨域CROS - nowboy的CSDN博客 - 博客频道 - CSDN.NET
让 QtWebkit 支持跨域CROS - nowboy的CSDN博客 - 博客频道 - CSDN.NET 让 QtWebkit 支持跨域CROS 2013-05-23 22:05 450人阅读 评论 ...
- Api之Cors跨域以及其他跨域方式
Web Api之Cors跨域以及其他跨域方式(三) 我们知道ajax不能跨域访问,但是有时我们确实需要跨域访问获取数据,所以JSONP就此诞生了,其本质使用的是Script标签,除JSONP以外还 ...
- Java Web应用中支持跨域请求
转载:https://blog.csdn.net/lmy86263/article/details/51724221 由于工程合作开发的需要,后台的应用要能支持跨域访问,但是在这个跨域访问“时好时坏” ...
- .Net WebApi 支持跨域访问使用 Microsoft.AspNet.WebApi.Cors
首先导入Cors库,通过程序包管理控制台导入 Install-Package Microsoft.AspNet.WebApi.Cors 引用库之后,我们需要进行简单的配置. 现在WebApiConfi ...
随机推荐
- C# Dictionary(数据字典)的基本用法
C# Dictionary(数据字典)的基本用法 - Mr.Cat~ - 博客园 (cnblogs.com) 通常情况下,我们可以通过 int 类型的索引来从数组或者 List 集合中查询所需的数 ...
- Windows下Net6开源akstream项目vs2022调试GB28181协议对接摄像头全流程
一.背景介绍 笔者经历多个项目对接摄像头需求,不同项目具体要求又有所不同,碰到的摄像头对接开发问题,整理记录.此篇主要用于记录备用及给有缘人提供解决思路等. 1. 同一局域网对接(海康摄像头),如 ...
- Docker 11 数据卷
由来 Docker 是将应用和环境打包成一个镜像. 这样,数据就不应该保存在容器中,否则容器删除,数据就会丢失,有着非常大的风险. 为此,容器和主机之间需要有一个数据共享技术,使得在 Docker 容 ...
- HMS Core 3D精准室内定位技术,打造“店铺级”出行体验
2022年4月28日,在华为折叠旗舰及全场景新品发布上,华为Mate Xs 2折叠屏手机搭载由HMS Core定位服务(Location Kit)提供的3D精准室内定位技术,为用户提供了"店 ...
- mupdf实用操作demo,C++操作PDF文件
前文: 最近有个项目,需要读写PDF,本来想着挺简单的,读写PDF有那么多的库可以使用,唰唰的就完成了. 忘记了我写C++的,还是在国产系统上开发的. 所以一般的东西还不好使,因为项目需要在多个架构的 ...
- MogDB学习笔记之 -- 了解pagewriter线程
MogDB 学习笔记之 -- 了解 pagewriter 线程 本文出处:https://www.modb.pro/db/183172 在前面的 MogDB 学习系列中,我们了解了核心的 bgwrit ...
- #莫队二次离线,根号分治#洛谷 5398 [Ynoi2018] GOSICK
题目 \(m\) 组询问求 \(\sum_{l\leq i,j\leq r}[a_i\bmod a_j==0],n,m,a_i\leq 5\times 10^5\) 分析 设 \(f(l,r,x)\) ...
- HDC2022 开发者亮点抢先看,线上线下精彩活动等你探索!
原文:https://mp.weixin.qq.com/s/A2sfpPKBvF6zwinbUsgwiw,点击链接查看更多技术内容.
- ContOS7搭建RAID-0磁盘阵列
RAID-0条带数据: 优点:2块硬盘同时在写数据,而且各写各的不影响,速度较快:性能提升2倍(理论): 缺点:服务器硬盘特别容易损坏,一点损坏一个,其余不能用:没有容错性:服务器用的不多,都是配合使 ...
- 力扣419(java)-甲板上的战舰(中等)
题目: 给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 'X' 或者是一个空位 '.' ,返回在甲板 board 上放置的 战舰 的数量. 战舰 只能水平或者 ...