springboot系列21: SpringSecurity初体验
Spring Security是啥?
SpringSecurity是基于Spring AOP和Servlet过滤器的安全框架。它提供全面的安全性解决方案,同时在Web 请求级和方法调用级处理身份确认和授权。在 Spring Framework 基础上,Spring Security 充分利用了依赖注入(DI,Dependency Injection)和面向切面编程(AOP)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。它是一个轻量级的安全框架,它确保基于Spring的应用程序提供身份验证和授权支持。它与Spring MVC有很好地集成,并配备了流行的安全算法实现捆绑在一起。安全主要包括两个操作“认证”与“验证”(有时候也会叫做权限控制)。--引用网络。
从这段话可以看出SpringSecurity是一个安全框架,具有认证和验证功能,我知道还有一种安全框架:Apache Shiro,他们的区别在哪呢?
相同点:
(1)认证功能(2)授权功能(3)加密功能(4)会话功能(5)缓存支持(6)remeberMe功能不同点:(1)Shiro依赖性低,不需要任何框架和容器,可以独立运行,而Spring Security依赖Spring容器。(2)Shiro的配置和使用比较简单,Spring Security上手复杂些。
好了,下面就开始在springboot项目中搭建Security,搞起。首先还是老规矩,pom文件引入jar
   <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>
下面写一个请求资源如下:
/**
 * @version 1.0
 * @description: 请求资源
 * @date 2020-09-17 21:44
 */
@RestController
public class HelloController {
    @GetMapping("/hello")
    public String getHello() {
        return "Hello,Spring Security";
    }
}
 浏览器访问结果如下,是不是很意外^V^

在启动控制台有这么一段日志,其实SpringSecurity 默认用户名user,密码就是日志控制台的密码:
Using generated security password: 985f338c-c938-4fd1-a759-db16058f8221
输入用户名或密码就可以访问资源了。
有小伙伴问了,那能不能关闭验证功能呢?有的,就是在启动类排除SecurityAutoConfiguration
/**
 * @version 1.0
 * @description: Spring-Security初体验
 * @date 2020-09-17 21:43
 */
@SpringBootApplication(exclude= SecurityAutoConfiguration.class)
public class SecurityApplication {
    public static void main(String[] args) {
        SpringApplication.run(SecurityApplication.class, args);
    }
}
那又有小伙伴会问了,能不能修改登录的默认账户和密码呢?可以的呀,在配置application.properties 文件中添加spring.security.user.name、spring.security.user.password 配置即可。
spring.security.user.name = admin spring.security.user.password = 123456
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号