spring boot 2.2.2 中禁用 spring security

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章