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 {
p