gpt4 book ai didi

spring - 吉普斯特 2 : What is the difference between the authentication option?

转载 作者:行者123 更新时间:2023-12-02 05:00:07 24 4
gpt4 key购买 nike

我已将 jhipster 生成器从版本 1 更新到版本 2。在之前的版本中,我们在生成新项目时必须选择身份验证。我们可以在 Cookie 身份验证和 token 身份验证(使用 OAuth)之间进行选择。这对我来说非常清楚。但在 2.1.1 版本中,我们现在有三个选择:

1 > HTTP Session Authentication (stateful, default Spring Security mechanism)
2 > OAuth2 Authentication (stateless, with an OAuth2 server implementation)
3 > Token-based authentication (stateless, with a token)

我想对网络和移动应用程序(ionic-framework)使用身份验证,2 和 3 之间是一对一?此选择是否使我的应用程序可以使用集群进行扩展?谢谢

最佳答案

您将在此处了解有关 jhipster 身份验证类型的基本信息

http://jhipster.github.io/security/

根据我在 ionic-framework 中使用 jhipster REST api 的个人经验,我可以说不要对移动应用程序(ionic-framework)使用 HTTP session 身份验证,因为移动应用程序无法运行以及 HTTP session 身份验证所依赖的一般 cookie。

Oauth2 和 JWT 都可以与 ionic 混合应用程序配合良好

HTTP session 身份验证

这是“经典的”Spring Security 身份验证机制,但我们对其进行了相当显着的改进。它使用 HTTP session ,因此它是一种有状态机制:如果您计划在多个服务器上扩展应用程序,则需要一个具有粘性 session 的负载均衡器,以便每个用户都位于同一服务器上。

OAuth2 身份验证

OAuth2 是一种无状态安全机制,因此如果您想在多台计算机上扩展应用程序,您可能会更喜欢它。 Spring Security 提供了 OAuth2 实现,我们已为您配置了该实现。

OAuth2 的最大问题是需要多个数据库表来存储其安全 token 。如果您使用的是 SQL 数据库,我们会提供必要的 Liquibase changlog,以便自动为您创建这些表。

由于 Spring Security 仅支持带有 SQL 数据库的 OAuth2,因此我们还实现了自己的 MongoDB 版本。我们为您生成 MongoDB 的所有 OAuth2 实现,以及必要的 MongoDB 配置。

此解决方案使用 key ,应在 application.yml 文件中将其配置为“authentication.oauth.secret”属性。

JWT 身份验证

JSON Web token (JWT) 身份验证与 OAuth2 一样,是一种无状态安全机制,因此如果您想在多个不同的服务器上进行扩展,它是另一个不错的选择。

Spring Security 默认情况下不存在此身份验证机制,它是 Java JWT 项目的 JHipster 特定集成。它比 OAuth2 更容易使用和实现,因为它不需要持久性机制,因此它适用于所有 SQL 和 NoSQL 选项。

此解决方案使用保存用户登录名和权限的安全 token 。由于 token 已签名,因此用户无法更改它。

key 应在 application.yml 文件中配置为 jhipster.security.authentication.jwt.secret 属性。

关于spring - 吉普斯特 2 : What is the difference between the authentication option?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28403484/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com