Spring mvc SpringMVC4全局基本HTTP身份验证

Spring mvc SpringMVC4全局基本HTTP身份验证,spring-mvc,spring-security,basic-authentication,spring-java-config,spring-4,Spring Mvc,Spring Security,Basic Authentication,Spring Java Config,Spring 4,我需要为登台服务器设置全局基本HTTP身份验证。没什么特别的。我只想要求用户名/密码才能访问任何内容。我还想只使用Java配置。我尝试过很多不同的解决方案,但都不管用。我始终能够访问服务器上的所有资源。这就是我现在正在做的: @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void c

我需要为登台服务器设置全局基本HTTP身份验证。没什么特别的。我只想要求用户名/密码才能访问任何内容。我还想只使用Java配置。我尝试过很多不同的解决方案,但都不管用。我始终能够访问服务器上的所有资源。这就是我现在正在做的:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

   @Override
   protected void configure(HttpSecurity http) throws Exception {
    System.out.println("Configuring HttpSecurity");

    http
            .authorizeRequests()
            .anyRequest().authenticated()
            .and()
            .httpBasic();
   }

   @Autowired
   public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    System.out.println("Configuring global AuthenticationManagerBuilder");

    auth
            .inMemoryAuthentication()
            .withUser("user").password("password").roles("USER");
   }
}

我可以在日志中看到这些代码片段正在被执行。如您所见,在第一种方法中,我要求所有请求都经过身份验证。在第二种方法中,我指定内存中的身份验证。

由于@Configuration(这也是不需要的,因为@EnableWebSecurity也声明了它),您的SOP语句将被打印(在容器实例化时)。如果希望将spring安全过滤器链与应用程序过滤器链一起使用,您仍然需要在您的web.xml或MVC初始值设定项类中注册spring安全过滤器链,该类将扩展或实现spring安全过滤器链。例如(您正在寻找相同的java配置):

EnumSet dispatcherTypes=EnumSet.of(
DispatcherType.REQUEST,DispatcherType.ERROR);
addFilter(“springSecurityFilterChain”,
DelegatingFilterProxy.class)。addMappingForUrlPatterns(
dispatcherTypes,false,“/*”;

其中container是ServletContext的一个实例。

您得到的错误是什么?还有,你是如何尝试登录的?需要更多的信息来回答问题没有错误。问题是没有提示我执行基本的HTTP身份验证。无论何时请求任何资源,我都希望始终需要基本的HTTP身份验证。
EnumSet<DispatcherType> dispatcherTypes = EnumSet.of(
            DispatcherType.REQUEST, DispatcherType.ERROR);
container.addFilter("springSecurityFilterChain",
            DelegatingFilterProxy.class).addMappingForUrlPatterns(
            dispatcherTypes, false, "/*");