一、基础
官网地址:spring.io/projects/spring-security
Spring Security是一个功能强大,可高度定制的认证与授权的框架;重点处理认证和授权2个功能
1.1)认证
就是判断一个用户身份是否合法的过程,用户访问系统资源时系统要求验证用户的身份信息,根据认证的结果来进行后一步的操作;认证是为了保证系统的隐私数据与资源;
1.2)授权
授权是用户通过认证后,根据用户的权益来控制用户可以访问资源的过程;授权是为了更细粒度地对隐私数据进行划分,授权是发生在认证通过之后;
1.3)会话
系统为了保持当前用户的登录状态所提供的机制;常见的方式有session、token等方式;
二、入门示例
2.1)加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
复制代码
2.2)启动类配置
//@EnableWebSecurity这个注解是SpringSecurity框架提供的注解,加入从注解后即集成了Security
@EnableWebSecurity
@SpringBootApplication
public class SecurityDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SecurityDemoApplication.class, args);
}
}
复制代码
2.3)构建访问交互
@RestController
@RequestMapping("/testDemo")
public class TestDemoController {
/**
* 功能描述:测试访问1
*
* @author : XXSD
* @date : 2021/1/7 0007 上午 10:56
*/
@RequestMapping("/demo1")
public String demo1() {
return "demo1";
}
}
复制代码
2.4)启动项目并访问
在浏览器输入: http://localhost:8081/testDemo/demo1
得到如下结果;注意:这里我们没有配置任何的页面,但是项目启动后输入上面的地址,会打开一个界面,这个界面是SpringSecurity为我们提供的一个默认界面;
在代码中并没有添加任何的登录页面,但是这里却出现了,显然是Security框架提供过的;
回顾控制台日志信息:
Connected to the target VM, address: '127.0.0.1:49458', transport: 'socket'
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.4.1)
2021-01-07 11:04:25.322 INFO 52984 --- [ main] xinyan.SecurityDemoApplication : Starting SecurityDemoApplication using Java 1.8.0_202 on JKY8986KLO9O81T with PID 52984 (F:\Tu_Ling\xuexi-demo\security-demo\target\classes started by Administrator in F:\Tu_Ling\xuexi-demo)
2021-01-07 11:04:25.327 INFO 52984 --- [ main] xinyan.S