安全框架(一)Spring Security 简介

安全框架:

Spring Security+Shiro+OAuth2在一个项目里面
github地址:
https://github.com/ZiCheng-Web/springboot-security

在 Java 开发领域常见安全框架有 Shiro 和Spring Security。
Shiro 是个一个轻量级的安全管理框架,提供了认证、授权、
会话管理、密码管理、缓存管理等功能,。
Spring Security 个相对复杂的安全管理框架,功能比Shiro 更加强大,权限控制细粒度更高,对 OAuth 支持 更友好,又因为 Spring Security 源自
Spring 家族,因此可以和 Spring 架无缝整合,特别是 Spring Boot 中提供的自动化配 方案,可以让 Spring Security 的使用更加便捷。


Spring Security 有两个重要的概念。
分别是 Authentication (认证) 和 Authorization(授权)。
认证:即确认用户是否登录,并对用户进行管控。
授权:即确定用户所拥有的功能权限,并对用户权限进行管控。


创建Springboot+SpringSecurity的项目
pom.xml

<?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>

    <groupId>com.zicheng</groupId>
    <artifactId>springsecurity01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springsecurity01</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--导入SpringSecurity依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--导入web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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>
                <configuration>
                    <mainClass>com.zicheng.SpringSecurity01Application</mainClass>
                </configuration>
            </plugin>

        </plugins>
    </build>
</project>

配置启动类

@SpringBootApplication
public class SpringSecurity01Application {
    public static void main(String[] args) {
        SpringApplication.run(SpringSecurity01Application.class);
    }
}

写一个HelloController简单测试一下

@RestController
public class HelloController {
        //简单测试一下
        @GetMapping("/ hello")
        public String hello(){
            return "hello";
        }
}

启动项目,访问http://127.0.0.1:8080/
在这里插入图片描述
默认账号为user,密码在日志控制台可以找到。在这里插入图片描述
application.yml配置用户名密码
用户名:admin
密码:123456
角色:admin

spring:
  security:
    user:
      name: admin
      password: 123456
      roles: admin

启动项目,登陆使用的就是配置的用户名和密码,即admin和123456.

发布了44 篇原创文章 · 获赞 5 · 访问量 895

猜你喜欢

转载自blog.csdn.net/qq_40634246/article/details/104676504