Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在不同包中扩展WebSecurity ConfigureAdapter类时,自定义安全性不起作用_Java_Spring Boot - Fatal编程技术网

Java 在不同包中扩展WebSecurity ConfigureAdapter类时,自定义安全性不起作用

Java 在不同包中扩展WebSecurity ConfigureAdapter类时,自定义安全性不起作用,java,spring-boot,Java,Spring Boot,除了包含@SpringBootApplication类的包之外,我在另一个包中扩展了websecurityConfigureAdapter。然后它就无法生成默认用户名和密码 当它在同一个包中时,它工作得很好 package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @

除了包含
@SpringBootApplication
类的包之外,我在另一个包中扩展了
websecurityConfigureAdapter
。然后它就无法生成默认用户名和密码

当它在同一个包中时,它工作得很好

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);
    }
}
类扩展WebSecurityConfigureAdapter

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");
    }


}

@springbootplication
@Configuration
@EnableAutoConfiguration
@ComponentScan
的缩写。这使得Spring可以对当前包和下面的包进行组件扫描。因此,
com.example
com.example
下的所有类都会被扫描以创建bean,而
com.example
上的任何类都不会像
com.securitymodule


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

的文档。运行应用程序时,它将扫描类本身的所有包和子包。因此,它将扫描
com.example
及其下面的所有内容
com.securitymodule
不在
com.example
下面,因此不会被扫描。谢谢@M.Deinum。你的评论对我帮助很大。这对我有用。