应用场景
用户的应用系统与本产品分别单独部署,用户的应用系统中集成本产品提供的安全模块,在用户的应用系统中管理用户、机构等信息。单点登录是由用户的应用系统进行身份验证,在跨系统调用产品功能时将身份信息传递给本产品即可,产品系统视发出请求的用户是经过用户应用系统校验为合法的用户,无需在产品系统进行用户名、密码校验。
调用产品功能的同时传递用户登录
在安全调用模块的调用入口中增加参数username,即可在该用户登录产品系统的同时返回调用结果,需要注意username必须为产品系统中确实存在的用户。
示例代码:
//注意调用前需要引入相关js:mis2/customer/js/GezEntry.js
<script type="text/javascript" language="javascript">
// 单点登录方式1--在访问系统模块时加入username作为参数,将使用username登录产品系统并返回调用结果,这里是调用报表展现
function loginSystem1(){
showReport();
}
// 展现报表
function showReport(){
// 访问报表所需参数,resID:资源ID,username:用户名
var params = {resID : "10046", username : "root"};
<%
Map<String, String> paramMap_sr = new HashMap<String, String>();
// 生成安全校验信息
paramMap_sr.put("resID","10046");
paramMap_sr.put("username","root");
String secInfo_sr = SecInfoUtils.generate(request, paramMap_sr);
%>
// 参数含义依次为:模块ID、所需参数、安全校验信息、展示位置
// 展示位置:_blank--新页面打开、_self--本页面打开、iframeName--在指定的iframe中打开
new GezEntry("SR", params, "<%=secInfo_sr%>", "_blank").enter();
}
</script>