乐创者平台支持从第三方业务系统中,通过二次开发程序判定请求是否合法的功能。
本章节重点阐述如何实现扩展登录等。

1 接口规范

Request Method:GET 
Request URL:{http}://{ip}:{port}/{lczServer}/externalLogin?请求参数

组成说明

{http}      网络协议名称,支持http或https两种协议
{ip}        乐创者服务部署所在的 Internet 主机名,支持ip地址或域名
{port}      乐创者服务部署所在Web应用服务器的访问端口。如果是80端口,可缺省
{lczServer} 乐创者服务应用名,乐创者服务部署时的应用上下文根目录(Web Context-root),可根据业务需要调整为其他名称。当乐创者服务代码发布在“ROOT”目录下时,内容为空即可。

2 请求参数

参数值包含中文或特殊字符时需URL编码。
javascript代码示例:url += ‘&targetVolume=’ + encodeURIComponent(‘测试’)
java代码示例:url += “&targetVolume=” + java.net.URLEncoder.encode(“测试”, “UTF-8”)

必选参数

参数名
类型
说明
privilege_type string 认证类型

可选参数

参数名
类型
默认值
说明
validateVariants string
传入第三方认证相关参数。
可传递多个参数,格式如下:
&validateVariants=认证参数1=参数值;认证参数2={year()};…认证参数n=参数值;
如:userName=xxx&roles=xxxxxx
curVolumeName string 强制指定进入门户后选中的应用;为空时按智能门户中用户的默认应用显示。
singleAppMode boolean false 是否单应用访问模式,true:进入门户后,左上角不允许切换应用,false:进入门户后,左上角可以切换应用。
hideHeader boolean false 登录成功后,隐藏主页的顶部区域,适用于把乐创者门户整合在第三方页面中时。
clientName string 客户端类型名称,用于区分不同的客户端如PC、Mobile,注意:同一个客户端类型、同一用户登录是互斥的。

3 典型案例

在此工程中,需要创建一个认证实现类,继承PrivilegeHelper,实现IPrivilegeHelper接口,基类中doValidate方法默认是认证通过的,我们可以在自己的实现类中重载此方法,如下所示:

public class ExternalLoginPrivilege extends PrivilegeHelper implements IPrivilegeHelper {
    /**
     * 认证方法
     * @param request servlet请求
     */
    public boolean doValidate(HttpServletRequest request) {
        String userName = null; //用户名 
        /**
         * 从第三方系统中获取登录的用户名或用户身份信息
         */......
        if (获取失败或不允许访问){
            this.setErrMsg("出错提示信息。");
            return false;
        }

        //缓存获取到的用户信息供动态传递用户参数到报表中使用
        this.setValidateParam("userName", userName);
        return true;
    }
    /**
     * 返回从doValidate中获取到的用户名,或从request中获取用户名
     * @param request
     * @return
     */
    public String getUserName(HttpServletRequest request) {
        //系统会根据这里返回的用户名登入乐创者门户
        String userName = this.getValidateParamValue("userName");
        return userName;
    }
}
作者:柳杨  创建时间:2023-06-07 11:58
最后编辑:柳杨  更新时间:2026-03-23 20:41