Swagger api 403

  • Choerodon平台版本:0.6.0

  • 运行环境(如localhost或k8s):localhost k8s都一样

  • 遇到问题时的前置条件:服务注册到注册中心

  • 问题描述:

    请尽量详细的描述您遇到的问题,以便我们能更快速的提供解决办法。

    如:用新的模板生成的项目注册到注册中心上去

  • 修改的数据:
    application.yml
    bootstrap.yml
    java
    resources

  • 报错信息(请尽量使用代码块的形式展现):
    Network:
    api 403
    image




    iam_permission表数据为空

  • 原因分析:

    403,用了。0.7.0的微服务模板,微服务环境为:0.6.0

  • 疑问:

    怎么解决

http://forum.choerodon.io/t/topic/443/23

新注册到注册中心的服务(eureka),到swagger报403错误,手动将 iam_permission里的 permission刷进去后,本地能用,部署到服务器的仍然是403,怀疑是

api-gateway、gateway-helper的配置文件里zuul没有新注册服务网管。注:原来研发没有升级之前没有此问题

服务端也调手动刷新的接口了吗?看看服务端的数据库iam_permission有没有数据


手动刷了后,有数据,但是服务器swagger还是403,而且不可能每次写一个接口都去手动刷吧

看下gateway-helper的日志,如果提示是找不到服务的路由,请在路由管理页面添加你们服务的路由


为什么我自己的帖子我都进不去了

建议您更新服务至最新的0.7,再配合对应0.7版本的应用模板使用;或是现有情况下使用0.6版本的应用模板

go-register-server,oauth-server和choerodon-front用0.7.1

因为我们这边要混合开发,所以用的是java版的注册中心,这个对升级会有影响吗?


路由有,还是403

访问一下你们接口,403时gateway-helper会打印日志,贴下该403请求的日志

我们线上是不使用eureka-server的,我们的一些信息获取如版本,metrics-port等信息是从go-register-server中获取,在eureka-server是拿不到的,首先和版本相关的功能如swagger啥的会有影响,我们线上也并未使用eureka进行任何测试,还可能会有其他异常

那我们开发怎么办?

你好,能描述一下具体的场景吗?

我现在理解是这样的,你们线上用的是eureka 作为注册中心,然后关于权限还有路由都不会自动初始化到数据库对吧?

关于混合开发,是指本地连接线上环境开发吗?如果是这样,也可以在线上启动go-register-server,然后本地服务通过vpn,注册到线上地址,这样本地服务可以获取线上服务列表,线上也不会扫描到本地服务。

如果是本地开发服务,服务器上通过swagger扫描本地服务的注解时,请先确保服务器的pod能够连接到本地,而且本地防火墙是处于关闭状态的。

同时,本地开发一般是不需要权限的,可以将服务的@EnableChoerodonResourceServer 注解注释掉。

关于路由,模板里并没有提供注册路由的接口,需要自己在管理 -> 微服务管理 -> 路由管理 里面对路由进行配置,或者按照文档,添加对应的配置
http://choerodon.io/zh/docs/development-guide/backend/intergration/run/#服务注册