美文网首页
@EnableOAuth2Sso 引发的一个血的教训

@EnableOAuth2Sso 引发的一个血的教训

作者: nikori1990 | 来源:发表于2019-11-13 18:08 被阅读0次

    背景:
    最近项目整体升级, 引入spring cloud security 和 spring security oauth2 等框架
    在网上各种查找资料,了解到项目还可以做sso 于是,参考网上资料简单搭了几个项目

    • 在项目启动类 加上注解 @EnableOAuth2Sso

    这一步就是错误的开始。。。
    当你打开项目时, 会遇到各种 spring securiy 的问题, csrf、x-frame-options
    当你只引入 spring security 时 这个问题很好解决

    http.headers().frameOptions().disable().and().csrf().disable(); 
    

    这样就可以解决, 但是由于集成了 @EnableOAuth2Sso , 有一个默认的security 配置类
    OAuth2SsoDefaultConfiguration 所以当你用 WebSecurityConfig 继承 WebSecurityConfigurerAdapter
    去写 security 的配置类时 , 项目起不起来, 报错原因 @Order 只能有一个 ,这时, 想到的最简单的办法就是 改变 @Order ,但是项目起来之后 发现 配置不生效。。。(目前还不知道什么原因)

    其实最后的解决办法很简单,就是把 @EnableOAuth2Sso 放到自己写的配置类上

    @EnableOAuth2Sso
    @Configuration
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http.headers().frameOptions().disable().and().csrf().disable();
            super.configure(http);
        }
    }
    

    相关文章

      网友评论

          本文标题:@EnableOAuth2Sso 引发的一个血的教训

          本文链接:https://www.haomeiwen.com/subject/rpdkictx.html