如何保护 Spring Boot Web 应用程序中的 REST API 安全?

ash*_*ram 5 rest spring-security spring-boot

我有两个 Spring Boot Web 应用程序。两个应用程序都有不同的数据库和不同的用户组。此外,这两个应用程序都使用 Spring Security 进行身份验证和授权,并且工作正常。

在任何给定点,我都会运行第一个应用程序的一个实例和运行第二个 Web 应用程序的多个实例。

我想公开第一个 Web 应用程序(运行一个实例)中的 REST API,并能够使用第二个 Web 应用程序(运行多个实例)中的 REST API。

如何确保可以通过正确的身份验证并仅通过第二个应用程序的实例安全地访问 REST API。

reo*_*eos 3

如果您可以更改安全性,我建议您使用 OAUTH2。基本上,它会生成一个令牌,用于您的 APP2 实例中进行 API 调用。您可以在这里查看更多内容。

https://spring.io/guides/tutorials/spring-boot-oauth2/

http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/

但如果您无法更改应用程序的安全性,则可以继续使用当前的架构。在APP1中您可以创建一个用于API调用的用户,该用户只能访问API服务。在您的 APP2 中,您需要存储访问 APP1 的凭据。最后登录 APP1 并使用 HTTP 客户端调用 API,您可以使用 Spring RestTemplate 或 Apache HttpComponents 客户端。