自学内容网 自学内容网

问题记录-Spring Security- bean httpSecurity not found

问题描述

最近使用Security的时候报了下面的错误:
在这里插入图片描述

配置如下:

@EnableWebSecurity
@Slf4j
public class SecurityConfig {
    @Resource
    private CustUserService custUserService;

    @Bean
    public AuthenticationProvider authenticationProvider() {
        return new AuthenticationProvider() {
            @Override
            public Authentication authenticate(Authentication authentication) throws AuthenticationException {
                String name = authentication.getName();
                String credentials = authentication.getCredentials().toString();
                UserDetails userDetails = custUserService.loadUserByUsername(name);
                if (credentials.equals(userDetails.getPassword())) {
                    log.info("登录成功");
                    return new UsernamePasswordAuthenticationToken(name, credentials, userDetails.getAuthorities());
                } else {
                    log.info("登录失败");
                    throw new BadCredentialsException("用户名密码错误");
                }
            }

            @Override
            public boolean supports(Class<?> authentication) {
                return authentication.equals(UsernamePasswordAuthenticationToken.class);
            }
        };
    }

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http.authenticationProvider(authenticationProvider()).
                authorizeRequests((auth) -> {
                    auth.anyRequest().authenticated();
                }).httpBasic(withDefaults());
        return http.build();
    }
}

我使用的是Springboot 2.3.3, 发现没有HttpSecurity注入Bean,SecurityFilterChain 是高版本的配置,所以不能在低版本使用。
解决方案一:可以参考这篇文章进行配置:
https://blog.csdn.net/bicheng4769/article/details/131205019

解决方案二:
升级Springboot 使用版本2.7.2,因为高版本给我们注入了这个Bean

在这里插入图片描述
此次踩坑告诉我,配置照网上粘贴如果遇到错误,可以检查一下是不是网上的版本和自己使用的版本有差异。


原文地址:https://blog.csdn.net/qq_43259860/article/details/140592476

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!