SpringBoot簡單使用SpringSecurity

Spring Security 介紹

Spring Security 是一個開源的安全框架,負責對web應用進行保護。

Spring Security 簡單原理

在這裏插入圖片描述

  • 身份認證機構-負責對資源訪問身份的檢驗
  • 控制機構-負責控制可以訪問的身份
  • 攔截器-執行身份認證機構和控制機構制定的規則

FilterSecurityInterceptor等是對AbstractSecurityInterceptor(攔截器)的具體實現

集成Spring Security

引入pom.xml依賴

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

在/src/main/java/com.example.demo下新建一個包security
在包下新建一個類 WebSecurityConfig

/**
 * 描述:Security 配置類
 * @author wangyu
 * @date 2019/5/19
 */

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

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

        //路由策略和訪問權限的簡單配置
        http
                .formLogin()  //啓用默認登錄頁面
                .failureForwardUrl("/login")  //登錄失敗返回url
                .defaultSuccessUrl("/User/test")  //登錄成功跳轉
                .permitAll() ;  //登錄頁面全部可以訪問
        super.configure(http);
    }

    /**
     * 描述:配置內存用戶
     * @param auth
     * @throws Exception
     */
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth
                .inMemoryAuthentication()
                .withUser("唐伯虎").password("123456").roles("ADMIN")
                .and()
                .withUser("秋香").password("123456").roles("USER");
    }

    @SuppressWarnings("deprecation")
    @Bean
    public static NoOpPasswordEncoder passwordEncoder() {
        return (NoOpPasswordEncoder) NoOpPasswordEncoder.getInstance();
    }
}

@EnableWebSecurity 開啓Security框架
configuration 方法 :重寫父類的方法,配置權限控制
configurationGlobal 方法 :對用戶的身份進行配置

Security測試

在這裏插入圖片描述

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