ToB企服应用市场:ToB评测及商务社交产业平台

标题: keycloak~正确让api接口支持跨域 [打印本页]

作者: 石小疯    时间: 2024-5-23 07:50
标题: keycloak~正确让api接口支持跨域
相干参考

jax-ws情况的cors
  1. return Response.ok()
  2.          .entity(p)
  3.          .header("Access-Control-Allow-Origin", "*")
  4.          .header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT")
复制代码
keycloak对jax-ws的cors封装

下面是keycloak源码中,针对/cert这个接口的跨域请求
  1. @OPTIONS
  2. @Path("certs")
  3. @Produces(MediaType.APPLICATION_JSON)
  4. public Response getVersionPreflight() {
  5.     return Cors.add(request,     Response.ok()).allowedMethods("GET").preflight().auth().build();
  6. }
  7. @GET
  8. @Path("certs")
  9. @Produces(MediaType.APPLICATION_JSON)
  10. @NoCache
  11. public Response certs() {
  12.   // 相关业务代码
  13.    Response.ResponseBuilder responseBuilder =
  14.         Response.ok().cacheControl(CacheControlUtil.getDefaultCacheControl());
  15.     return Cors.add(request, responseBuilder).allowedOrigins("*").auth().build();
  16. }
复制代码
org.keycloak.services.resources.Cors对象

org.keycloak.services.resources.Cors 类是 Keycloak 中用于处置惩罚跨域资源共享(CORS)的工具类。在 Web 开辟中,由于浏览器的同源策略限制,跨域请求大概会受到限制,而 CORS 是一种机制,允许服务器声明哪些源可以访问其资源。
org.keycloak.services.resources.Cors 类提供了一些方法来帮助处置惩罚 CORS 相干的逻辑,包括:
通过利用 org.keycloak.services.resources.Cors 类,你可以更方便地处置惩罚跨域请求,确保符合 CORS 的规范,从而使得客户端能够安全地与 Keycloak 服务进行交互。这个类在 Keycloak 中的一些内部实现中被利用,以确保跨域请求能够正确处置惩罚和相应。
跨域说明

当前端向后端发送xhr请求时,假如域名不同(a.shop.com和b.shop.com,虽然主域雷同,但对于cors来说,也是跨域),浏览器会先发一个options的请求,返回是否支持跨域,并且告诉客户端哪些(get,post,put,delete)方式支持跨域。
例如,假如服务端支持跨域,你的浏览器发送的OPTIONS请求将会返回如下截图:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4