当前位置: 首页 > 知识库问答 >
问题:

如何在Spring Boot应用程序中关闭Spring Security性

弓方伟
2023-03-14

我已经用Spring Security在我的Spring Boot应用程序中实现了身份验证。

控制身份验证的主类应该是WebSecurityConfig:

@Configuration
@EnableWebSecurity
@PropertySource(value = { "classpath:/config/application.properties" })
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {


    @Autowired
    private RestAuthenticationSuccessHandler authenticationSuccessHandler;
    @Autowired
    private RestAuthenticationEntryPoint restAuthenticationEntryPoint;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
          .httpBasic()
            .and()
            .csrf().disable()
            .sessionManagement().sessionCreationPolicy(
                    SessionCreationPolicy.STATELESS)
            .and()
            .exceptionHandling()
            .authenticationEntryPoint(restAuthenticationEntryPoint)
            .and()
            .authorizeRequests()
                .antMatchers("/").permitAll()
                .antMatchers("/login").permitAll()
                .antMatchers("/logout").permitAll()
                .antMatchers("/ristore/**").authenticated()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .successHandler(authenticationSuccessHandler)
                .failureHandler(new SimpleUrlAuthenticationFailureHandler());
    }
@SpringBootApplication
@EnableSpringDataWebSupport
@EntityScan({"org.mdacc.ristore.fm.models"}) 
public class RistoreWebApplication extends SpringBootServletInitializer
{
   @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedOrigins("*");
            }
        };
    }
    public static void main( String[] args )
    {
        SpringApplication.run(RistoreWebApplication.class, args);
    }

    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
         return application.sources(RistoreWebApplication.class);
     }
}

>

  • 注释掉与安全性相关的类中的所有注释,包括@configuration@enablewebsecurity。在Spring boot Security Disable Security中,在底部建议添加@enablewebsecurity将禁用身份验证,我认为这没有任何意义。反正试过了,也没用。

    通过删除所有安全内容来修改websecurityconfig并且只执行http.authorizeRequests().anyRequest().PermitAll();

    使用Spring Security Java配置时禁用基本身份验证。也无济于事。

    删除安全自动配置

    @enableAutoConfiguration(exclude={org.springframework.boot.autoconfigure.security.securityautoconfigure.class,org.springframework.boot.actuate.autoconfigure.managementsecurityautoconfigure.class})

    就像他们在spring boot App中禁用Spring Security性所做的那样。但是,我认为这个特性只适用于spring-boot-acture,而我没有这个特性。所以没试过这个。

    禁用spring Security的正确方法是什么?

  • 共有1个答案

    徐昊焜
    2023-03-14

    正如@Maciej Walkowiak提到的,你应该为你的主类这样做:

    @SpringBootApplication(exclude = org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration.class)
    public class MainClass {
    
     类似资料:
    • 问题内容: 在Swing中,您可以简单地用于在关闭窗口时关闭整个应用程序。 但是,在JavaFX中找不到等效项。我有多个打开的窗口,如果一个窗口关闭,我想关闭整个应用程序。用JavaFX做到这一点的方法是什么? 编辑: 我了解可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作才能终止整个应用程序? 类中定义的方法不执行任何操作。 问题答案: 当最后一个关闭时,应用程序自动停止。目前,您的类

    • 我正在编写一个带有ExecutorService的单例类的SDK。它看起来像这样: 此SDK类用于在整个应用程序中运行任务/可运行程序,doSomething()函数用于在单个线程中排队并运行所有可运行程序。 但有一件事我搞不清楚,那就是什么时候给ExecutorService打电话。shutdown()方法。如果我这样称呼它: 它会破坏使用一个Thread的目的,因为如果在第二次调用doThin

    • 我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em

    • 并且我有以下类: 当中的为时,它继续,否则,应用程序应该关闭,我们可以在bean创建期间关闭应用程序吗?这是一个好的做法吗?有什么好办法处理这件事吗?

    • 我有一个主(屏幕)gui窗口,需要打开几个“多输入”窗口(jdialog或当不可能使用jframe时),例如添加首选项(4个文本字段,带有2个文件选择器和2个单选按钮)。在这些JDialogs(或JFrames)中按OK/Cancel时,我的整个应用程序将关闭。我不想那样。我该怎么防止呢? 第一次尝试:我尝试了intelliJ选项“新- 第二次尝试:我“手工”编写了一个类,创建了一个JDialog

    • 在Swing中,您可以简单地使用在窗口关闭时关闭整个应用程序。 然而,在JavaFX中,我找不到一个等价物。我有多个窗口打开,我想关闭整个应用程序,如果一个窗口关闭。在JavaFX中实现这一点的方法是什么?