# 单点登录
# 登录太极河图管理平台
1.访问 http://ip:port/admin/index.html
2.进入应用空间
->客户端注册
模块,
3.点击新建
按钮创建一个客户端信息
4.填写基本信息: 名称,编码,应用ID,应用端访问秘钥,授权服务器地址为必填项, 授权服务器地址为应用端认证服务器地址, 默认首页地址:http://ip:port/account/index.html(河图的固定写法,只需要替换ip和port即可)
# 单点登录访问河图
用户请求以下地址对河图进行单点登录操作:
http:/[客户端应用编码]/authing/login?response_type=single&loginName=user01&appCode=hetu&client_id=[应用端ID]
[参数] response_type=single 固定写法
[参数] appCode=hetu 固定写法
如果授权服务器校验通过并成功返回,用户即可通过河图返回信息里redirect
字段中的网址对河图系统进行正常访问。
# 授权服务器认证
当用户携带loginName通过单点登录地址向河图发起访问时,河图将loginName以及其他参数通过http向授权服务器地址发起认证请求,授权服务器地址需要对loginName进行验证
授权服务器数据返回格式:
{
"message":"操作成功",
"code":200,
"status":"success/error"
}
授权服务器校验过程代码参考:
@ResponseBody
@GetMapping(value = "/loginAuthentication")
public Map loginAuthentication(HttpServletRequest request, String loginName, String client_id) throws Exception {
String authorization = request.getHeader("Authorization");
authorization = authorization.substring(6);
/*
* 此处打印为:dGVzdElEOktleQ==
*/
System.out.println(authorization);
/*
* Base64解密
*/
byte[] decoded = new BASE64Decoder().decodeBuffer(authorization);
authorization = new String(decoded, StandardCharsets.UTF_8);
/*
* [应用端 ID]:[应用端访问秘钥]
* 此处打印为:testID:Key
*/
System.out.println(authorization);
/*
* 登录名称
* 此处打印为:zhangsan
*/
System.out.println(loginName);
/*
* 应用端 ID
* 此处打印为:testID
*/
System.out.println(client_id);
//TODO 用户自行验证账户并返回结果
Map<String, Object> response = new HashMap<>();
/**
* 此处返回成功,如下:
* {
* "message":"操作成功",
* "code":200,
* "status":"success"
* }
*/
response.put("message", "操作成功");
response.put("code", 200);
response.put("status", "success");
return response;
}