只要在 spring boot 中加入 spring security 就会自动启用七安全机制,默认每次访问接口都会进行验证。但是由于某些原因,不想使用 spring security,可以选择禁用 spring security,以前可以使用 security.basic.enabled=false
禁用,但是在在某个版本后已经不支持通过该配置禁用了,在 spring-configuration-metadata.json 文件中有明确标识 :
{
"name": "security.basic.enabled",
"type": "java.lang.Boolean",
"description": "Whether to enable basic authentication.",
"defaultValue": true,
"deprecated": true,
"deprecation": {
"level": "error",
"reason": "The security auto-configuration is no longer customizable. Provide your own WebSecurityConfigurer bean instead."
}
}
这里说了 security 不在支持自动配置了,支持自定义 WebSecurityConfigurer bean,org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter
是 WebSecurityConfigurer
的实现之一,新建一个配置类 WebSecurityConfig
继承抽象类 WebSecurityConfigurerAdapter
:
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* WebSecurityConfig
*
* @author xiaohe
*/
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests(authorizeRequests ->
// 所有请求均放过, spring security 就没有什么用了
// anyRequest() 限定任意的请求
// permitAll() 无条件允许访问
authorizeRequests.anyRequest().permitAll()
);
}
}
虽然启动的时候加入了 spring security,但是每个请求都在配置中放过了请求,所以和没加区别是不大的。