Gateway 集成 JWT 身份认证的背景
微服务架构中,统一认证是核心挑战之一。JWT(JSON Web Token)因其无状态、跨域支持等特点成为主流方案。API Gateway 作为流量入口,集成 JWT 认证可实现对下游微服务的统一鉴权,避免重复开发。
JWT 的工作原理
JWT 由三部分组成:Header(算法类型)、Payload(用户数据)和 Signature(签名)。服务端通过密钥生成 Token,客户端在请求头携带 Token,网关层校验签名和过期时间,确保请求合法性。
Spring Cloud Gateway 集成 JWT 的步骤
依赖配置
在 pom.xml 中添加 Spring Cloud Gateway 和 JWT 相关依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.5</version>
</dependency>
JWT 工具类 实现 Token 生成和解析:
public class JwtUtil {
private static final String SECRET_KEY = "your-secret-key";
public static String generateToken(String username) {
return Jwts.builder()
.setSubject(username)
.setExpiration(new Date(System.currentTimeMillis() + 3600000))
.signWith(SignatureAlgorithm.HS256, SECRET_KEY)
.compact();
}
public static Claims parseToken(String token) {
return Jwts.parser()
.setSigningKey(SECRET_KEY)
.parseClaimsJws(token)
.getBody();
}
}
自定义全局过滤器
在 Gateway 中实现 GlobalFilter 校验 Token:
@Component
public class Jwt

被折叠的 条评论
为什么被折叠?



