Spring Security核心功能:
认证:(你是谁)
验证:(你能干什么?即拥有哪些权限)
话不多说,开干吧!!
一、创建maven项目
二、加入依赖
<!--加入 spring boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.0.6.RELEASE</version>
</parent>
<!--web 开发相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--spring security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
三、创建一个启动类
@SpringBootApplication
public class FirstApplication {
public static void main(String[] args) {
SpringApplication.run(FirstApplication.class,args);
}
}
四、创建一个Controller类
@RestController
@RequestMapping("/hello")
public class HelloSecurity {
@RequestMapping("/java")
public String sayHello(){
return "你好,Java";
}
}
五、测试,运行启动类然后在浏览器输入localhost:8080/hello/java
用户名为user,密码为idea控制台输出的密码:
登录成功后,即可看到我们controller类中输出的语句
六、使用自己定义用户密码进行登录
首先在resources文件夹下面创建application.yml文件,在yml文件中配置如下内容
然后运行启动类 ,在浏览器输入地址后,填写自己自定义的账密进行登录就ok了
七、如果不想启用Secuirty框架,在启动类的注解上面加入以下代码
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
那么security框架为什么能够在controller执行之前就可以先进行登录呢,个人理解是 security 充分利用了依赖注入(DI)和面向切面编程(AOP)功能,为 应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复 代码的工作。是一个轻量级的安全框架。它与 Spring MVC 有很好地集成
而且我们通过maven查看依赖也可以看出,security依赖中集成了aop的依赖包