我正在使用oidc JS cilent library OIDC JS
我有使用openID连接端点连接到 WSO2 IDP服务器的客户端代码。在WSO2服务器上配置隐式流
WSO2版本:wso2is-5.3.0
正常登录正常。当涉及访问令牌的静默刷新时,它失败了。 我正在使用oidc的“signinSilent”方法通过iframe进行静默登录并获取最新的访问令牌。
这适用于Gluu服务器。
错误:
Refused to display '<idp authz url>' in a frame because it set 'X-Frmae-Options' to 'deny'
答案 0 :(得分:0)
您可以转到 {carbonhome}/repository/deployment/server/webapps/oauth2/WEB-INF 并将其添加到 HttpHeaderSecurityFilter:
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>false</param-value>
</init-param>
这将禁用 X-Frame-Options 标头,从而允许所有域。但是,在执行此操作时要小心。您还可以设置 antiClickJackingOptions 并定义允许使用它的域。
答案 1 :(得分:0)
为了避免这个问题,必须将调用身份服务器的域添加到 WSO2 IS 上随附的 oauth2 Web 应用程序的 CORS 过滤器中。为此,只需修改此文件:
<wso2is_home>/repository/deployment/server/webapps/oauth2/WEB-INF/web.xml
并在 param-name cors.allowed.origins 中添加您要允许的基本 URL:
[...]
<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>https://whatever.com, https://whatever2.com</param-value>
</init-param>
[...]
修改这个并重启WSO2 IS后,浏览器就不会再屏蔽了