没有 OAuth 的 Spring 安全 JWT
Posted
技术标签:
【中文标题】没有 OAuth 的 Spring 安全 JWT【英文标题】:Spring security JWT without OAuth 【发布时间】:2019-03-18 22:08:06 【问题描述】:最近开始学习如何使用oauth 2.0 + jwt 配置spring boot,我有一个问题:是否可以使用spring boot security + jwt 避免oauth 2.0?
【问题讨论】:
【参考方案1】:是的,可以在不使用标准化OAuth 2.0
流的情况下使用JWT
功能。 Here 是一个很好的示例实现来帮助你。另一个例子可以在AUTH0 找到。例如,您可以使用此依赖项:
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-jwt -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<version>1.0.9.RELEASE</version>
</dependency>
【讨论】:
我想问一下在没有 OAuth 2.0 的情况下使用 JWT 是否是一个好习惯? @PeterS。是的,完全没问题。 OAuth 是一个包含某些指导方针和规则的协议。 OAuth 的实现可以使用 JWT 来完成。基本上 OAuth 需要令牌来驱动该过程。而 JWT(JSON Web 令牌)只是一个令牌。使用 JWT 的优点是,如果用户提供令牌(由身份验证服务器签名),则用户不必每次都提供用户名和密码。只能有一个身份验证服务器,其他服务器只会识别签名(用于身份验证)和声明(用于授权)。 不幸的是 spring-security-jwt 现在已被弃用,并将开发人员推荐给 Spring Security OAuth2(Spring Security 5.2.x 的一部分)。他们的文档没有任何使用 JWT 的示例,至少没有发行者服务来分发签名密钥。以上是关于没有 OAuth 的 Spring 安全 JWT的主要内容,如果未能解决你的问题,请参考以下文章
Spring Security +Oauth2 +Spring boot 动态定义权限