• withDefaultPasswordEncoder() 过时弃用问题


      在学springsecurity5.X时,在demo里,内存配置用户的时候,提示withDefaultPasswordEncoder过时,特查看了源码,官方给出的理由是:

        /** @deprecated */
        @Deprecated
        public static User.UserBuilder withDefaultPasswordEncoder() {
            logger.warn("User.withDefaultPasswordEncoder() is considered unsafe for production and is only intended for sample applications.");
            PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
            User.UserBuilder var10000 = builder();
            encoder.getClass();
            return var10000.passwordEncoder(encoder::encode);
        }

     @Deprecated  弃用的意思

    日志里也写得清楚弃用的原因:不安全

    所以,换了个写法,如下:

       /**
         * 在内存中配置一个用户,admin/admin分别是用户名和密码,这个用户拥有USER角色。
         * withDefaultPasswordEncoder 被遗弃,原因是不安全,只能在例子中使用
         * @param auth
         * @throws Exception
         */
        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            // withDefaultPasswordEncoder被弃用,用以下方式
            PasswordEncoder encoder = PasswordEncoderFactories.createDelegatingPasswordEncoder();
            auth.inMemoryAuthentication()
    //                .withUser(User.withDefaultPasswordEncoder().username("admin")
                    .withUser("admin")
                    .password(encoder.encode("admin")).roles("USER");
        }

     

  • 相关阅读:
    在unity中内置一个查询物流信息功能
    socket 广播消息
    Socket通信
    用SecureCRT在windows和CentOS间上传下载文件
    Centos6.5下设置静态IP
    oracle 11g dataguard创建的简单方法
    linux下mysql安装、目录结构、配置
    dba诊断之lock
    oracle11G在linux环境下的卸载操作
    Ubuntu 14.04(32位)安装Oracle 11g(32位)全过程
  • 原文地址:https://www.cnblogs.com/hsz-csy/p/9675641.html
Copyright © 2020-2023  润新知