gpt4 book ai didi

java - 在不同包中扩展 WebSecurityConfigurerAdapter 类时,自定义安全性不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 01:07:33 25 4
gpt4 key购买 nike

我在另一个包中扩展了 WebSecurityConfigurerAdapter,而不是包含 @SpringBootApplication 类的包。然后它无法生成默认用户名和密码。

当它在同一个包中时它工作正常。

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;



@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

类扩展 WebSecurityConfigurerAdapter

package com.securitymodule;


import org.springframework.beans.factory.annotation.Autowired;
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;
@Configuration
@EnableWebSecurity
public class WebSecurity extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity http) throws Exception {
// TODO Auto-generated method stub
super.configure(http);
http.antMatcher("/**").authorizeRequests().anyRequest().hasRole("USER").and().formLogin();
}


@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// TODO Auto-generated method stub
super.configure(auth);
auth.
inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}


}

最佳答案

@SpringBootApplication@Configuration@EnableAutoConfiguration@ComponentScan的简写。这使得 Spring 对当前包和下面的包进行 componentscan。因此,com.examplecom.example 中的所有类都会被扫描以创建 bean,而 com.example 之上的所有类都不会被扫描,例如 com.securitymodule

因此,要么将 @ComponentScan(basePackages = {"com.securitymodule"}) 添加到您的主类中,要么将 WebSecurityConfigurerAdapter 的包作为 com. example.securitymodule

关于java - 在不同包中扩展 WebSecurityConfigurerAdapter 类时,自定义安全性不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43868329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com