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

 

posted @ 2022-01-13 19:56  IT6889  阅读(79)  评论(0编辑  收藏  举报