【问题标题】:How to fix: CORS issue on SAML2 SSO on WSO2 Identity Server Service Provider?如何修复:WSO2 身份服务器服务提供商上 SAML2 SSO 上的 CORS 问题?
【发布时间】:2019-08-11 07:11:54
【问题描述】:

我已经使用 SAML2 Web SSO 创建了一个 Servive Provider。

我有一个带有 Node JS 服务器和 React Js 前端的应用程序在单独的端口 3000(节点)和 3001(反应)上运行。

如果用户未通过身份验证(身份验证由 cookie 管理),则节点上有一个路由“http://localhost:3000/app/login”重定向到 sso 登录页面。

但是如果我尝试从前端调用 api,我会遇到如下 CORS 问题:

CORS 策略已阻止从源“http://localhost:3001”获取“Here”(从“http://localhost:3000/app”重定向)的访问权限:没有“Access-Control-Allow-Origin”标头出现在请求的资源上。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

我也试过这个solution,但没有成功。

【问题讨论】:

  • 您是否尝试将 hasanthipurnima.blogspot.com/2016/05/… 中提到的 cors 过滤器应用于 /repository/deployment/server/webapps/ 目录中的 authenticationendpoint Web 应用程序
  • 您能解决问题吗?如果是,请添加正确答案。

标签: node.js reactjs wso2 wso2is


【解决方案1】:

我在使用 express 作为框架的 web 应用程序中遇到此错误 然后我在 npm cors node.js 中安装了 cors 包 并在我的服务器端脚本中使用它。

var express = require('express')
var cors = require('cors')
var app = express()

app.use(cors())

【讨论】:

  • 谢谢。我已经像这样解决了 react 和 node 之间的 cors 问题。但是 react 和 wso2 samlsso 之间存在问题(按节点重定向)。
  • @Pujan 你能解释一下 WSO2 IS 的重定向问题吗?我看到的只是应用程序级别的问题。
【解决方案2】:

似乎您在尝试访问 /samlsso 时遇到了问题。在repository/conf/tomcat/carbon/WEB-INF/web.xml 文件中启用org.apache.catalina.filters.CorsFilter 过滤器,如Tomcat documentation 中所述

如果您想为 Identity Server 中托管的任何其他 Web 应用程序启用 CORS 标头(例如 /authenticationendpoint/oauth2),您必须在 web.xml 文件中执行相同的操作(在身份验证端点的情况下) web 应用程序,路径也是这些 web 应用程序的repository/deployment/server/webapps/authenticationendpoint/WEB-INF/web.xml)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多