keycloak java adapter cors 相关配置

# 启用或禁用 CORS

# 开启后将处理CORS预检请求

# 还将查看访问令牌以确定有效的来源

# 该配置项不是必须的,默认值是false。

keycloak.cors=false

 

# 如果启用了 CORS

# 设置响应header Access-Control-Max-Age 的值

# 用来指定每次预检请求的有效期,单位为秒

# 1728000秒=20天

# 该配置项不是必须的

# 如果配置项未配置,则响应header中不包含 Access-Control-Max-Age 

keycloak.cors-max-age=1728000

 

# 如果启用了 CORS

# 设置响应header Access-Control-Allow-Methods 的值

# 值的格式应该是以逗号分隔的字符串。

# 表明服务器支持的所有跨域请求的方法

# 返回的是所有支持的方法,而不单是浏览器请求的那个方法。

# 这是为了避免多次"预检"请求。

# 该配置项不是必须的

# 如果配置项未配置,则响应header中不包含 Access-Control-Allow-Methods

keycloak.cors-allowed-methods=POST,PUT,DELETE,GET,OPTIONS,PATCH

 

# 如果启用了 CORS

# 设置响应header Access-Control-Allow-Headers 的值

# 值的格式应该是以逗号分隔的字符串。

# 表明服务器支持的所有请求头信息字段,不限于浏览器在"预检"中请求的字段

# 该配置项不是必须的

# 如果配置项未配置,则响应header中不包含 Access-Control-Allow-Headers

keycloak.cors-allowed-headers=Authorization, Origin, X-Requested-With, Content-Type, X-Custom-Header

 

# 如果启用了 CORS

# 设置响应header Access-Control-Expose-Headers 的值

# 值的格式应该是以逗号分隔的字符串。

# CORS请求时,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:

# Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。

# 如果想拿到其他字段,就必须在Access-Control-Expose-Headers里面指定.

# 该配置项不是必须的

# 如果配置项未配置,则响应header中不包含 Access-Control-Expose-Headers.

# keycloak.cors-exposed-headers=requestId

 

注意:

 1很重要的一点,不知道是不是keycloak的bug。

浏览器跨域请求后端服务,后端服务设置为允许跨域,

非简单请求时,预检是通过的,

无论简单请求还是非简单请求,

如果请求不携带Token的话,

虽然后端服务成功执行了,

但是,响应header中不存在Access-Control-Allow-Origin,

导致,ajax脚本仍然无法获取后端返回的数据,

此时,浏览器控制台仍然会报:

No 'Access-Control-Allow-Origin' header is present on the requested resource

的错误。

从而导致,白名单中的 URL 无法被浏览器跨域访问了。

 

2keycloak cors 不支持指定 Access-Control-Allow-Origin,

只能使用默认值 * ,即:支持所有的 Origins。

 

3浏览器跨域简单请求后端接口,

不管后端是否允许跨域,请求都能到达后端并正常执行,

正常响应状态码是200,只是客户端ajax脚本取不到响应的数据。

 

4浏览器跨域简单请求后端接口,

如果请求的后端接口抛出了异常,

浏览器端控制台仍然会提示

No 'Access-Control-Allow-Origin' header is present on the requested resource

但是,此时的响应状态码不再是200.

 

一则预检请求示例
https://i-blog.csdnimg.cn/blog_migrate/511d16f4d6ce12296c67c3c9b1fadb5a.png
一则正式请求示例 

----------------------------------------------------------------------------

https://i-blog.csdnimg.cn/blog_migrate/6e825eeb1c1c5985a2d3a116ba406ba3.png
 

 

 

 

 

转载于:https://my.oschina.net/u/4058864/blog/2995510

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值