1、概述

主要提供数据服务和服务代理,支持各系统的正常运作。动态管理各种在线地图服务,本地地图服务。对各服务请求进行统计,分析。对用户进行管理,并分配角色授权。

2、登录截图


3、管理截图


4、基本功能

1、用户的登陆注册(服务端获取验证码)

2、App用户的登录注册(APP端获取验证码)

3、用户角色动态授权(实时授权,每个接口验证权限,更改接口权限,立即生效)

4、多数据源(sqlite,mysql)访问

5、服务器端口扫描和WHOIS查询

6、地图图层的统一管理(建表分类管理,分类请求,统计)

7、地理坐标系管理

8、地图图层的动态代理(对于非x,y,z请求的图层进行代理,如wms,行列号偏移,请求跨域,支持HTTP和HTTPS请求)

9、服务器信息监控(磁盘、CPU、内存)

10、APP实时位置上传

11、图集管理(天地图图集)

12、图集管理及文件上传

13、地理信息导航数据管理

14、IP黑名单管理

15、留言管理

16、日志管理

17、应用列表管理

18、接口管理及统计

  1. 重要功能实现思路

1、用户角色动态授权

基于SpringSecurity完成,通过Mysql存储用户表和角色表,角色控制用户可以访问的接口,权限可以继承(管理员>用户>匿名),集成也是动态的,根据角色ID可以新建角色加入到继承体系中。

用户访问接口—先验证权限,需要权限跳转到登陆界面。对于已登录的用户,先从数据库获得接口列表,看该接口是否授权。(AccessDecisionManager,FilterInvocationSecurityMetadataSource,UserDetailsService联合使用,稍后详解说下)

2、地图图层的动态代理

地图图层列表存放在数据库中,由于地图切片访问频繁,所有把图层的代理映射(真实地址、代理地址)存放在Redis中,代理过程中读取redis,通过后台接口操作redis的读写和数据更新。

用户访问代理图层-切片坐标发到服务器端,服务器判断图层类型,读取redis获取真实地址,拼接地址,发送HTTP请求获取数据。数据接收完成,转发给用户,代理结束。

  1. IP黑名单管理

在FilterChain,作为统一入口,所有的访问均从此处验证(日志、接口访问统计和验证码均在此处设置)。获取IP于Redis存放的黑名单进行对比,控制用户访问。

 
 

6、附言

SpringBoot提供后台开发框架

SpringSecurity提供用户动态授权

Redis+Mysql提供地图切片请求的代理转发(支持http、https)

Freemaker模板引擎提供前端页面渲染、页面嵌套、页面压缩和根据权限配置页面的功能

Httpclient提供服务代理转发功能

高德Android SDK提供APP开发组件

发表评论

邮箱地址不会被公开。 必填项已用*标注