我使用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);
}
}
那么,我该如何禁用登录界面,但是虽然使用了弹簧安全功能?
答案 0 :(得分:21)
你可以使用这样的基于java的配置:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity security) throws Exception
{
security.httpBasic().disable();
}
}
如果应用程序自动刷新,请重新启动它。
答案 1 :(得分:5)
答案 2 :(得分:1)
如果仍然需要解决方案,请在REST控制器中放置一个方法,如下所示:
@RestController
public class myRestController{
@GetMapping("/login")
public String redirectTo(){
return "yourRedirectLink";
}
}
此解决方案非常适合与弹簧一起使用,并且可以装在罐中进行反应
答案 3 :(得分:0)
似乎有一个更简单的解决方案。
只需将此注释放在您的主类上方或与SpingBootApplication
注释相同的地方
@EnableAutoConfiguration(exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})
答案 4 :(得分:0)
要完全禁用登录路由,请使用Spring Security配置对象
以下代码段使用org.springframework.boot:2.1.6.RELEASE
@Configuration
@EnableWebSecurity
class SecurityConfig : WebSecurityConfigurerAdapter() {
override fun configure(security: HttpSecurity) {
super.configure(security)
security.httpBasic().disable()
security.cors().and().csrf().disable().authorizeRequests()
.anyRequest().authenticated()
.and().formLogin().disable() // <-- this will disable the login route
.addFilter(JWTAuthorizationFilter(authenticationManager()))
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
}
@Bean
fun corsConfigurationSource(): CorsConfigurationSource {
val source = UrlBasedCorsConfigurationSource()
val config = CorsConfiguration().applyPermitDefaultValues()
config.addExposedHeader("Authorization")
source.registerCorsConfiguration("/**", config)
return source
}
}
答案 5 :(得分:0)
@SpringBootApplication(exclude={SecurityAutoConfiguration.class})
答案 6 :(得分:-1)
通过从自动配置中排除默认的弹簧安全性来禁用它。将SecurityAutoConfiguration.class
添加到主类上exclude
批注的@SpringBootApplication
属性中。如下所示:
@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}