在VPS上搭建SS(Spring Security)的详细步骤指南
卡尔云官网
www.kaeryun.com
在虚拟服务器(VPS)上搭建Spring Security(SS)是一个常见的任务,特别是在构建Spring Boot应用时,Spring Security是一个强大的安全框架,用于保护Spring Boot应用免受常见的安全威胁,以下是详细的步骤指南,帮助您在VPS上成功搭建Spring Security。
确保服务器配置
在开始搭建Spring Security之前,确保您的VPS服务器满足基本的安全要求,以下是需要满足的条件:
- 内存:至少2GB内存,最好4GB以上。
- 带宽:确保足够的带宽,通常建议至少10Mbps。
- 存储:至少10GB的SSD空间。
- 操作系统:使用CentOS 7或更高版本的Linux。
- 防火墙:确保防火墙设置为全开放,或者在运行Spring Boot时使用
--firewall off
参数。
安装必要的软件
在VPS上安装Spring Boot和Spring Security所需的软件包:
sudo apt-get update && sudo apt-get install -y spring-boot spring-security-starter-web
配置数据库连接
Spring Security需要数据库来存储用户信息,以下是配置数据库连接的步骤:
1 安装MySQL
安装MySQL数据库:
sudo apt-get install -y mysql-server mysql-client
2 配置MySQL服务
确保MySQL服务已启动并配置为全开放:
sudo systemctl status mysql sudo systemctl enable mysql sudo systemctl start mysql
3 创建数据库
创建一个用于Spring Security的数据库:
sudo mysql -u root -p -e "CREATE DATABASE spring_security;"
4 创建并切换到数据库
创建一个默认用户并切换到数据库:
sudo mysql -u root -p -e "CREATE USER spring_security_user;" sudo mysql -u root -p -e "GRANT ALL PRIVILEGES ON DATABASE spring_security TO spring_security_user;" sudo mysql -u root -p -e "USE spring_security;"
5 配置MySQL数据文件位置
确保Spring Security能够访问数据库:
sudo mysql -u root -p -e "ALTER DATABASE spring_security SET DEFAULT-character-set = utf8mb4, default-collation = utf8mb4_unicode_ci collation, data_file = /var/lib/mysql/data/spring_security_1";
配置Spring Security
1 创建配置文件
创建spring-security.xml
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <security> <filter> <id>securityFilter</id> <requestFilter> <id>requestFilter</id> <allowedHosts>example.com</allowedHosts> <allowedUser>root</allowedUser> </requestFilter> <requestHeaderFilter> <id>requestHeaderFilter</id> <requestHeaders>all</requestHeaders> </requestHeaderFilter> <filter> <id>filter</id> <idFilter> <idFilterAction>check</idFilterAction> <idFilterCheck>securityFilter</idFilterCheck> </idFilter> </filter> </filter> <id> <idNumber>1</idNumber> <idType>INTEGER</idType> <idName>id</idName> </id> <username> <usernameNumber>1</usernameNumber> <usernameType>INTEGER</usernameType> <usernameName>username</usernameName> </username> <password> <passwordRegex>.*[a-zA-Z0-9]{8,}([a-zA-Z0-9]{2,}([a-zA-Z0-9]{2,}))?(\.\w+)?(\.\.\w+)?</passwordRegex> <passwordRequired>YES</passwordRequired> </password> <user> <userType>TEXT</userType> <userInput>NONE</userInput> <userInputType>NONE</userInputType> <userPassword>spring-security</userPassword> </user> <passwordStore> <passwordStoreType>EXTERNAL_CREDENTIALS</passwordStoreType> <passwordStoreFile>spring-security-pxw</passwordStoreFile> </passwordStore> <idStore> <idStoreType>NONCE</idStoreType> <idStoreFile>spring-security-nsf</idStoreFile> </idStore> </security>
2 设置Spring Security的启动配置
在VPS上设置Spring Security的启动配置:
sudo nano /etc/systemd/system/spring-security.service.d/enable spring-security.service
[Unit] Description=Enable Spring Security After=network.target [Service] ExecStart=/opt/spring-boot/bin/spring-boot-starter-web.sh Restart=always User=spring-security Group=spring-security Description=Start Spring Security [Install] WantedBy=multi-user.target
3 启动Spring Security
sudo systemctl daemon-reload sudo systemctl enable spring-security.service sudo systemctl start spring-security.service
测试Spring Security
1 访问控制台
使用浏览器访问:
curl http://localhost:8080
2 检查身份验证
在控制台中输入:
java -cp spring-boot-starter-web.jar net spring.security.common.request.UserLogin username=your_username&password=your_password
3 检查过滤器
在控制台中输入:
java -cp spring-boot-starter-web.jar net spring.security.common.request.RequestFilter allowedHosts=example.com
配置Spring Boot应用
1 创建应用
mkdir myapp cd myapp git clone https://github.com/spring-boot/spring-boot-starter-web cd spring-boot-starter-web mvn clean install
2 添加Spring Security依赖
在pom.xml
中添加依赖:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.1.5</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-security-web</artifactId> <version>3.1.5</version> <scope>runtime</scope> </dependency> </dependencies>
3 启动应用
mvn clean install mvn spring-boot:run
在VPS上搭建Spring Security需要以下几个步骤:
- 确保服务器配置满足要求。
- 安装必要的软件包。
- 配置数据库连接,确保Spring Security能够访问数据库。
- 创建并配置Spring Security的配置文件。
- 设置Spring Security的启动配置。
- 启动Spring Security。
- 测试Spring Security的功能。
通过以上步骤,您应该能够成功在VPS上搭建Spring Security,保护您的Spring Boot应用免受安全威胁。
卡尔云官网
www.kaeryun.com