求助,学习springcloud使用gateway和oauth2做统一认证服务,可以通过oauth/token获取到token,但是使用得到的token请求自定义的接口确提示401
gateway 没有把 请求头 传递给 /system/test 所在的服务?
/system/test 所在的服务 也要进行一次 验证吧?
pre过滤器逻辑可以:鉴权、限流、更改请求头、转换协议等;
headerRoutePredicateFactory
应该是gateway的鉴权的问题,我的疑问是gateway鉴权是怎么校验jwt,或者说我生成的jwt放到redis后,gateway是要怎么去我redis中校验token是否合法的。
@幻某人:
自己写 pre过滤器
@快乐的凡人721: 有过滤器,我现在不知道要不要在里面写校验jwt的代码还是chain.filter之后会自动校验jwt
如果您可以成功获取到OAuth2令牌(token),但是在使用令牌访问自定义的接口时仍然收到401未授权错误,那么可能有以下几个原因:
令牌不正确:请确保您使用的是正确的令牌。您可以通过打印日志或使用调试工具检查令牌的内容和格式是否正确。
令牌过期:如果您的令牌已过期,那么您需要重新获取新的令牌。您可以使用refresh_token(如果您的授权服务器支持)或重新进行身份验证来获取新的令牌。
接口权限问题:请确保您的令牌具有访问您正在尝试访问的自定义接口的权限。您可以检查授权服务器和资源服务器的配置,确保您已正确配置和分配了权限。
路由配置问题:如果您正在使用Spring Cloud Gateway,您需要确保您已正确配置路由规则,以便仅对具有正确令牌的请求进行路由。请检查您的路由配置,以确保它与您的身份验证和授权配置一致。