我是否有任何特定于Spring Boot Security的解决方案?

时间:2018-06-30 21:54:30

标签: spring spring-boot spring-security jwt

我从4月份开始使用spring mount,我想尝试一下我得到的任何想法,现在我想知道我正在尝试执行的操作是否可行,如果可以的话,是否有我不知道的任何特定安全机制的。

我成功地使用启用了基本auth和ssl的安全API来实现身份验证和授权,该API可以处理带有自制成分的披萨制作。

现在,我想创建另一个API,该API可以处理比萨的帐单,因此该api将使用以前的API。

这种重用原理引起了我的注意,是否有可能在我的第二个api中实现一个安全机制,该机制询问我的第一个当前用户是否已登录?

我脑海中的情景看起来像

  

API Pizza中的用户身份验证和授权

     

用户要求api帐单获取比萨饼帐单(一些带有标头的请求...)

     

比尔api询问披萨api是否已验证请求来源

     

pizza api回答是否通过验证

     

比尔api将身份验证状态存储在内存中

通过谷歌搜索,我不确定基于spring安全令牌的身份验证是否是解决方案。

注意:我只使用http请求,没有表单或前端

1 个答案:

答案 0 :(得分:1)

该解决方案的高级概述如下:

  1. 建立OAuth2服务器和Zuul网关。
  2. 服务“ A”通过OAuth2身份验证服务器进行身份验证,并使用存储在会话中的OAuth2令牌通过Zuul网关(即Zuul代理调用服务“ B”)调用服务“ B”的其余端点,并在HTTP中添加OAuth2令牌授权”标头。
  3. Zuul通过检查标头来查找服务“ B”端点,使用其过滤器传播服务“ A”的OAuth2令牌,并在“授权”标头中转发具有相同令牌的呼叫。
  4. 服务“ B”是受保护的资源,它接收请求,检查标头并针对OAuth2服务器验证接收到的令牌。

您还可以让Zuul使用@EnableOAuth2Sso批注进一步自动传播OAuth2访问令牌,并针对OAuth2服务授权传入的请求。