我最近一直在使用以下组件对WebApp进行编码:
后端:具有SpringSecurity的SpringBoot API,已针对第三方CAS服务器进行授权。
前端:基本上是查询API以获得信息的Angular5应用。
问题:我实际上有两个问题:
当前,如果我尝试直接在后端访问资源,如果我已注销并且一切正常,它将重定向到CAS登录页面。但是,如果我从Angular一侧访问资源,则会遇到
CAS登录重定向遇到跨域读取阻止(CORB) 阻止了跨源响应。
对于第二个问题,我尝试了在互联网上找到的所有内容,但均未获得成功。我已经在控制器中添加了 @CrossOrigin ,如果停用安全性但在重定向到第三方登录时找不到避免方法,则不会出现CORS问题。
如果需要更多信息,我会很乐意提供:)
谢谢!
答案 0 :(得分:2)
我是一个主要大学的顾问,那里现在有数个Spring Boot / Angular应用程序,我们已经通过将Angular应用程序绑定到后端应用程序的静态资源中来解决了这个问题,因此Angular应用程序由嵌入式Web服务器提供服务。
通过这种方式,后端的CAS过滤器也可以保护对Angular应用的访问。
我们唯一需要添加的是Angular中的Http拦截器,该拦截器捕获到CAS令牌过期后Angular应用程序进行服务调用时可能发生的Http 401错误。拦截器重定向到Spring Boot应用程序中的路由,该路由又重定向到CAS服务器。