# Spring Boot 框架

我们支持 war 包、jar 包两种部署模式。如果是 war 包的形式，直接参考相应服务器文档即可；如果是内嵌服务器的 jar 包形式，请参考本文档安装。对于 WebGoat 项目，对应的 jar 包通常为 `webgoat-XXX.jar`。

### 半自动安装 <a href="#auto" id="auto"></a>

从 v1.2.0 版本开始，我们加入了 SpringBoot 半自动安装支持。之前的版本请参考手动安装章节。

**1. 安装软件**

SpringBoot 没有提供通用的启动脚本，所以我们的半自动安装程序只会释放文件。在解压缩后，首先进入到解压后的目录中，e.g **rasp-20181221**

**如果你要开启远程管理**，请先参考 [管理后台 - 添加主机](https://github.com/baidu-security/openrasp-docs-old/blob/main/setup/panel.html#add-host) 文档，找到 `app_id/app_secret/backend_url` 三个关键参数，然后执行如下命令，

```
java -jar RaspInstall.jar -nodetect -install <spring_boot_folder> -backendurl http://XXX -appsecret XXX -appid XXX
```

**如果你只是运行单机版**，只需要指定 -install 参数，

```
java -jar RaspInstall.jar -nodetect -install <spring_boot_folder>
```

这里的 `<spring_boot_folder>` 通常是 XXX.jar 包所在的目录。具体 jar 的名字请咨询业务线。

**2. 配置启动参数**

假设 `spring_boot_folder` 目录为 `/opt/spring-boot/`。

修改 SpringBoot 启动参数，增加 `-javaagent` 绝对路径参数（注意将 `-jar` 放到命令最末尾），e.g

> 如果JDK版本为6-8，那么启动参数如下配置

```
java -javaagent:/opt/spring-boot/rasp/rasp.jar -jar XXX.jar
```

> 如果JDK版本为11，那么启动参数如下配置

```
java --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED -javaagent:/opt/spring-boot/rasp/rasp.jar -jar XXX.jar
```

**3. 检查安装是否成功**

访问服务器，检查是否存在 `X-Protected-By: OpenRASP` 响应头即可。

### 手动安装 <a href="#manual" id="manual"></a>

**1. 安装软件**

进入到 Spring Boot 所在目录，通常是 jar 所在的目录，e.g `/opt/spring-boot`

复制安装包内的 `rasp` 目录到当前目录，

```bash
cp -R ~/Downloads/rasp-20170721/rasp .
```

OpenRASP 需要在 rasp 目录下释放一些动态链接库，所以还需要修改 rasp 目录的权限，e.g

```
chmod 777 -R rasp
```

**2. 开启远程管理**

配置方法同 [Tomcat 开启远程管理](https://github.com/baidu-security/openrasp-docs-old/blob/main/install/manual/tomcat.html#linux-rmm)，不再赘述。

**3. 配置启动参数**

假设 `rasp` 目录释放到了 `/opt/spring-boot/rasp/`。

修改 SpringBoot 启动参数，增加 `-javaagent` 绝对路径参数（注意将 `-jar` 放到命令最末尾），e.g

> 如果JDK版本为6-8，那么启动参数如下配置

```
java -javaagent:/opt/spring-boot/rasp/rasp.jar -jar XXX.jar
```

> 如果JDK版本为11，那么启动参数如下配置

```
java --add-opens java.base/jdk.internal.loader=ALL-UNNAMED -javaagent:/opt/spring-boot/rasp/rasp.jar -jar XXX.jar
```

**4. 检查安装是否成功**

访问服务器，检查是否存在 `X-Protected-By: OpenRASP` 响应头即可。
