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)
如果它自动刷新,请重新启动它.
Sem*_*urt 12
在主 spring-boot 应用程序类上(具有 @SpringBootApplication 注解的类)
@SpringBootApplication(exclude={SecurityAutoConfiguration.class})
Run Code Online (Sandbox Code Playgroud)
通过从自动配置中排除它来禁用默认的 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)
似乎有一个更简单的解决方案。
只需将此注释放在您的主类上方或与您的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)
| 归档时间: |
|
| 查看次数: |
28419 次 |
| 最近记录: |