withDefaultPasswordEncoder() 过期弃用问题

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

    /** @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  弃用的意思安全

日志里也写得清楚弃用的缘由:不安全app

因此,换了个写法,以下:ide

   /** * 在内存中配置一个用户,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"); }
相关文章
相关标签/搜索