SangforAuthManager | |||||||
SangforSDK VPN认证管理入口类,所有业务以此为核心 | |||||||
名称 | SDK_JAVA_VERSION | ||||||
功能 | sdk版本号 | ||||||
名称 | addAllowedL3VPNApps | ||||||
功能 | 添加可以使用L3VPN的应用列表(称之为白名单应用) | ||||||
前置条件 | 1. 需要在L3VPN模式下才可以设置,且必须在初始化前设置,即建立L3VPN隧道前,否则需要重新建立L3VPN才可以生效 2. 该方法只支持Android5.0{@code (API:21)}以上版本的手机 3. 设置的参数列表中必须存放应用包名且必须是已安装的应用包名 4. 调用该接口添加白名单应用后,其他未添加的应用都为黑名单应用(不可使用VPN),集成SDK的应用本身也符合该规则 |
||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
packagesList | List<String> | IN | 允许使用vpn的应用包名 | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
名称 | addStatusChangedListener | ||||||
功能 | 添加vpn状态变化监听器,可注册多个监听器 注意,对于同一个位置,需要每次调用时传入相同的回调,否则,会导致每次调用此接口回调函数就会增加一个的问题,导致回调被多次调用,造成混乱。 |
||||||
后置条件 | 需要登录vpn后才能回调通知vpn状态 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
statusChangeListener | OnStatusChangedListener | OUT | 回调函数,通知vpn变化 | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_STATUS_CHANGE_LISTENER | 参数不可为空 | |||||
名称 | changePassword | ||||||
功能 | 主动修改密码 | ||||||
前置条件 | 进行过主认证并认证通过 | ||||||
后置条件 | 该接口需要进行网络请求,为阻塞接口,需要发起异步任务进行处理。 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
oldPassword | String | IN | 旧密码 | ||||
newPassword | String | IN | 新密码 | ||||
返回值 | 类型 | ChangePasswordResult | 说明 | 修改密码结果实体类 | |||
名称 | changeVpnMode | ||||||
功能 | 修改vpn模式 目前已废弃,请在主认证中指定模式 | ||||||
前置条件 | 需在认证前修改vpn模式 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
vpnMode | IConstants.VPNMode | IN | vpn模式 | ||||
名称 | clearStatusChangedListener | ||||||
功能 | 清除所有vpn状态变化监听器 | ||||||
名称 | disableAutoLogin | ||||||
功能 | 设置是否关闭后台自动重连,默认开启,不建议调用此接口 | ||||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
名称 | doCertificateAuth | ||||||
功能 | 组合认证:证书认证 存在组合认证时使用,该方法只进行认证过程,不进行vpn初始化过程,注意与{@link #startCertificateAuthLogin}的区别 此认证为辅助认证,不可直接调用。 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要进行证书认证 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
certPath | String | IN | 证书路径 | ||||
certPassword | String | IN | 证书密码 | ||||
返回值 | 类型 | 说明 | |||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | doPasswordAuth | ||||||
功能 | 组合认证:用户名密码认证 存在组合认证时使用,该方法只进行认证过程,不进行vpn初始化过程,注意与{@link #startPasswordAuthLogin}的区别 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要进行用户名密码认证 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
userName | String | IN | 用户名 | ||||
userPassword | String | IN | 用户密码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | doRadiusAuth | ||||||
功能 | 组合认证:Radius挑战认证 存在组合认证时使用,该方法只进行认证过程,不进行vpn初始化过程 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要进行挑战认证 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
radiusCode | String | IN | 挑战认证码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | doRandCodeAuth | ||||||
功能 | 组合认证:图形校验码认证 用户名密码连续输错的情况下,会启用图形校验码,使用该接口携带图形校验码进行认证。不进行vpn初始化过程 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要进行图形校验码认证 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
randcode | String | IN | 图形校验码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | doRenewPasswordAuth | ||||||
功能 | 强制修改密码 后台开启密码策略,登录时对不符合密码策略的密码调用该接口修改密码 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要修改初始密码 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
newPassword | String | IN | 新密码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | doRenewPasswordAuth | ||||||
功能 | 强制修改密码 后台开启密码策略,登录时对不符合密码策略的密码调用该接口修改密码,,需要携带旧密码 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要修改初始密码 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
oldPassword | String | IN | 旧密码 | ||||
newPassword | String | IN | 新密码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | doSMSAuth | ||||||
功能 | 组合认证:短信认证 存在组合认证时使用,该方法只进行认证过程,不进行vpn初始化过程 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要进行短信认证 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
smsCode | String | IN | 短信验证码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | doTokenAuth | ||||||
功能 | 组合认证:动态令牌认证 存在组合认证时使用,该方法只进行认证过程,不进行vpn初始化过程 |
||||||
前置条件 | 已经进行过主认证(start开头的接口)且需要进行动态令牌认证 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
token | String | IN | 动态口令 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | enableByPassMode | ||||||
功能 | 开启ByPass模式,开启后,所有SDK功能将失效 | ||||||
前置条件 | 需要在认证之前设置,否则设置无效 | ||||||
名称 | getInstance | ||||||
功能 | 获取VPN认证管理类的实例 | ||||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
名称 | getSession | ||||||
功能 | 获取共享登录的Session | ||||||
前置条件 | 若执行注销流程,Session会立即失效。 | ||||||
返回值 | 类型 | String | 说明 | 共享登录的session | |||
名称 | getVpnMode | ||||||
功能 | 获取vpn模式 | ||||||
返回值 | 类型 | IConstants.VPNMode | 说明 | vpn模式 | |||
名称 | onActivityResult | ||||||
功能 | L3vpn模式必须调用该函数,传递vpn用户授权结果 注意:当前Activity的launchMode不能设置为 singleInstance,否则L3VPN服务启动会失败。原因是L3VPN模式需要通过startActivityForResult向系统申请使用L3VPN权限,但startActivityForResult有限制,当前Activity的launchMode不能设置为 singleInstance。 EASYAPP模式:请忽略。 |
||||||
前置条件 | 认证模式为l3vpn且成功申请到vpn权限 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
requestCode | int | IN | 结果状态码,应为 IVpnDelegate.REQUEST_L3VPNSERVICE | ||||
requestCode | int | IN | 结果状态码 | ||||
名称 | queryStatus | ||||||
功能 | 主动获取当前VPN的登录状态 l3vpn模式下此状态只能说明登录状态,不能说明隧道状态 若想获取隧道状态,请使用addStatusChangedListener添加状态回调 |
||||||
后置条件 | EasyApp模式下,获取VPN状态是线程阻塞的,请谨慎调用 | ||||||
返回值 | 类型 | IConstants.VPNStatus | 说明 | 在线状态和离线状态 | |||
名称 | reacquireRandCode | ||||||
功能 | 重新获取获取图形校验码 | ||||||
前置条件 | 在需要进行图形校验码认证且需要重新获取时使用 调用该方法前需要调用setRandCodeListener设置回调,图形校验码通过回调进行返回 |
||||||
名称 | reacquireSmsCode | ||||||
功能 | 重新获取短信验证码 | ||||||
前置条件 | 需要进行短信验证码认证且需要重新获取短信验证码 | ||||||
后置条件 | 该接口需要进行网络请求,为阻塞接口,需要发起异步任务进行处理。 | ||||||
返回值 | 类型 | SmsMessage | 说明 | 短信信息实体类:包含手机号码、短信倒计时。获取失败时返回null | |||
名称 | removeStatusChangedListener | ||||||
功能 | 移除vpn状态变化监听器 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
statusChangeListener | OnStatusChangedListener | IN | 需要移除的状态回调对象 | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_STATUS_CHANGE_LISTENER | 参数不可为空 | |||||
名称 | setAuthConnectTimeOut | ||||||
功能 | 设置认证连接的超时时间 若没有设置或设置时间小于0, 则使用默认的超时时间IConstants.AUTH_CONNECT_DEFAULT_TIME_OUT |
||||||
前置条件 | 应在认证开始之前设置 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
seconds | int | IN | 超时时间,单位为秒 | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
名称 | setDeviceLanguage | ||||||
功能 | 设置VPN语言环境 暂时只支持中文和英文,中文使用IConstants.DeviceLanguage.CHINESE},IConstants.DeviceLanguage.ENGLISH,传入其它值或未设置情形将使用中文。 |
||||||
前置条件 | 应在认证开始之前设置 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
language | IConstants.DeviceLanguage | IN | 语言环境,枚举类型 | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
名称 | setLoginResultListener | ||||||
功能 | 设置VPN登录结果监听器 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
listener | LoginResultListener | IN | VPN登录结果监听器 | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 参数不可为空 | |||||
名称 | setLogLevel | ||||||
功能 | 设置日志打印等级 日志级别参见 IConstants.LogLevel,设置高级别日志等级将过滤低级别日志,比如设置LogLevel.WRAN将过滤INFO级别的日志 未设置或传入null,默认设置为INFO级别 |
||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
logLevel | LogLevel | IN | 日志级别 | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
名称 | setRandCodeListener | ||||||
功能 | 设置要展示校验码的实体类,用于在vpnRndCodeCallback中进行回调 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
randCodeListener | RandCodeListener | IN | 图形校验码接口类,参考RandCodeListener | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_RAND_CODE_LISTENER | 参数不可为空 | |||||
名称 | setRandCodeListener | ||||||
功能 | 设置要展示校验码的实体类,用于在vpnRndCodeCallback中进行回调 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
randCodeListener | RandCodeListener | IN | 图形校验码接口类,参考RandCodeListener | ||||
返回值 | 类型 | SangforAuthManager | 说明 | VPN认证管理类的实例 | |||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_RAND_CODE_LISTENER | 参数不可为空 | |||||
名称 | startCertificateAuthLogin | ||||||
功能 | SDK初始化以及进行证书认证 如果是L3VPN模式,需要传递activity上下文,L3vpn模块需要Activity启动VpnService |
||||||
前置条件 | vpn没有开启bypass模式且设置了认证回调LoginResultListener | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
application | Application | IN | 应用上下文 | ||||
activity | Activity | IN | activity上下文,L3VPN模式需要提供Activity上下文,用于启动VpnService | ||||
vpnMode | IConstants.VPNMode | IN | vpn模式,枚举类型 EasyAPP模式 IConstants.VPNMode#EASYAPP L3VPN模式 IConstants.VPNMode#L3VPN |
||||
vpnAddress | URL | IN | vpn地址 | ||||
certificatePath | String | IN | 证书路径 | ||||
certificatePassword | String | IN | 证书密码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | startDingTalkCodeAuthLogin | ||||||
功能 | 专门用于钉钉的code认证 | ||||||
前置条件 | vpn没有开启bypass模式且设置了认证回调LoginResultListener | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
application | Application | IN | 应用上下文 | ||||
activity | Activity | IN | activity上下文,L3VPN模式需要提供Activity上下文,用于启动VpnService | ||||
vpnMode | IConstants.VPNMode | IN | vpn模式,枚举类型 EasyAPP模式 IConstants.VPNMode#EASYAPP L3VPN模式 IConstants.VPNMode#L3VPN |
||||
vpnAddress | URL | IN | vpn地址 | ||||
code | String | IN | 钉钉传过来的code | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | startPasswordAuthLogin | ||||||
功能 | SDK初始化以及进行用户名/密码认证,最常用的认证方式 如果是L3VPN模式,需要传递activity上下文,L3vpn模块需要Activity启动VpnService |
||||||
前置条件 | vpn没有开启bypass模式且设置了认证回调LoginResultListener | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
application | Application | IN | 应用上下文 | ||||
activity | Activity | IN | activity上下文,L3VPN模式需要提供Activity上下文,用于启动VpnService | ||||
vpnMode | IConstants.VPNMode | IN | vpn模式,枚举类型 EasyAPP模式 IConstants.VPNMode#EASYAPP L3VPN模式 IConstants.VPNMode#L3VPN |
||||
vpnAddress | URL | IN | vpn地址 | ||||
userName | String | IN | 用户名 | ||||
userPassword | String | IN | 密码 | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | startSessionAuthLogin | ||||||
功能 | SDK初始化以及进行共享session认证 如果是L3VPN模式,需要传递activity上下文,L3vpn模块需要Activity启动VpnService |
||||||
前置条件 | vpn没有开启bypass模式且设置了认证回调LoginResultListener,session可以从getSession接口获取 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
application | Application | IN | 应用上下文 | ||||
activity | Activity | IN | activity上下文,L3VPN模式需要提供Activity上下文,用于启动VpnService | ||||
vpnMode | IConstants.VPNMode | IN | vpn模式,枚举类型 EasyAPP模式 IConstants.VPNMode#EASYAPP L3VPN模式 IConstants.VPNMode#L3VPN |
||||
vpnAddress | URL | IN | vpn地址 | ||||
session | String | IN | 共享session | ||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | startTicketAuthLogin | ||||||
功能 | SDK初始化以及进行免密登录,最常用的登录类型 如果是L3VPN模式,需要传递activity上下文,L3vpn模块需要Activity启动VpnService 一般而言,使用免密认证接口后,是不会进行二次认证的 |
||||||
前置条件 | vpn没有开启bypass模式且设置了认证回调LoginResultListener,vpn曾经成功认证过且没有主动注销 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
application | Application | IN | 应用上下文 | ||||
activity | Activity | IN | activity上下文,L3VPN模式需要提供Activity上下文,用于启动VpnService | ||||
vpnMode | IConstants.VPNMode | IN | vpn模式,枚举类型 EasyAPP模式 IConstants.VPNMode#EASYAPP L3VPN模式 IConstants.VPNMode#L3VPN |
||||
异常 | 类型 | 消息 | 说明 | ||||
SFException | EXCEPTION_LOGIN_RESULT_LISTENER | 认证结果回调函数为空 | |||||
名称 | ticketAuthAvailable | ||||||
功能 | 判断当前是否允许免密登录 | ||||||
参数 | 参数名 | 类型 | 方向 | 说明 | |||
context | Context | IN | 上下文信息,用以获取认证信息 | ||||
返回值 | 类型 | boolean | 说明 | true 允许;false 不允许 | |||
名称 | vpnLogout | ||||||
功能 | 主动注销VPN,该接口为异步接口,目前没有回调,需要监听vpn状态才能知道注销情况,后续可以考虑加上 | ||||||