免密认证

在有些场景下,为了方便开发调试,能够方便的访问页面和接口,可以开启测试模式配置,进行免密认证

通过统一的认证处理filter:org.apache.linkis.server.security.SecurityFilter 来控制

配置项

  1. #是否开启测试模式
  2. wds.linkis.test.mode=true
  3. #测试模式的模拟用户名
  4. wds.linkis.test.user=hadoop

实现的伪代码

  1. val BDP_TEST_USER = CommonVars("wds.linkis.test.user", "")
  2. val IS_TEST_MODE = CommonVars("wds.linkis.test.mode", false)
  3. if (IS_TEST_MODE.getValue) {
  4. logger.info("test mode! login for uri: " + request.getRequestURI)
  5. // 设置登陆用户信息为配置指定的用户
  6. SecurityFilter.setLoginUser(response, BDP_TEST_USER)
  7. true
  8. }

直接修改配置文件 linkis.properties(对linkis所有服务生效), 修改对应的配置如下

  1. #是否开启测试模式
  2. wds.linkis.test.mode=true
  3. #测试模式的模拟用户名
  4. wds.linkis.test.user=hadoop

如果只需要开启某个服务的测试模式,可以修改对应的服务配置项。 如 只开启 entrance 服务的测试模式 直接修改配置文件 linkis-cg-entrance.properties(对linkis的entrance服务生效), 修改对应的配置如下

  1. #是否开启测试模式
  2. wds.linkis.test.mode=true
  3. #测试模式的模拟用户名
  4. wds.linkis.test.user=hadoop

修改配置后,需要重启对应的服务(如果是所有服务都开启,重启所有服务),才能生效

重启服务成功后,可以直接请求原来需要认证的http接口,无需额外的认证,便能正常请求. 管理台也无需登陆认证,就可以访问内容页面

因为部分接口会进行用户角色的权限校验,如: 【搜索历史EC信息】的接口:/api/rest_j/v1/linkisManager/ecinfo/ecrHistoryList 角色有:

角色名权限说明配置项默认值
管理员角色最高权限,拥有所有权限操作wds.linkis.governance.station.adminhadoop
历史任务角色相对普通用户,还可以查看其他用户的所有任务列表信息wds.linkis.jobhistory.adminhadoop
普通角色默认的角色

对于不同场景的测试,设置的wds.linkis.test.user的值,会有不同,需要按实际场景进行设置。 如果需要访问所有接口,需要配置为和wds.linkis.governance.station.admin一样的值,一般是hadoop