java 无此类Bean定义异常:没有类型为"org. springframework. security. config. annotation. web. builders. HttpSecurity"的限定Bean可用

u5rb5r59  于 2022-12-28  发布在  Java
关注(0)|答案(2)|浏览(383)

我尝试用Spring Boot设置基本的身份验证,但是在启动时总是遇到这个错误。我已经看到了几个例子,它们的代码和我这里的几乎完全一样,我不知道我做错了什么。我从Spring的文档中复制了我的代码,只做了一些小的调整。我对Spring还是一个新手,这一切对我来说都像是巫术,所以你能提供的任何见解都将非常感谢。
代码:

package com.project.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

@Configuration
public class BasicAuthSecurityConfiguration
{
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .authorizeRequests().anyRequest().authenticated()
                .and()
                .httpBasic();

        return http.build();
    }

    @Bean
    public InMemoryUserDetailsManager userDetailsService() throws IOException {
        String rootPath = Thread.currentThread().getContextClassLoader().getResource("").getPath();
        String appConfigPath = rootPath + "application.properties";
        Properties appProps = new Properties();
        appProps.load(new FileInputStream(appConfigPath));

        UserDetails user = User
                .withUsername(appProps.getProperty("requestUsername"))
                .password(appProps.getProperty("requestPassword"))
                .roles("USER")
                .build();
        return new InMemoryUserDetailsManager(user);
    }
}

错误信息:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of method filterChain in com.atscale.service.BasicAuthSecurityConfiguration required a bean of type 'org.springframework.security.config.annotation.web.builders.HttpSecurity' that could not be found.

Action:

Consider defining a bean of type 'org.springframework.security.config.annotation.web.builders.HttpSecurity' in your configuration.
4xy9mtcn

4xy9mtcn1#

您应该发布您的类“com.atscale.service.BasicAuthSecurityConfiguration”以获取更多信息。
另外,检查您是否已经在pom或gradle文件中导入了spring security jar。

mspsb9vt

mspsb9vt2#

我最近遇到了同样的错误。添加这个依赖项为我解决了这个问题。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

相关问题