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