一、概念
Spring Security 是一个能够为基于Spring的企业应用系统提供声明式的安全訪问控制解决方式的安全框架,应用的安全性包括用户认证(Authentication)、用户授权(Authorization)和 攻击防护(防止伪造身份)。用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统。用户认证一般要求用户提供用户名和密码。系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限执行某个操作。
二、Spring Security相关依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
三、Hello World
①Spring Security配置类
@Configuration
@EnableWebSecurity
public class BrowserSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//http.httpBasic()//spring默认校验方式(弹窗)
http.formLogin()//表单登陆(未配置登录页,采取默认页面)
.and()
.authorizeRequests()//对请求授权
.antMatchers("/user**").permitAll()
.anyRequest()
.authenticated();//进行身份认证
}
}
②Spring Boot启动类
@SpringBootApplication
@ComponentScan(basePackages = {"com.*.*"})//扫描需要被注入的类
public class SecurityDemoApplication {
public static void main(String args[]){
SpringApplication.run(SecurityDemoApplication.class, args);
}
}
③用户界面:
输入链接http://localhost:8080/user,跳转至http://localhost:8080/login进行身份认证
默认用户名为user,默认密码为后台控制台输出的密码
复制登录即可。
注:
具体鉴权原理和流程可参考 Spring Security渐入佳境(一)[附] --SpringSecurity的基本原理及源码剖析。