Spring boot KeyClope始终返回401-Zuul api网关用于微服务
我得到了一个运行在API网关(Zuul)后面的微服务,该网关使用KeyClope保护端点。当从公共客户端(例如:邮递员)访问安全端点时,即使使用有效令牌,keydepate也始终返回401。 我在没有使用API网关的情况下完成了相同的场景,并且工作得非常好,将问题隔离到新添加的API网关上(已在Key斗篷中配置了客户端、角色和用户) 网关服务客户端是机密的,并且 API服务客户机是公共的,在KeyClope中 所有服务,包括keydepeat,都作为docker容器运行。 下面是属性文件中的KeyClope spring引导配置Spring boot KeyClope始终返回401-Zuul api网关用于微服务,spring-boot,docker,microservices,keycloak,netflix-zuul,Spring Boot,Docker,Microservices,Keycloak,Netflix Zuul,我得到了一个运行在API网关(Zuul)后面的微服务,该网关使用KeyClope保护端点。当从公共客户端(例如:邮递员)访问安全端点时,即使使用有效令牌,keydepate也始终返回401。 我在没有使用API网关的情况下完成了相同的场景,并且工作得非常好,将问题隔离到新添加的API网关上(已在Key斗篷中配置了客户端、角色和用户) 网关服务客户端是机密的,并且 API服务客户机是公共的,在KeyClope中 所有服务,包括keydepeat,都作为docker容器运行。 下面是属性文件中的Ke
keycloak :
realm : admin-realm
auth-server-url : http://keycloak:8080/auth
ssl-required : external
resource : gateway-service
bearer-only : true
credentials.secret : *********************
#
security-constraints[0] :
authRoles[0] : user
securityCollections[0] :
patterns[0] : /api/*
已解决
问题在于令牌的颁发者URL之间不匹配(http://localhost:8080/auth/)以及micro服务属性文件中的KeyClope配置URL(http://keycloak:8080/auth)
这发生在我从docker网络外部测试微服务时。(来自邮递员)。在我添加主机名的keydepeat之后,它就可以解决了;到Windows的主机文件
- 以管理员身份打开c:\Windows\System32\Drivers\etc\hosts文件
- 添加127.0.0.1密钥斗篷
- http://keycloak:8080/auth......