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

无法覆盖spring boot安全性

唐宇定
2023-03-14

下面是我的pom.xml

   <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.3.1.RELEASE</version>
       <relativePath/>
   </parent>

    <dependency>
       <groupId>org.springframework.cloud</groupId>
       <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>

   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-security</artifactId>
   </dependency>

这是我的主课

@SpringBootApplication(exclude = {
        SecurityAutoConfiguration.class
})
public class ApiGatewayApplication {

    public static void main(String[] args) {
        SpringApplication.run(ApiGatewayApplication.class, args);
    }

}

SecurityConfig.Class

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{

    @Bean
    CorsConfigurationSource corsConfigurationSource() {
        CorsConfiguration configuration = new CorsConfiguration();
        configuration.setAllowedOrigins(Arrays.asList("*"));
        configuration.setAllowedMethods(Arrays.asList("*"));
        configuration.setAllowedHeaders(Arrays.asList("*"));
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", configuration);
        return source;
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.cors().and()
                .csrf().disable()
                .authorizeRequests()
                .antMatchers("/greetings").permitAll()
                .and()
                .httpBasic()
                .and()
                .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
    }
}
@RestController
@RequestMapping
public class MyController {

    @GetMapping("/greetings")
    public String greetings(){
        return "Hello World!";
    } 

}
spring:
  main:
    allow-bean-definition-overriding: true

共有1个答案

刘琨
2023-03-14

您可以像这样使用基于java的配置

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Override
protected void configure(HttpSecurity security) throws Exception
 {
  security.httpBasic().disable();
 }
}

或者您可以简单地在configure方法中添加

    .formLogin().disable()

也可以添加application.properties文件或application.yml

security.basic.enabled=false
 类似资料:
  • 问题内容: 我尝试按照食谱中的描述自定义行为。 在ipython中: 没有被调用。看来在我的python 2.5安装中不起作用。 问题答案: 使用的是ipython,而不是普通的Python交互式shell,它本身捕获所有异常,并且不使用sys.excepthook。以代替just的方式运行它,它将在未捕获的异常时自动调用pdb,就像您尝试使用excepthook一样。

  • 注意:这里有几个人引用的解决方案不适用于我的问题。。。 我有一个java。sql。要在getter中格式化为字符串的时间戳字段。我在课程开始时使用Lombok@Data。但是,当我用自己的getter覆盖Lombok的getter(格式化时间戳)时,字段总是空的。我在文档中没有看到任何东西来解释这种行为。 这段代码将结算日期作为时间戳提供给我: 这个代码块给了我一个NPE,因为setementDa

  • 为什么我不能重写类中的doInBackground方法? 错误:类AttemptLogin必须声明为抽象或实现抽象方法'doInBackground(参数…)在“异步任务”中 如果我将doInBackground的参数更改为(Object[]),它就会工作。为什么我不能传递字符串值?

  • 问题内容: 因此,我有一个自定义类,该类具有与int一起使用的功能。然而,在我的程序(库),它越来越被称为周围的其他方法,即,在那里是我的班。有什么办法可以让它使用我的功能吗? 问题答案: 只需将以下内容添加到类定义中,就可以了:

  • 在这个特定的示例中,我扩展了

  • 我正在构建一个聊天应用程序,当我向用户发送一个图像时,图像并没有覆盖我给出的背景,而是给出了顶部和底部的有线填充。如何解决这个问题。我给出的填充是每边7dp,这里是我的代码