java - 我如何将凭据从rest客户端发布到spring securityrest api?

标签 java spring rest spring-boot spring-security

大家好!

我有 2 个应用程序。 第一个是 Spring Boot REST API(我在“localhost:8080”上运行它)。 第二个是 Spring Boot REST 客户端(它是通过 RestTemplate 编写的,我在“localhost:8090”上运行它)。

我从 REST 客户端向 REST API 发送请求,效果很好 - 我得到了带有用户列表的 HTML 页面。

但是我想在我的项目中使用 Spring security。

如何将用户名和密码从 REST 客户端发布到 REST API Spring security?

我猜,可能是基本身份验证或httpClient。

我说得对吗?请回答我!

最佳答案

您可以使用 token 解决此问题。步骤如下所示:

  1. 客户端第一次使用登录功能时,会将凭据发送到服务器请求身份验证。

  2. 服务器将检查凭据以查看是否正确,如果正确,它将创建一个 token 并将其连同其他一些信息返回给客户端:组、角色、名称...

  3. 每当客户端调用 api 时,它都会在请求 header 中附加 token ,服务器需要有一个过滤器来检查 header 是否携带有效 token ,然后授权该请求访问系统。

  4. 任何 api 端点在执行之前都会检查客户端是否具有权限。可以从第3步开始提供权限。

关于java - 我如何将凭据从rest客户端发布到spring securityrest api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57600872/

相关文章:

java - 如何与 CA 连接以签署 ssl 证书?

Java 将作为 Rest API 响应返回的 pdf 转换为文本

java - Aspectj(使用 spring)- 在没有传播方法的情况下仅在抛出方法上记录一次异常抛出

java - @Value 注解不从属性文件中注入(inject)值

java - 为具有不同参数的同一 URL 模式创建两个方法(带参数和不带参数)

json - 所有dtos都需要在rest调用中序列化吗

java - 如何让 java ClassLoader 知道可用的类?

java - 局部变量不能在内部类中使用。那么为什么这段代码可以工作呢?

Java - 根据当前日期检查文件名?

java - 我应该如何在本地java应用程序中实现数据库