只要在 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,但是每個請求都在配置中放過了請求,所以和沒加區別是不大的。