第一步:下载资源包
如果项目是maven项目可在pom文件引入以下代码:
<!--集成cas需要的jar--> |
如果没有使用mave,将lib目录提供的jar拷贝到应用的\WEB-INF\lib目录下。
cas-client-core-3.3.3.jar
第二步:修改应用配置文件
修改应用的web.xml文件,添加与SSO Server通信的filter和listener,具体配置信息如下:
<!--用于实现单点登出功能 --> <!-- 负责用户的认证工作--> <filter>
<!-- 该过滤器负责对Ticket的校验工作--> </filter-class> <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 --> <filter>
<!—需要根据实际情况,将/* 改为具体的URL--> <filter-mapping>
<listener> |
第三步:定制获取当前用户信息
单点登录集成,需要应用系统调用统一用户管理系统(SSO Server)提供的API来获取。
应用系统根据需要定制调整,可以封装成一个单独的类,可以直接拷贝下面的代码片段在需要获取当前用户的地方直接使用。
/* 引入接口类 */ import org.jasig.cas.client.util.AssertionHolder; import java.util.*;
……
Map<String,Object> attrMap = null; Assertion assertion= null; try{ assertion = AssertionHolder.getAssertion(); attrMap = assertion.getPrincipal().getAttributes(); }catch (Exception e){ logger.error("获取登录用户对象失败!!!"); }
if(null == attrMap || 0 == attrMap.size()){ //需要跳转到登录页面重新登录 ……
}else{ //需要应用系统编写代码,从attrMap获取业务需要的当前登录用户信息。 …… String account=(String)attrMap.get(“ACCOUNT”);
……
}
……
|
attrMap包含的登录用户信息,分为企业用户和内部用户两种,两种不同用户的数据项也有所不同,具体如下:
1、企业用户属性
ACCOUNT //账号 TYPE //账号类型 TYPE=3 TELEPHONE //手机号 CHECK_STATE //审核状态 0:未审核 1:已审核 COMPANY_NAME //企业名称 AREA_CODE //企业所在省份行政区划代码) AREA_NAME //企业所在名称 |
2、内部用户属性
ACCOUNT //账号 TYPE //账号类型 TYPE=1 TELEPHONE //手机号 NAME //姓名 CARD_ID //身份证号 ORG_CODE //所在机构编码 ORG_NAME //所在机构名称 ORG_STATE //所在机构状态 0:正常 1:待注销 PARENT_ORGCODE //上级检验机构编码 SUR_TYPE //是否验船师 SEX //性别 1:男 2:女 NATION //民族(代码) BIRTH //出生年月 POLICTICAL //政治面貌(代码) EDUCATION //学历(代码) MAJORS //专业(代码) WORK_HISTORY //工作履历 EMAIL //邮箱 |
第四步:账号信息同步
4.2、企业用户
1、企业账号同步,采取在企业第一次登录业务系统时,由业务系统同步到业务系统
(1)企业账号登录业务系统后,通过调用统一用户提供的接口,获取到当前登录账号信息(见第三步:定制获取当前用户信息)。
(2)获取ACCOUNT值,在本地登录登录
在的本地登录时,到本地数据库查找,如果没有该账号,说明账号还没同步,就将获取的该账号的信息插入到业务系统的数据库,同时默认授权(实名认证)。
(3)在业务系统审核完企业账号的实名认证,调用统一用户提供的接口,将账号状态变为“已审核”(使CHECK_STATE=1)。
2、企业第一个注册的账号,通过实名认证后,自动成为企业管理员,可以在统一用户管理中为该企业添加其他账号(企业管理员添加的账号不用再做实名认证,企业管理员可以不再添加新账号)。
新添加的账号,仍采取在企业第一次登录业务系统时,由业务系统调用统一用户提供的接口,将获取到当前登录账号信息(见第三步:定制获取当前用户信息)插入到业务系统的库表,同时默认授予跟第一个企业账号一样的权限。
4.2、对于内部用户
内部用户同步,通过主数据实现同步,添加一个内部用户,需要在业务系统中授权才能进入业务系统办理业务。
业务系统授权时,触发一下同步操作,将数据同步到应用系统。