相干参考
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请求将会返回如下截图:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |