iframe嵌入第三方页面导致cas登录验证失败
时间: 2023-07-27 14:29:35 浏览: 286
自定义客户端登录CAS服务器-iframe实现
这可能是由于iframe嵌入第三方页面导致了跨域问题,导致CAS认证失败。CAS认证是基于cookie的,而浏览器默认情况下是不允许跨域cookie的。这里有几种解决方法:
1. 在CAS服务器上配置允许跨域访问,即在CAS服务器的web.xml文件中添加如下配置:
```xml
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
2. 将第三方页面嵌入到CAS登录页面中,这样就不存在跨域问题了。
3. 使用CAS提供的代理认证功能。具体实现方式可以参考CAS官方文档。
阅读全文