4Manuals

  • PDF Cloud HOME

在Spring Security OAuth 2客户端中从本地数据库绑定用户 Download

    Spring MVC @ModelAttribute未填充AJAX发布请求 @ EnableOAuth2Sso和@EnableResourceServer(同一应用程序中的客户端和资源行为) Spring Singleton更新集 在测试中使用ConfigurationProperties 无法从Spring Boot的属性文件中加载密钥,@ Autowired为null 在不与数据库对话的方法中使用Spring的@Transactional注释是否有意义? 我需要正确的方法将模板文件放置在微服务中 卡在OAuth 2.0和护照实施中 我应该以哪种方式处理异常? Google O-Auth for DBM

在我的项目中,我有一个基于Spring的REST API(无Spring Boot),在其中我对用户进行身份验证并向他们提供JWT,以便与该API进行进一步的通信。一切都在一台服务器内发生。我使用Spring Security作为我的身份验证核心,并使用定制的JWT身份验证机制。该API主要由Web UI使用,并且不应更改。

现在,我需要放弃用户名/密码身份验证,而转而使用OAuth 2(Okta),但是我仍然需要维护本地用户存储,因为我在其中保留了用户属性,权限和其他详细信息,而这些内容无法从OAuth 2提供程序。我正在寻找将用户从本地数据库绑定到OAuth 2授权服务返回的最佳方法。如果用户不在数据库中,则应自动创建该用户。

我一直在寻找一些提示,但找不到适合我需求的合适示例或解释。我知道我可以手动实现授权代码流,从授权端点重定向创建/获取用户,但我想知道是否还有更优雅的方法(也许使用 spring-security-oauth2-client )存在。

蓄积,流程应如下所示:

  1. 爱丽丝进入Foo服务器上托管的页面。
  2. 如果Alice没有有效的JWT,则会看到一个按钮,上面写着:“使用Okta登录”
  3. Alice单击此按钮,然后执行Okta登录页面上的所有必要身份验证步骤。
  4. 完成后,Foo服务器将使用授权码接收重定向,然后将其用于获取身份验证令牌和ID(可以是电子邮件或OAuth ID)。
  5. 如果数据库中已经有该ID的用户,则将其用于填充 Authentication 对象。
    1. 如果没有,则应创建它。
  6. 创建JWT并将其作为“重定向过程”的一部分返回。

如果我在某个地方错了,请纠正我,也许我的想法太复杂或没有意义。

0 个答案:

没有答案



Similar searches
    如何调用带有组名或标签的复选框? Java编译过程步骤 SignalR Irequest用户为空 Samsung RF267AFBP Refrigerator User Manual 绘制来自二进制数组[1、0、1、0、0、1、0、1、1、1、0、1]的平方信号?