- Spring Security 教程
- Spring Security - 首页
- Spring Security - 简介
- Spring Security - 架构
- Spring Security - 项目模块
- Spring Security - 环境搭建
- Spring Security - 表单登录
- Spring Security - 自定义表单登录
- Spring Security - 注销
- Spring Security - 记住我
- Spring Security - 重定向
- Spring Security - 标签库
- Spring Security - XML 配置
- Spring Security - 身份验证提供程序
- Spring Security - 基本身份验证
- Spring Security - AuthenticationFailureHandler
- Spring Security - JWT
- Spring Security - 获取用户信息
- Spring Security - Maven
- Spring Security - 默认密码编码器
- Spring Security – 密码编码
- Spring Security - 方法级别
- Spring Security 有用资源
- Spring Security - 快速指南
- Spring Security - 有用资源
- Spring Security - 讨论
Spring Security - Maven
Spring Security是一个类似于Spring框架的模块化框架。Spring Security有三个主要的模块,如下所示:
Spring Security Core − 提供身份验证和访问控制功能。此模块是所有Spring Security项目/模块所必需的。
Spring Security Web − 为基于Web的项目提供Spring Security支持。
Spring Security Config − 提供Spring Security XML命名空间和注解。
对于其他API支持,例如LDAP、OpenID、ACL、CAS和OAuth,Spring Security提供相应的模块,如下所示:
LDAP − Spring Security LDAP
OpenID − Spring Security OpenID
ACL − Spring Security ACL
CAS − Spring Security CAS
OAuth2 − Spring Security OAuth
Maven 模块
要在Maven中开始使用Spring Security和Spring集成,我们可以定义具有其版本的属性,如下所示:
属性
<properties> ... <spring.security.version>5.3.4.RELEASE</spring.security.version> <spring.version>5.2.8.RELEASE</spring.version> </properties>
Spring Security和Spring框架的版本是独立的,并且处于不同的发布周期,因此它们的兼容版本可能不同。
依赖项
Spring Security的Maven项目遵循spring-security-*命名约定,Spring项目类似于spring-*。对于上面讨论的项目,以下是Maven依赖项列表:
Spring Security Core − spring-security-core
Spring Security Web − spring-security-web
Spring Security Config − spring-security-config
LDAP − spring-security-ldap
OpenID − spring-security-openid
ACL − spring-security-acl
CAS − spring-security-cas
OAuth2 − spring-security-oauth2
对于Spring,我们可以使用spring-webmvc项目作为顶级依赖项,Maven将自动解析以下相关依赖项。
Spring Core − spring-core
Spring Context − spring-context
Spring Beans − spring-beans
Spring AOP − spring-aop
Spring Expressions − spring-expression
Spring JCL − spring-jcl
Spring Web − spring-web
Spring WebMVC − spring-webmvc
示例 - Spring 的 POM
以下是一个示例POM.XML,我们在其中使用Maven使用Spring和Spring Security依赖项。
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tutorialspoint</groupId>
<artifactId>SpringSecurityFormLogin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Spring Security Form Login</name>
<description>A Sample Spring Security Form Login Project</description>
<packaging>war</packaging>
<properties>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<spring.security.version>5.3.4.RELEASE</spring.security.version>
<spring.version>5.2.8.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>
Spring Boot - Spring Security 集成
Spring Boot使用spring-boot-starter-security作为启动依赖项,提供了与Spring Security更简单、更容易的集成。它将自动解析所有相关依赖项。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
示例 - Spring Boot 的 POM
以下是一个示例POM.XML,我们在其中使用Maven使用Spring Boot和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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.3.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.tutorialspoint.security</groupId>
<artifactId>formlogin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>formlogin</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>21</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity6</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</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>
</plugin>
</plugins>
</build>
</project>