AccessProvider

属性
接口类型 extra-decision
完整类名 com.fr.decision.fun.AccessProvider

背景与场景

AccessProvider 接口用于扩展第三方认证方式,通过隐式登录的方式接入外部身份验证。主要面向登录场景(而非单点登录 SSO),例如:移动端第三方唤起登录集成,或直接调用第三方授权接口完成认证。

接口定义

package com.fr.decision.fun;

import com.fr.stable.fun.mark.Mutable;

public interface AccessProvider extends Mutable {
    String MARK_STRING = "AccessProvider";
    int CURRENT_LEVEL = 1;

    /**
     * 自定义登录验证方法
     * @param username 用户名
     * @param password 密码
     * @param ticket   第三方认证凭证
     * @return 是否通过登录验证
     */
    boolean access(String username, String password, String ticket);

    /**
     * 自定义登录验证方法
     * @param username 用户名
     * @param password 密码
     * @param ticket   第三方认证凭证
     * @return 用户名
     */
    String auth(String username, String password, String ticket);
}

支持版本

产品线 版本 支持情况
FR 10.0 支持
FR 11.0 支持
BI 5.1 支持
BI 5.1.2 支持
BI 5.1.3 支持

插件注册

plugin.xml 中添加以下节点:

<extra-decision>
    <AccessProvider class="your class name"/>
</extra-decision>

原理说明

平台的登录服务入口为 LoginResource,包含 POST /login/third/auth 端点,接受 ThirdAuthInfoBean。该端点调用 LoginService#login(),传入凭证和 token,随后调用所有已注册的 AccessProvider 实例进行认证验证。

常用链接

results matching ""

    No results matching ""