交通信息资源平台-接口授权与鉴权详细设计_第1页
交通信息资源平台-接口授权与鉴权详细设计_第2页
交通信息资源平台-接口授权与鉴权详细设计_第3页
交通信息资源平台-接口授权与鉴权详细设计_第4页
交通信息资源平台-接口授权与鉴权详细设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号:EHL-EP-RD-0A1

密级:

交通信息资源平台

接口授权与鉴权详细设计

[VI.1]

拟制人:胡纲飞

审核人:____________________

批准人:____________________

[2016年05月090]

北京易华录信息技术股份有限公司

e-Hualu^易华录接口规范

文件变更记录

变更类型:*A-增加M-修订D-删除

版本号日期变更类型修改人摘要审核人备注

V0.82016/03/28A张雷元,创建交通信息资源平台接口授权

张韧,胡与鉴权详细设计

纲飞

VI.02016/4/11M徐立峰、修改数据库设计表,调整申请表与

张韧访问授权表

VI.12016/5/09M徐立峰、完善设计文档,1、增加授权流程

胡纲飞图;2、增加各功能原型;3、增加

序列号实现规则;4、修改一些文

字描述。5、增加业务大类;

e-Hualu^易华录接口规范

目录

1资源平台授权流程.........................................................................1

2授权功能设计..............................................................................2

2.1功能设计.............................................................................2

2.1.1授权管理..........................................................................2

2.1.1.1接口使用申请...........................................................................2

2.1.1.1.1原型设计............................................................................2

2.1.1.1.2功能操作设计.......................................................................2

2.1.1.2接口申请审核...........................................................................3

2.1.1.2.1原型设计............................................................................3

2.1.1.2.2功能操作设计.......................................................................4

2.1.2参数配置..........................................................................4

2.1.2.1接口标识配置...........................................................................4

2.1.2.1.1原型设计...........................................................................4

2.1.2.1.2功能操作设计.......................................................................5

2.2数据库设计...........................................................................5

2.2.1外挂接口申请表(T_IMS_APPLYFORM).......................................................................................................5

2.2.2外部接口定义表(T」MS」NFO)..................................................................................................................6

2.2.3外部接口访问授权表(T」MS_PERMIT).....................................................................................................7

2.2.4本地接口访问控制表(暂时不用考虑)................................................8

3鉴权功能设计..............................................................................8

4附录.....................................................................................13

4.1授权码生成规则(无锡所提供)........................................................13

4.2基础应用系统接口说明..........................................................19

e-Hualu^易华录接口规氾

1资源平台授权流程

现由于本次共同开发的平台的部局端尚未实现,所以采用接口授权功能在当地资源平

台(易华录)上实现,流程大致如下:

1)厂商在资源平台填写接口申请信息

2)当地资源平台的系统管理员审核后,生成接口访问控制信息

3)厂商可以在“接口使用授权查询”页面,查询到jkxlh(接口序列号)

授权系统流程图

阶段内段阶段

接口方法实现

申请审核生成授权码

图1.1

1

易华录接口规范

2授权功能设计

2.1功能设计

2.1.1授权管理

2.1.1.1接口使用申请

2.1.1.1.1原型设计

2016.04.11星期一④」接口使用申请宜理

©授权R理

调用软件开发尊位:易华泉,一旧图|

。•废口使用申请

手刷?,'网向帔

o堂口a;核由清

调用软件开发单位谒用单位IP范国记录状态序列号

⑥参数&陷

易华录无惕支队127001'12700255未生成陈列号

OM标识sea

无惕所无援支队127001.127005:12700204已序列号XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

图2.1

访问次数限

接口标识接口名称状态

□制

交通流监测设备状态

84C01-1启用

信息

.84C02检测器1分钟原始数据-1启用

□72C02实时过车记录信息200启用

图2.2

2.1.1.1.2功能操作设计

(1)通过调用软件开发单位可查询出所有申请的调用方,输出列表:调用软件开发单

位、调用单位、IP范围、记录状态、序列号,如图2.1

(2)图2.2为新增申请页面

2

e-Hualu^,易华录接口规范

输入项:调用软件开发单位、调用单位、IP、使用起止时间、系统功能描述、使用接

口列表;

输入项说明:

>调用软件开发单位,必填项,数据来源是从无锡所厂家表同步过来的数据;

>调用单位,必填项,为机构表的数据;

>IP,必填项,分两种选择:IP范围和IP列表,入库规则为范围用分隔,

列表用分隔,如127.0.0.1-127.0.1.255,127.0.0.1;127.0.0.5;127.0.0.7

>起始时间,必填项;

>使用接口列表,必填项,数据来源T_IMS」NFO,点击文本框弹出右侧接口列

表。

(3)编辑功能分为两种:未生成序列号与已生成

