SpringBoot集成Spring Security(1)- 初体验

学习Spring Security之前我们需要先了解些基本概念

什么是认证

为了保护系统的隐私数据和资源,判断一个用户的身份合法性的过程就是认证,比如现在账号密码登录,扫描二维码,指纹认证,人脸识别其实都包含了认证过程

什么是授权

授权是通过认证的用户根据用户的权限来控制用户访问资源的过程,比如支付宝使用红包功能必须要绑定银行卡,点外卖必须添加家庭住址

简介

Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准,致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring Security的真正强大之处在于可以轻松扩展以满足自定义要求

初体验

新建SpringBoot的Web工程,在pom.xml中添加web和Spring Security依赖

      
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-security
        

新建配置类SecurityConfig重写configure(HttpSecurity http)和configure(WebSecurity web)

@Configuration      //配置类
@EnableWebSecurity      //开启SpringSecurity认证授权
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        
        http.authorizeRequests()
                .antMatchers("/").permitAll()      //放行主路径
                .anyRequest().authenticated()      //其他的请求全部经过验证
                .and()
                .logout().permitAll()              //允许任意权限访问注销页面
                .and()
                .formLogin();                      //允许表单登录
        http.csrf().disable();
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        //忽略静态资源
        web.ignoring().antMatchers("/js/**", "/css/**", "/images/**");
    }
}

添加测试类TestController

@RestController
public class TestController {

    @GetMapping("/")
    public String home() {
        return "hello spring boot";
    }

    @GetMapping("/hello")
    public String hello() {
        return "hello world";
    }
}

启动项目,浏览器输入localhost:8080 结果如下,没有被拦截

再次输入localhost:8080/hello,此时被Security拦截,跳转到登陆页面

你可能感兴趣的:(SpringBoot集成Spring Security(1)- 初体验)