单点登录
支持通过SPI扩展机制,扩展集成应用免登中的单点登录模式。
2 分钟阅读
1、概述
单点登录场景:
- 点击V8菜单跳转三方系统。
- 点击三方栏目更多跳转三方系统。
- 点击通过集成应用同步过来的三方系统待办、消息,跳转至三方系统。
2、接入导图
3、接入步骤
3.1、demo工程下载
cip-connector-sso-template.zip
<parent>
<groupId>com.seeyon</groupId>
<artifactId>boot</artifactId>
<version>3.10.1</version>
</parent>
<properties>
<platform.version>3.10.1</platform.version>
</properties>
<dependencies>
<dependency>
<groupId>com.seeyon</groupId>
<artifactId>cip-connector-api</artifactId>
<version>${platform.version}</version>
</dependency>
</dependencies>
3.2. spi jar 打包并部署
参考 SPI扩展
注意:请在cip-connector微服务nacos配置文件中配置参数
上传完后需要重启cip-connector完成动态加载
3.3、工程开发
注意:每个项目下载工程并开发时,请优先修改工程名称,工程名遵守 cip-connector-auth-项目标识
开发过程请参考【场景/方法说明】
4、工程核心接口说明
4.1、定义单点登录英文表示
注意:该名称不能与其他名称重复,否则不会载入
/**
* 获取名称
* 需要保证名称唯一,名称+SecurityService 为当前类名称
* @return
*/
String getName();
4.2、定义单点登录中文描述
/**
* 获取描述
* @return
*/
String getTypeCaption();
4.3、定义前端可视化配置参数
/**
* 获取页面json语句
* @return
*/
String getPageJson();
4.3.1、字段说明:
{
"caption": "标准认证-CAS", //单点登录类型(下拉框名称)(select的中文值)
"type": "cas", //单点登录类型(下拉框值)(select对应的英文key)
"extensionProperties": //扩展参数
[
{
"colProps": //栅格化布局
{
"span": 12 //栅格化布局值
},
"componentType": "Input", //antd组件<br />标签名称
"componentProps": //扩展属性
{
"placeholder": "请输入" //select的placeholder提示
},
"validateFirst": true,
"rules": // 校验规则,<br/>参考antd表单的rules
[
{
"required": true,
"message": "请输入跳转地址"
},
{
"pattern": "^[^\\s]*$",
"message": "禁止输入空格"
},
{
"type": "string",
"max": 255,
"message": "最多255个字符"
}
],
"caption": "跳转地址", // 自定义名称
"defaultValue": "", //默认值,非必填
"name": "defaultJumpUrl"
}
]
}
4.3.3、效果实例:
4.4、根据原始请求地址拼接单点登录地址
/**
* 登录
* @param url 外部想跳转到的地址
* @param json 页面传递的数据
* @param userMap 用户信息map
* @param clientType 跳转类型(pc,移动)
*/
String login(String url, String json, Map<String,Object> userMap, SsoClientTypeEnum clientType
, Map<String, Object> extendParams
);
入参说明:
-
url: 外部传过来的想要跳转的特定地址
-
json: 前端页面配置的参数
-
userMap: 用户映射信息和用户映射自定义配置的参数
- innerUserId: 内部用户ID
- innerUserName: 内部用户名称
- innerUserCODE: 内部用户编号
- outerUser: 外部用户账户
- outerUserId: 外部用户ID
- innerUserLoginName: 内部用户登录名
- innerUserEmail: 内部用户邮箱
- innerUserPhone: 内部用户手机号
- innerUserOfficeNumber: 内部用户办公电话
- innerUserBankAccount: 内部用户银行账户
- innerUserOrgId: 内部用户组织编号
-
clientType: 类型(pc,phone)
-
extendParams: 外部传递过来的扩展参数
注意:按照3.3配置完成后,json获取的数据结构示例为:
-
{ "type": "xdHr", "loginType": "PERSON_ID", "account": "admin", "password": "123456", "ssoUrl": "http://www.login.com", "defaultJumpUrl": "http://www.jump.com" }
5、注意事项
无