Pac4J搭配SAML2时Content-Security-Policy导致自动提交失效求助
Pac4J + SAML2 适配Content-Security-Policy的问题
我目前使用Pac4J 5.3.1版本结合SAML2,原本运行正常,但在启用Content-Security-Policy(CSP)后出现异常:访问受保护的URL时页面显示空白。实际页面的HTML中包含一个本该自动向身份提供商提交AuthRequest的表单,但这个自动提交操作被CSP规则阻止了。
我知道几个可行但有顾虑的解决办法:
- 使用CSP的
unsafe-inline选项可以绕过限制,但我不想采用这种方式; - 另一个选项是
unsafe-hashes,但该方式并不推荐; - 我考虑过修改Pac4jHTTPPostEncoder中的Velocity模板,自定义模板改用
<script>实现自动提交,同时配合CSP的哈希规则来放行。但问题在于Pac4jHTTPPostEncoder类是在AbstractSAML2MessageSender的私有方法中被调用的,修改它的配置难度很高。
希望能找到比修改模板或Pac4J源码更优的解决方案,恳请各位提供思路。
内容的提问来源于stack exchange,提问作者R.Groote
相关产品推荐
相关产品推荐

