我用SAML2 Web SSO创建了一个服务提供程序。
我有一个应用程序,其中 Node JS 服务器和 React Js 前端在单独的端口 3000(节点(和 3001(反应(上运行。
节点上有一个路由"http://localhost:3000/app/login",如果用户未经过身份验证(身份验证由 cookie 管理(,则会重定向到 sso 登录页面。
但是,如果我尝试从前端调用 api,则会出现以下 CORS 问题:
CORS 策略已阻止从源"http://localhost:3001"访问"此处"(从"http://localhost:3000/app"重定向(:请求的资源上不存在"访问控制-允许源"标头。如果不透明响应满足您的需求,请将请求的模式设置为"no-cors",以便在禁用 CORS 的情况下获取资源。
我也尝试了这个解决方案,但没有成功。
我在 web中使用 express 作为框架的 web 应用程序中遇到了此错误 然后我安装了 npm cors 节点中可用的 cors 包.js 并在我的服务器端脚本中使用它。
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
似乎是您在尝试访问/samlsso 时遇到问题。在文件中启用org.apache.catalina.filters.CorsFilter
过滤器repository/conf/tomcat/carbon/WEB-INF/web.xml
如Tomcat文档中所述
如果要为身份服务器中托管的任何其他 Web 应用程序(例如/authenticationendpoint
或/oauth2
(启用 CORS 标头,则还必须在这些 Web 应用程序的 Web 文件中执行相同的操作.xml这些文件(对于身份验证终结点 Web 应用程序,路径为repository/deployment/server/webapps/authenticationendpoint/WEB-INF/web.xml
(。