作者:Eddy  历史版本:1  最后编辑:龚清  更新时间:2024-11-20 15:41

外部业务框架如何接入IBPS3.x接口权限控制

外部业务框架(非IBPS3.x框架开发)如何接入IBPS-V3接口权限

接入说明

  1. 本文档适用于IBPS-v3.2.0及以上版本;
  2. 注册到IBPS-V3服务发现;
  3. 引入IBPS-V3权限客户端依赖;
  4. 添加swagger、权限相关配置;
  5. 在IBPS-V3系统-系统管理-接口授权进行接口授权;

接入步骤

添加依赖

  1. 服务发现

     <dependency>
         <groupId>com.lc.ibps.cloud</groupId>
         <artifactId>ibps-basic-discovery</artifactId>
         <version>当前版本号</version>
     </dependency>
  2. 公共依赖

    <dependency>
        <groupId>com.lc.ibps.cloud</groupId>
        <artifactId>ibps-basic-response</artifactId>
        <version>当前版本号</version>
        <exclusions>
            <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
  1. 权限客户端

     <dependency>
         <groupId>com.lc.ibps.cloud</groupId>
         <artifactId>ibps-oauth-client2</artifactId>
         <version>当前版本号</version>
         <exclusions>
             <exclusion>
                 <groupId>net.oschina.j2cache</groupId>
                    <artifactId>j2cache-mybatis</artifactId>
             </exclusion>
         </exclusions>
     </dependency>
     <dependency>
         <groupId>com.lc.ibps.provider.base</groupId>
         <artifactId>ibps-provider-platform-client</artifactId>
         <version>当前版本号</version>
     </dependency>
     <dependency>
         <groupId>com.lc.ibps.base</groupId>
         <artifactId>ibps-base-web</artifactId>
         <version>当前版本号</version>
     </dependency>
  2. 添加swagger依赖

     <dependency>
         <groupId>com.lc.ibps.cloud</groupId>
         <artifactId>ibps-basic-swagger</artifactId>
         <version>当前版本号</version>
     </dependency>

添加配置

  1. 服务发现

    • 请参考application-dev-consul.yml或application-dev-eureka.yml或application-dev-zookeeper.yml配置服务发现链接;

接口授权配置

  1. 添加swagger配置
swagger:
  terms-of-service-url : http://www.bpmhome.cn
  contact-name: 广州流辰信息技术有限公司
  contact-url: http://www.bpmhome.cn
  contact-email: <联系邮箱>
  version: <当前版本>
  base-package: <扫描包名,可配置多个使用英文逗号分割即可>
  docs: v2/api-docs
  string-extensions:
    - name: appId
      value: ${spring.application.name}
  1. IBPS-V3会自动导入接口;
  2. 在系统界面,系统管理-接口授权,对业务系统的接口进行授权即可;

其他配置

  • 关闭IBPS3框架中Mybatis的bean注入

    com:
    lc:
      db:
        mybatis:
          enabled: false
  • ID生成策略信息

    id:
    # 工作ID (0~31)
    workerId: ${ID_WORKER_ID:0}
    # 数据中心ID (0~31)
    datacenterId: ${ID_DATACENTER_ID:0}
  • bean注入配置

    • 复制Demo工程中的ibps-context.xml、ibps-resources.xml到项目的conf目录下。
    • 在非启动类的Configure类中使用@ImportResource(locations={"classpath:conf/ibps-context.xml"})引入bean注入配置。
  • FeignClient注入配置

    • 在启动类的@EnableFeignClients注解添加配置(basePackages = {“com.lc.ibps”, “cn.lc.ibps”})//TODO 配置基础包名!重要步骤!!!。包名按需修改

授权文件配置

  • 授权文件引入

将授权文件ibpsPublic.store、ibpsVfy.lic、license.passwdv3.2.0复制到项目的conf目录下。

  • 授权密码配置
    license: xxxx # 和授权文件同级目录有一个名字随机的文件,文件名即授权密码,v3.1.10及以下版本使用

maven私服请切换至自己的服务;
Demo工程详见源码中的provider-skeleton-other目录;

FAQ

请求/user/context地址出现access_token值重复?

解决方案:检查是否引入spring-boot-starter-tomcat,里面定义了filter导致header重复设置;