我正在使用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);
}
}
那么,我该怎么做才能禁用登录界面,但是虽然使用了弹簧安全功能?
你可以使用这样的基于java的配置:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity security) throws Exception
{
security.httpBasic().disable();
}
}
如果它自动刷新,请重新启动它。
如果有人仍然需要解决方案,请将方法放在REST控制器中,如下所示:
@RestController
public class myRestController{
@GetMapping("/login")
public String redirectTo(){
return "yourRedirectLink";
}
}
这种解决方案非常适合使用弹簧并在罐子中进行反应
似乎有一个更简单的解决方案。
只需将此注释放在主要类或与SpingBootApplication
注释相同的位置即可
@EnableAutoConfiguration(exclude = {org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class})
通过从自动配置中排除默认弹簧安全性来禁用它。将SecurityAutoConfiguration.class
添加到主类的exclude
注释的@SpringBootApplication
属性中。如下:
@SpringBootApplication(exclude = { SecurityAutoConfiguration.class })
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}