认证中心可以通过页面跳转登录或二维码扫描登录的方式接入联通4A进行登录操作,用户需要通过groovy脚本自定义编写如何通过返回的报文获取用户名的功能,以最终实现通过用户名登录系统的功能。

编写groovy脚本

groovy脚本的路径:war包根目录\WEB-INF\classes\plugins\customizeUnicom4A.groovy
图片.pngcustomizeUnicom4A.groovy默认内容如下 :::danger 请按照实际返回的用户信息获取用户名的逻辑编写groovy脚本 :::

  1. import groovy.json.JsonSlurper
  2. import groovyx.net.http.HTTPBuilder
  3. /**
  4. * 根据用户sessionId获得用户名
  5. * @param sessionId
  6. * 用户sessionId
  7. */
  8. def getUsername(sessionId){
  9. def userName = ''
  10. // 此处改成实际请求地址
  11. new HTTPBuilder('http://localhost:8086/servTest/esb/JT_EOMS.findUserBySessionID').get(
  12. 'query': [
  13. 'sessionId': sessionId
  14. ]
  15. ) { resp, json ->
  16. if(resp.status == 200) {
  17. def result = ''
  18. json.eachLine { it -> result += it }
  19. def jsonInfo = new JsonSlurper().parseText(result)
  20. println jsonInfo
  21. userName = jsonInfo.get("user_name")
  22. println userName
  23. } else {
  24. println '响应错误&resp.status' + resp.status
  25. }
  26. }
  27. return userName
  28. }

说明

入参说明

  • sessionId: 用户sessionId``

    出参说明

    出参返回String类型,返回获取的用户名,如果未获取到用户名或获取用户名异常,返回 null :::danger 必须严格按照规范返回内容,否则会导致联通4A登录接入功能失效 :::

    其它说明

  • groovy脚本的目录必须是war包根目录\WEB-INF\classes\plugins

  • groovy脚本名称必须是customizeUnicom4A.groovy
  • 方法名必须是getUsername

    4A页面跳转登录

    登录的地址

    http://{ip}:{port}/{context-path}/login?globalUniqueID={sessionId}

  • {ip}:认证中心的ip地址

  • {port}:认证中心的端口
  • {context-path}:认证中心的部署包名
  • {sessionId}:用户的sessionId :::warning 注意
    对应的参数替换成实际的值 :::

    登录说明

    用户通过上述的登录地址,直接访问,登录成功后跳转的指定页面,失败后返回认证中心默认的登录地址