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测试

在这里插入图片描述

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