已生成序列号:在编辑页面中,调用软件开发单位、使用单位为不可编辑状态;

编辑保存后,将SQLX字段更新为2;

2.LL2接口申请审核

2.1.1.2.1原型设计

2016.04.11®□格口审核中谓雷停

@曲2理

•用软件开发♦位:易华录»董询

。接口候用峭

谓用校件开发单位调用单位

ifi

易华录无祷支队12700172700255

无将所无援支队12700U27.006,12700204

osntSiPEa

图2.3

3

易华录接口规范

访问次数限

接口标识接口名称状态

交通流监测设爸状态

84C01-1启用

信息

84C02检测器1分钟原始数据-1启用

72C02实时过车记录信息200启用

图2.4

2.1.1.2.2功能操作设计

(1)通过调用软件开发单位可查询出所有申请的调用方,输出列表:调用软件开发单

位、调用单位、IP范围,如图2.3

(2)图2.4为审核页面

输入项:审核状态、审核意见,其他项为只读属性;。

(3)审核通过后,生成授权码(序列号),生成规则参考4.1

2.1.2参数配置

2.L2.1接口标识配置

2.1.2.1.1原型设计

2016.04.11④

©度权管理

StQ

6谶口使用甲沟

。■瓶0M核由濡

©,数££

o&afinPea

图2.5

4

e-Hualu^易华录接口规范

2.1.2.1.2功能操作设计

(1)通过接口标识、接口名称(支持模糊查询)可查询出所有接口标识列表,输出列

表:接口标识、接口名称、访问限制次数、状态、封装类、实现方法,如图2.1

(2)点击新增按钮后,在列表中新增一行

输入项:接口标识、接口名称、访问限制次数、状态、封装类、实现方法;

输入项说明:

>接口标识,必填项,由实现接口的公司提供;

>接口名称,必填项;

>访问限制次数,必填项,-1表示不限制,必须为数字

>封装类,调用接口映射的class;

>实现方法,调用接口映射的实现方法。

(3)点击编辑,可以对列表中的结果直接修改并保存。

2.2数据库设计

2.2.1外挂接口申请表(T_IMS_APPLYFORM)

序号字段编码字段名称类型是否为空备注

1XTLB系统类别VARCHAR2(2)NO枚举字典

2AZDM安装点代码VARCHAR2(6)NO

NO关联厂商表id,与无锡所

3DYRJKFDW调用软件开发单位VARCHAR2(12)

同步

NO用户单位,如支队、大

4DYZDW调用者单位VARCHAR2(12)

队,关联部门表id

5KFWJK可访问接口VARCHAR2(2000)NO

NO~表示范围,如

127.0.0.T127.0.0.255;

6IPIPVARCIIAR2(2000)

“;”表示ip集合,如

127.0.0.1;127.0.0.2

5

易华录接口规范

7JKQSRQ调用者起始日期DATENO

8JKJZRQ调用者截止日期DATENO

9SQLX申请类型CHAR⑴YES1:新申请,2:调整申请

YES0:未生成序列号,1:已

10JLZT记录状态CHAR(l)

生成序列号,2:不同意

11GXSJ更新时间DATEYES

12BZ备注VARCHAR2(4000)YES

13SPYJ审批意见VARCHAR2(500)

注:联合主键:XTLB+AZDM+DYRJKFDW+DYZDW

1.AZDM(安装点代码):可以先写死,为当地的行政区划

2.DYRJKFDW(调用软件开发单位):访问公安网平台厂商表

3.KFWJK(可访问接口):为一组接口信息json字符串,解决厂商与接口多对多的关系

KFWJK示例如下:

