# API网关

# 网关的主要配置参数

  • server.port: 8000,默认网关端口
  • spring.cloud.gateway.routes: 网关路由
  • spring.security.oauth2.resourceserver.jwt.jwk-set-uri: 鉴权公钥URL
  • diboot.gateway.anon-urls: 允许匿名访问的URLs

# 核心代码说明

# GatewayAuthorizationManager: 鉴权管理器

  • 鉴权规则: 从Redis缓存中获取 "资源URI" - "角色" 之间的映射关系,拦截请求uri进行匹配,检查当前用户是否有该对应角色决定是否可访问。
  • 注意: 为方便调试,默认开发模式下禁用了权限检查。如需开启可参考如下代码对照调整。
// 开发模式下,忽略权限检查
if(isDevelopmentMode()){
    log.info("开发模式已启用,权限检查将被忽略!");
    return Mono.just(new AuthorizationDecision(true));
}
1
2
3
4
5

# SecurityFilterConfig: 安全过滤器配置

配置网关的鉴权策略、匿名URL等。

# GatewayExceptionHandler: 全局异常处理类

统一处理"服务不可用"、"请求超时"、"server异常"等。