【问题标题】:Spring Boot 2.3.2 default securitySpring Boot 2.3.2 默认安全
【发布时间】:2020-11-28 21:28:32
【问题描述】:

我正在使用 Spring Security 进行基本身份验证。但它带有默认身份验证。我正在尝试禁用它,通过 application.properties 禁用它。这是我尝试过的:

SpringBasicSecurityApplication.java

@SpringBootApplication(exclude={SecurityAutoConfiguration.class})
@EnableWebSecurity
public class SpringBasicSecurityApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBasicSecurityApplication.class, args);
    }
}

ApplicationController.java

@RestController
@RequestMapping("/rest/auth")
public class ApplicationController {
      @GetMapping("/getMsg")
      public String greeting() {
            return "Spring Security Example!!!";
      }
}

application.properties

spring.security.user.name=xusername
spring.security.user.passward=xpassword
server.port = 8081
logging.level.org.springframework.boot.autoconfigure.security=INFO

我做错了什么?提前致谢。

【问题讨论】:

  • passward?你没有禁用任何东西……你只设置了一个用户名和密码……你拼错了,那不是禁用……
  • 你说的我想禁用它是什么意思,?您根本不需要身份验证,还是只需要 HTTP 基本身份验证?我看不到你禁用了什么?那应该怎么做?
  • @ThomasAndolf,抱歉打错字了。

标签: spring-boot spring-security


【解决方案1】:

只需授予每个人对配置中任何请求的权限即可:

@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    // HTTP security configuration
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .csrf().disable()
                .authorizeRequests()
                .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll()
                .anyRequest().permitAll
                .and().httpBasic();
    }

}

【讨论】:

  • 感谢@Seldo97 的帮助!
【解决方案2】:

感谢@Seldo97,您的建议对我有用,但我想对某种特殊类型的 URL 进行身份验证,所以在您的代码的帮助下,我确实喜欢:-

@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication().withUser("admin").password("admin").roles("ADMIN");
    auth.inMemoryAuthentication().withUser("user").password("user").roles("USER");
}

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.csrf().disable();
    http.authorizeRequests().antMatchers("/resto/**").hasRole("ADMIN").anyRequest().fullyAuthenticated().and()
            .httpBasic();

`@Bean
public static NoOpPasswordEncoder passwordEncoder() {
    return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
}`

感谢您的帮助:)

【讨论】:

    猜你喜欢
    • 2018-04-26
    • 2016-04-14
    • 2019-03-10
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    • 2018-09-07
    相关资源
    最近更新 更多