Spring Security学习笔记(一):Spring Security初体验

分类:
JAVA
标签:
SpringBoot
网站安全
作者:
何鑫
创作时间:
2020/01/18 10:33:41

摘要:Spring Security框架搭建与初体验

Java安全框架——Spring Security

就目前来说,在Java开发领域,运用比较多的安全框架就是Apache的Shiro和Spring自家的Spring Security,两者都是非常优秀的安全框架,就掌握难易度来说,Spring Security可能更难一点,本系列文章将结合自己的学习实际,以实用为原则,对Spring Security的使用做一个比较完整的记录。

本系列文章将基于SpringBoot(2.2.3.RELEASE)并假设读者已掌握SpringBoot的基本运用。

框架搭建及认证功能初体验

新建一个Maven项目,名称为spring-security-demo。目录结构如下:

在pom文件中加入springboot及spring security相关依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- 继承springboot父包 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.3.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>cn.besthexin</groupId>
    <artifactId>spring-security-demo</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

        <!-- springboot 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>

        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

创建SpringBoot启动类,新建配置文件,准备静态资源文件夹,最终结构如下:

创建一个Controller,并添加一个hello方法:

@RestController
public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
        return "hello,spring security!";
    }

}

启动项目,并请求我们编写的/hello,我们会发现,我们来到了一个登录页:

我们没有设置过用户名和密码呀,为什么会跳出这个页面?用户名和密码是什么呢?

其实这是Spring Security默认给我们开启的,默认用户名为user,密码会在控制台打印出来:

我们尝试用用户名和密码提交:

顺利访问到我们想要访问的内容!

我们想自定义用户名和密码怎么办?比如用户名为hexin,密码为123456。

这里先介绍一种最简单的方式。打开application.yml配置文件,添加如下配置:

spring:
  security:
    user:
      name: hexin # 用户名
      password: 123456 # 密码

 重启服务,再次访问,再次来到登录页面,输入我们自定义的用户名和密码,提交访问:

成功!

最后的总结

在本文中,我们基于SpringBoot初步体验了一下Spring Security的认证功能,Spring Security是个很强大的安全框架,非常灵活,后续我们将根据Spring Security的配置来自定义我们需要的一些认证和授权功能,欢迎继续关注!


发表评论

温馨提示: 评论先审核后发布, 请勿发表不良言论

所有评论