{"60W01:{'jkmc':'非现场违法待筛选写入接口','gpfwcsxz':-1,zt':1},

'60W02':('jkmc':'非现场违法待审核写入接口','gpfwcsxz':'-1','zt':'T},

63Q01:{'jkmc':'客运车辆信息核查接口'gpfwcsxz:-1,zt:1})

4.同一个厂家,一个调用单位,一个系统分配一个授权码。

2.2.2外部接口定义表(T_IMS」NFO)

序号字段编码字段名称类型是否为空备注

由系统类别+一位级别代

码+两位接口顺序号组成

(参照监管系统),C:支

1JKID接口IDVARCHAR2(5)N0

队、B:总队,A:部局,如

01A01代表机动车部局端提

供的接口

2JKMC接口名称VARCHAR2(128)NO

3XTLB系统类别VARCHAR2(2)NO枚举字典

4JKZT接口状态VARCHAR2(1)NO1:启用,0:未启用

6

e竺变少易华录接口规范

5JKLB接口类别VARCHAR2(1)NO1:写入接口,2:查询接口

封装类

6FZLVARCHAR2(500)YES接口映射的class类

7SXL实现方法VARCHAR2(500)YES实现接口的具体方法

8GXSJ更新时间DATENO

9ZGPFWCSXZ最高频访问次数限制NUMBERNOT为不限制

10BZ备注VARCHAR2(4000)YES

注:

1.主键为JKID

2.该表定义系统向外提供的接口信息

2.2.3外部接口访问授权表(T_IMS_PERMIT)

序号字段编码字段名称类型是否为空备注

1JKXLH序列号VARCHAR2(256)NO

2XTLB系统类别VARCHAR2(2)NO

3AZDM安装点代码VARCHAR2(6)NO

关联厂商表id,与无锡所

4DYRJKFDW调用软件开发单位VARCHAR2(12)NO

同步

用户单位,如支队、大

5DYZDW调用者单位VARCHAR2(12)NO

队,关联部门表id

7KFWJK可范惘接口VARCHAR2(2000)NO

NO、表示范围,如

127.0.0.T127.0.0.255;

8IPIPVARCHAR2(2000)

“;”表示ip集合,如

127.0.0.1;127.0.0.2

10JKQSRQ调用者起始日期DATENO

11JKJZRQ调用者截止日期DATENO

13GXSJ更新时间DATEno

7

易华录接口规范

14BZ备注VARCHAR2(4000)YES

2.2.4本地接口访问控制表(暂时不用考虑)

序号字段编码字段名称类型是否为空备注

1XTLB系统类别VARCHAR2(2)N

2AZDM安装点代码VARCHAR2(6)N

省集中模式的填写发证机

3DYRJKFDW调用者发证机关VARCHAR2(12)N

关头

4DYFZJGVARCHAR2(10)N

5JKID接口编号VARCHAR2(5)N

6ZT状态CTIAR(l)N

7GPFWCSXZ高频访问次数限制NUMBERN

8ZJFWSJ最近访问时间DATEY

9DRFWCS当日访问次数NUMBERY

10BZ调用者起始日期VARCIIAR2(400)Y

注:

1.该表维护的是本地接口访问控制信息,对外部接口访问授权表中的可访问接口(KFWJK)

详细信息进行维护,比如在一些大城市中为了减小系统压力,对于部局端已经审核过

的外部接口授权信息(外部接口访问授权表中的kfwjk字段定义的接口),当地交警可

以自己启停对某些厂商某几个接口(ZT字段)

2.现由于本次共同开发的平台的部局端尚未实现,这张表可以先不实现

3鉴权功能设计

具体可以参考以下代码,绿色部分为具体鉴权点和校验逻辑,青绿色部分可以先不实

/**

*判断

8

e-Hualu接口规范

*@parambdfzjg

*@paramjkxlhStr

*@paramjkidStr

*@paramxtlb

*@paramremotelp

*@paramwebAppContext

*@return

*/

privateDbResultcheckValid(Stringbdfzjg,StringjkxlhStr,StringjkidSir,Stringxtlb,Stringremotelp,

WebApplicationContextwebAppContext){

DhResultr=newDbResult();

r.setCode(1);

r.setMsg(,,u);

t>y(

if(!StringUtil.checkBN(jkxlhStr))(

thrownewException^未输入接口序列号

if(!StringUtilcheckBN(jkidStr)){

thrownewException■未输入接口ID”);

ContentQuetyDaocontentQuery'Dao

(ContentQueryDao)webAppContext.getBean(ContentQueryDao.class);

ControlQueryDaocontrolQueryDao

(ControlQueryDao)webAppContext.getBean(ControlQueryDao.class);

AppformJgWriteDaoappfannJgWriteDao

(AppformJgWriteDao)wehAppContext.getBean(AppformJgWriteDao.class);

HfQuetyDaohfQueiyDao=(HfQuetyDao)webAppContext.getBean(HfQueryDao.class);

Controlctl=controlQueryDao.queryControlByJklxh(jkxlhStr);

9

。竺则5易华录接口规范

if(cil--null)1

thrownewException("接口序列号不存在;

AppfomiJgappfonnjg=newAppfi)nnJg();

appformJg.setXtlh(ctl.getXtlh());

appfonnJ^.setAzdm(ctl.getAzdm());

appforniJ^.setDyrjkfdw(ctl.getDyrjkfdw());

appformJg.setDyfzjg(ctl.getDyfzjgO);

Controljkxlh=appfarmJgWriteDao.queryControlJkxlh(appfonnjg);

Controljyw=controlQueryDao.queryControlJyw(appfonnjg);

〃可以不考虑,

ijljyw==null)(

thrownewException^验证接口校验位异常);

if(!jyw.getJyw().equals(ctl.getJyw())){

thrownewException("接口校验位被非法修改,);

intidx=ctl.getKJyvjk().indexOf(,^n+jkidStr+

if(idx<=0)/

thrownewException("该接口序列号不适用于该接口1D");

StringstrKj\vjk=ctl,getKfwjk().replaced//(1,n,);

10

易华录接口规范

JSONOhjectkjyvjkJSON=JSONOhject.fromOhject(strKJyvjk);

JSONObjectcurJkidJson=(JSONObject)kfwjkJSON.get(jkidStr);

Stringzt=(String)curJkidJson.get(Hzt");

识!〃l”.equak(zt)){

thrownewException(”部局已对该序列号停用本接口

)else{

〃可以先不考虑

Hfchf=hfQueryDao.queryHf(ctl.getXtlb(),ctl.getAzdm(),ctl.getDyrjkfdw()fctl.getD)fzjg(),

jkidStr);

if(chf!=null){

与”thr一ownewException^当前系统己对该序列号停用本接口

//xuxd20140902增加ip地址逻辑判断,支持ip列表方式,为列表时jsip=u;

iffctl.getKsip().indexOf(remotelp)<0){

thrownewException("不是合法的IP地址”)

String!]remotelps=reniotelp.split(,\^n);

String[Jksips=ctl.getKsip().split(");

String1]jsips=ctl.getJsip().splitC^

longlJrips=newl(mg[4];

long[]kips=newlong14];

11

易华录接口规范

thrownewExcepii(m("不是合法的IP地址

curTime=System.currentTimeMillis();

thrownewException”接口尚未启用

f(Timestamp.valueOf(ctl.getJkjzrq()+r,23:59:59n).getTinie()<curTirne){

thrownewExceptiim(”接口已过申请期限

Contentent=c(mtentQueryDcu).getContent(jkidStr);

12

易华录接口规范

thrownewException("接U不存在,或接口被非法修改);

if(Timestamp.valueOf(cnt.getJkyxq()).getTime()<curTime){

thrownewExcept接口已过有效期);

:equals(cnt,getJkzt())){

thrownew

}catch(Exceptione){

r.setCode(-l);

nsetMsg(e.getMessage());

returnr;

4附录

4.1授权码生成规则(无锡所提供)

JAVA代码:

publicControlqueryControlJkxlh(AppformJgbean)throwsException{

StringjkxlhSql=,fSELECTEWS_PKG.CreateEwsJkxlh(?)JKXLHFROMDUAL";

Controljkxlh=(Control)this.jdbcTemplate.queryForBean(jkxlhSql,

newObject[]{bean.getXtlb()++bean.getAzdmO++bean.getDyrjkfdw()

++bean.getDyfzjgO),Control,class);

if(jkxlh==null|IIStringUtil.checkBN(jkxlh.getJkxlhO)){

thrownewRuntimeException("计算接口序列号错误!");

13

易华录接口规范

returnjkxlh;

}

FunctionGet_Encrypt(ArgInstrInVarchar2)ReturnVarchar2Is

Begin

IfRaw_KeyIsNullThen

Get_Raw_Key;

EndIf;

ReturnRawtohex(Utl_Raw.Bit_Xor(Utl_Raw.Cast_To_Raw(Arg_Instr),

Raw_Key));

EndGet_Encrypt;

〃生成接口序列号

FunctionCreateewsjkxlh(PlaintextVarchar2)ReturnVarcharIs

CiphertextVarchar2(256);

Begin

Ciphertext:=Get_Encrypt(Plaintext);

IfLength(Ciphertext)>256Then

Ciphertext:=Substr(Ciphertext,1,256);

EndIf;

ReturnCiphertext;

End;

*判断

*@parambdfzjg

14

易华录接口规范

*@paramjkxlhStr

*@paramjkidStr

*@paramxtlb

*@paramremotelp

*@paramwebAppContext

*©return

*/

privateDbResultcheckValid(Stringbdfzjg,StringjkxlhStr,String

jkidStr,Stringxtlb,Stringremotelp,WebApplicationContextwebAppContext){

DbResultr=newDbResult();

r.setCode(1);

r.setMsg(nM);

try(

if(IStringUtil.checkBN(jkxlhStr)){

thrownewException("未输入接口序列号");

)

if(IStringUtil.checkBN(jkidStr)){

thrownewException("未输入接口ID");

)

ContentQueryDaocontentQueryDao=

(ContentQueryDao)webAppContext.getBean(ContentQueryDao.class);

ControlQueryDaocontrolQueryDao

(ControlQueryDao)webAppContext.getBean(ControlQueryDao.class);

AppformJgWriteDaoappformJgWriteDao

(AppformJgWriteDao)webAppContext.getBean(AppformJgWriteDao.class);

HfQueryDaohfQueryDao

(HfQueryDao)webAppContext.getBean(HfQueryDao.class);

Controlctl=controlQueryDao.queryControlByJklxh(jkxlhStr);

15

e-Hualu^易华录接口规范

if(ctl==null){

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论