<securityManager_uri>/storage[.<format>]
securityStorage 资源用于查看和设置安全信息存储位置,支持存储在 MySQL 和 SQLite 数据库中。
支持的方法:
支持的表述格式:RJSON、JSON、HTML(集成在 securityManager 资源页面)、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。
http://supermapiserver:8090/iserver/manager/security/storage.rjson
获取当前服务器安全信息的存储配置。
服务器返回的安全信息存储配置包含以下字段:
字段 | 类型 | 说明 |
type | SecurityInfoStorageType | 安全信息的存储类型,支持:SQLITE、MYSQL,以及自定义的CUSTOM。 |
permissionFileURI | String | 【存储类型为 SQLITE 时】
指定服务授权信息的存储文件(*.db),默认为./WEB-INF/iserver-services.db。 |
securityFileURI | String | 【存储类型为 SQLITE 时】
指定用户、角色等安全信息的存储文件(*.db),默认为./WEB-INF/iserver-security.db。 |
connInfo | DataSourceConnectionPoolInfo | 【存储类型为 MYSQL 时】
"connInfo": { "jdbcUrl": "jdbc:mysql://192.168.120.42:3306/mysql?useUnicode=true&characterEncoding=UTF-8", "username": "myuser1", "password": "mypassword", "driverClass": "com.mysql.jdbc.Driver", "dbType": "MYSQL" } |
对 securityStorage 资源( http://localhost:8090/iserver/manager/security/storage.rjson),执行GET请求,则返回的安全信息存储配置如下:
{
"permissionFileURI": "jdbc:sqlite:./WEB-INF/iserver-services.db",
"securityFileURI": "jdbc:sqlite:./WEB-INF/iserver-security.db",
"type": "SQLITE"
}
修改当前服务器安全信息的存储配置,如存储类型、位置等。
修改安全信息的存储配置时,需要在请求体中包含如下参数:
字段 | 类型 | 说明 |
type | SecurityInfoStorageType | 安全信息的存储类型,支持:SQLITE、MYSQL。 |
permissionFileURI | String | 【存储类型为 SQLITE 时必选】
指定服务授权信息的存储文件(*.db),默认为./WEB-INF/iserver-services.db。 |
securityFileURI | String | 【存储类型为 SQLITE 时必选】
指定用户、角色等安全信息的存储文件(*.db),默认为./WEB-INF/iserver-security.db。 |
connInfo | DataSourceConnectionPoolInfo | 【存储类型为 MYSQL 时必选】
"connInfo": { "jdbcUrl": "jdbc:mysql://192.168.120.42:3306/mysql?useUnicode=true&characterEncoding=UTF-8", "username": "myuser1", "password": "mypassword", "driverClass": "com.mysql.jdbc.Driver", "dbType": "MYSQL" } |
发送请求后,服务器端返回的响应结构如下表所示:
字段 | 类型 | 说明 |
succeed | boolean | 操作是否成功,true则为成功。 |
error | HttpError | 操作失败信息,如果成功则不显示。例如:
"error": { "code": 400, "errorMsg": "连接MYSQL数据库失败,可能的原因是连接信息有误或指定数据库未被授权远程访问" } |
对 securityStorage 资源( http://localhost:8090/iserver/manager/security/storage.rjson),执行 PUT 请求,传递 rjson 格式的请求体如下:
{
"connInfo": {
"jdbcUrl": "jdbc:mysql://myserver:3306/mysql?useUnicode=true&characterEncoding=UTF-8",
"username": "myuser1",
"password": "mypassword",
"driverClass": "com.mysql.jdbc.Driver",
"dbType": "MYSQL"
},
"type": "MYSQL"
}
则返回的 rjson 格式响应结果如下:
{
"succeed": "True"
}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 securityStorage 资源是否存在,或者客户端是否有权限访问 securityStorage 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 securityStorage 资源是否支持<format>格式的表述。