shiro+jwt如何实现单点登录,代码实例

Shiro 支持使用 JSON Web Token (JWT) 实现单点登录 (SSO)。

实现步骤如下:

  1. 在服务端生成 JWT 并返回给客户端。
  2. 客户端保存 JWT 并在请求中加上 HTTP Header,如 "Authorization: Bearer JWT"。
  3. 服务端收到请求后验证 JWT 的有效性。
  4. 如果 JWT 有效,则允许访问请求的资源。

以下是一个使用 Shiro 实现 JWT 验证的示例代码:

```java import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection;

import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts;

public class JwtRealm extends AuthorizingRealm {

pri
Shiro 支持使用 JSON Web Token (JWT) 实现单点登录 (SSO)。 实现步骤如下: 在服务端生成 JWT 并返回给客户端。 客户端保存 JWT 并在请求中加上 HTTP Header,如 "Authorization: Bearer JWT"。 服务端收到请求后验证 JWT 的有效性。 如果 JWT 有效,则允许访问请求的资源。 以下是一个使用 Shiro 实现 JWT 验证的示例代码: ```java import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; public class JwtRealm extends AuthorizingRealm { pri
Shiro 支持使用 JSON Web Token (JWT) 实现单点登录 (SSO)。 实现步骤如下: 在服务端生成 JWT 并返回给客户端。 客户端保存 JWT 并在请求中加上 HTTP Header,如 "Authorization: Bearer JWT"。 服务端收到请求后验证 JWT 的有效性。 如果 JWT 有效,则允许访问请求的资源。 以下是一个使用 Shiro 实现 JWT 验证的示例代码: ```java import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.AuthenticationInfo; import org.apache.shiro.authc.AuthenticationToken; import org.apache.shiro.authc.SimpleAuthenticationInfo; import org.apache.shiro.authz.AuthorizationInfo; import org.apache.shiro.realm.AuthorizingRealm; import org.apache.shiro.subject.PrincipalCollection; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; public class JwtRealm extends AuthorizingRealm { pri
经验分享 程序员 微信小程序 职场和发展