认证中心可以通过页面跳转登录的方式接入第三方进行登录操作,用户需要通过groovy脚本自定义编写如何通过请求参数获取用户名的功能,以最终实现通过用户名登录系统的功能。

配置URL中需要解析的参数名

application-{active}.yml

  1. ac:
  2. # 第三方系统链接跳转单点登录
  3. thirdPartyLinkSsoLogin:
  4. # 链接中的参数名,可配置多个,满足其中之一即可
  5. urlNameList:
  6. - globalUniqueID
  7. - appId

编写groovy脚本

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

/**
 * 根据请求报文获得用户名
 * @param paramsJson
 *       请求地址的参数json对象
 */
def getUsername(paramsJson){
    // 写根据请求报文如何获得username的业务逻辑
    return "admin";
}

说明

入参说明

  • paramsJson: 请求地址中的参数json对象``

    出参说明

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

    其它说明

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

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

    页面跳转登录

    登录的地址示例

    http://{ip}:{port}/{context-path}/login?{参数名1}={参数值1}&{参数名2}={参数值2}

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

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

    登录说明

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