【发布时间】:2026-01-12 21:45:02
【问题描述】:
我已经浏览了各种 Spring Security 和 oauth 身份验证示例。我有它的工作,但并不完全令我满意。我正在使用 java 配置。
关键问题是我只想在某些 url 上应用 oauth 身份验证。假设以“/api”开头的 url 需要具有 oauth,而以“/app”(或任何其他 url)开头的 url 需要通过其好东西(如 CSRF 保护)进行表单身份验证。
这在我当前的配置中确实有效,但“/app”网址松散了 CSRF 保护。深入挖掘,看起来 ResourceServerConfig 调用 csrf.disable。所以 CsrfFilter 类永远没有机会。
我尝试使用不同的顺序注释创建多个 WebSecurityConfigurerAdapter 以启用 csrf,但以某种方式从 ResourceServerConfigurerAdapter 扩展的配置总是获胜。我什至没有运气尝试过 csrf 请求匹配器。
是否可以(选择性地)在使用 oauth 时启用 CSRF?推荐的最佳做法是什么?
【问题讨论】:
标签: spring spring-mvc spring-security spring-security-oauth2