securityStorage


URI

<securityManager_uri>/storage[.<format>]

支持的方法

GETPUTHEAD

父资源

securityManager

介绍

securityStorage 资源用于查看和设置安全信息存储位置,支持存储在 MySQL 和 SQLite 数据库中。

支持的方法:

支持的表述格式:RJSON、JSON、HTML(集成在 securityManager 资源页面)、XML。

资源层次

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。

http://supermapiserver:8090/iserver/manager/security/storage.rjson

GET 请求

获取当前服务器安全信息的存储配置。

响应结构

服务器返回的安全信息存储配置包含以下字段:

字段 类型 说明
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"

}

PUT 请求

修改当前服务器安全信息的存储配置,如存储类型、位置等。

请求参数

修改安全信息的存储配置时,需要在请求体中包含如下参数:

字段 类型 说明
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"

}

HEAD 请求

返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。

HEAD 请求可以用来判断 securityStorage 资源是否存在,或者客户端是否有权限访问 securityStorage 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 securityStorage 资源是否支持<format>格式的表述。

请参见