当前位置: 首页 > 知识库问答 >
问题:

找不到org.springframework.security.authentication.encoding.passwordencoder的类文件

阎志义
2023-03-14

我用Spring-boot和spring security制作了一个简单的restAPI,实现了基本的身份验证。我想使用inMemoryAuthentication和bcryptPasswordEncoder,但由于某种原因,我的编译器在错误的地方查找passwordEncoder,请参阅标题vs Security.Crypto.Password.passwordEncoder。

我的基本身份验证如下所示:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;    
Configuration
    @EnableWebSecurity
    public class BasicAuthConfig extends WebSecurityConfigurerAdapter {
      // Authentication : User --> Roles
      // NoOpPasswordEncoder has been deprecated in Spring security so {noop} is being used to avoid errors
      protected void configure(AuthenticationManagerBuilder auth)
        throws Exception {
        auth.inMemoryAuthentication()
          .passwordEncoder(passwordEncoder())
          .withUser("user1")
            .password("{noop}secret1")
            .roles("USER")
          .and().withUser("admin1")
            .password("{noop}secret1")
            .roles("USER", "ADMIN");
      }

      // Authorization : Role -> Access
      protected void configure(HttpSecurity html" target="_blank">http) throws Exception {
        http
          .httpBasic()
          .and().authorizeRequests()
            .antMatchers("/tokenservice/**")
              .hasRole("USER")
            .antMatchers("/**")
              .hasRole("ADMIN")
          .and().csrf()
          .disable()
            .headers()
            .frameOptions()
          .and().disable()
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS);
      }
      @Bean
      public PasswordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
      }
    }

我在尝试编译时遇到以下错误:

错误:(21,7)Java:无法访问未找到org.springframework.security.authentication.encoding.passwordencoder的org.springframework.security.authentication.encoding.passwordencoder类文件

忽略密码前面的{noop}。有没有在没有密码编码器的情况下进行测试。

我对Spring、gradle和java都很陌生。我可能用错了Spring版本吗?如果是这样的话,我该怎么修理呢?

共有1个答案

魏景龙
2023-03-14

如果您使用的是最新的spring-security版本,您应该在org.springframework.security.crypto.password包中找到passwordencoder类。

已不推荐使用org.springframework.security.authentication.encoding.passwordencoder包中的passwordencoder

 类似资料:
  • 实现的com。谷歌。firebase:firebase核心:16.0.0’ 实现的com。谷歌。firebase:firebase邀请:16.0.0英寸 实现的com。谷歌。firebase:firebase存储:16.0.1英寸 实现的com。谷歌。firebase:firebase认证号:16.0.1’ 实现的com。谷歌。firebase:firebase崩溃:16.0.0' 以上是我根据需

  • 错误:-错误:(58,28)错误:无法访问com.google.android.gms.internal.zzaja类文件,请提供帮助来源:-http://www.androidhive.info/2016/06/android-getting-firebase-simple-login-registration-auth/

  • 我犯了一个错误,在我的Netbeans项目上运行clean,该项目最近没有任何重大的API更改。现在,生成突然失败,出现以下错误:未找到org.bouncycastle.cert.ocsp.Basicocspresp的类文件 据我所知,我没有在我的项目中使用任何这样的库。我确实发现它是某种类型的iText依赖项,但即使当我注释掉所有与iText相关的代码时,错误仍然存在。 我尝试将1.49版本的b

  • 遵循文档中的示例: https://symfony.com/doc/current/page_creation.html 我遇到这个错误消息: 自动加载程序期望类"App\Controller\LuckyController"定义在文件"/var/www/my-project/供应商/作曲家/.../... /src/Controller/LuckyController.php”。找到该文件,但类

  • 问题内容: 在IntelliJ中,当我尝试编译时出现此奇怪的错误。 我知道,问题出在哪里很明显,但是花了太多时间在这个问题上,我现在把信任交给您! 我使用ideaCommunity-9,在其中为JBoss创建了一个全局库,其中包含所有JBoss jar,包括ejb3-persistence.jar。我的模块包含此库,并且已将其移至依赖关系的顶部。在类路径中,没有其他地方有javax.persist

  • 我正在使用Spring boot应用程序向Kafka主题发送JSON数据数组,但得到以下错误: 配置文件和服务文件代码: 发布JSON: [{“学生ID”:“Q45678123”,“名字”:“ABC”,“名字”:“XYZ”,“年龄”:“12”,“地址”:{“公寓”:“公寓123”,“街道”:“街道信息”,“州”:“州”,“城市”:“城市”,“邮编”:“12345”}},{“学生ID”:“Q4567