如何禁用spring-security登录界面?

mem*_*und 24 java spring spring-security vaadin spring-boot

我正在使用spring-boot-starter-security依赖项,以使用随附的几个类spring-security.但是,由于我想将它集成到现有的vaadin应用程序中,我只想使用类,而不是使用spring的默认登录/验证屏幕.

如何禁用此屏幕?

我不能通过扩展WebSecurityConfigurerAdapter作为我的主要入门类来进行任何配置extends SpringBootServletInitializer.此外,vaadin应用程序基本上始终在相同的URL路径上运行,并使用内部导航.

@EnableAutoConfiguration
public class MyApp extends SpringBootServletInitializer { 

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(MyApp.class);
        }

        public static void main(String[] args) {
            SpringApplication.run(MyApp.class, args);
        }
}
Run Code Online (Sandbox Code Playgroud)

那么,我该怎么做才能禁用登录界面,但是虽然使用了弹簧安全功能?

小智 35

你可以使用这样的基于java的配置:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity security) throws Exception
    {
     security.httpBasic().disable();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果它自动刷新,请重新启动它.

  • 您还可以添加 `.formLogin().disable()` 来删除登录屏幕 (8认同)

And*_*fan 13

Spring Boot中的默认安全性是Basic.您可以通过设置禁用它security.basic.enabled=false.更多关于这里这里.

  • 这已经被弃用了.noobdev现在有正确的答案. (8认同)
  • 这仍然导致/重定向到/ login,和/ login以提供登录表单 (6认同)
  • 2023 年不工作 (3认同)

Sem*_*urt 12

在主 spring-boot 应用程序类上(具有 @SpringBootApplication 注解的类)

@SpringBootApplication(exclude={SecurityAutoConfiguration.class})
Run Code Online (Sandbox Code Playgroud)


Mic*_*sma 6

通过从自动配置中排除它来禁用默认的 spring 安全性。添加SecurityAutoConfiguration.class到主类上exclude@SpringBootApplication注释属性。像下面这样:

@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 禁用 Spring Security 是一个糟糕的解决方案。应用程序应该是安全的! (2认同)

Fan*_*ing 6

似乎有一个更简单的解决方案。

只需将此注释放在您的主类上方或与您的SpingBootApplication注释相同的位置

@EnableAutoConfiguration(exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})


小智 6

您可以在新版本的 Spring Boot (3.0.0-m4) 和反应式模型 ( webflux ) 中使用此代码

@Configuration
@EnableWebFluxSecurity
public class SecurityConfig {
   @Bean
    public SecurityWebFilterChain filterChain(ServerHttpSecurity http) {
    return http
            .httpBasic().disable()
            .build();
}
}
Run Code Online (Sandbox Code Playgroud)

  • 在 Spring boot 3 中,您可以执行 `http.httpBasic(AbstractHttpConfigurer::disable).build();` (3认同)