如何解决:WSO2 Identity Server服务提供商上SAML2 SSO上的CORS问题?

时间:2019-08-11 07:11:54

标签: node.js reactjs wso2 wso2is

我已经使用SAML2 Web SSO创建了服务提供程序。

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

我在Web应用程序中使用express作为framewok的Web应用程序中出现此错误 然后我安装了npm cors node.js中可用的cors软件包 并在我的服务器端脚本中使用了它。

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

app.use(cors())

答案 1 :(得分:0)

似乎是您在尝试访问/ samlsso时遇到问题。如Tomcat documentation

中所述,要在org.apache.catalina.filters.CorsFilter文件中启用repository/conf/tomcat/carbon/WEB-INF/web.xml过滤器

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