从com.sun.jersey.api.client.Client到javax.ws.rs.client.Client如何配置客户端?
从:
import com.sun.jersey.api.client.Client;
Client client = Client.create();
client.setReadTimeout(1000 * 60 * 20);
client.setConnectTimeout(1000 * 20);
webResource = client.resource("someWhereOverTheRainbow");
..etc.
Run Code Online (Sandbox Code Playgroud)
至:
import javax.ws.rs.client.*;
Client client = ClientBuilder.newClient();
// **now what?** client.getConfiguration().getProperties().put("isThisTheWayToDoIt", 1000 * 60 * 2);
WebTarget target = client.target("someWhereOverTheRainbow");
..etc.
Run Code Online (Sandbox Code Playgroud)
我正在设置具有多个架构的 Postgres DB (AWS/RDS),并希望进行精细的访问控制。
每个模式都与一个应用程序相关。通常,应用程序将具有“写入”用户(INSERT、UPDATE、DELETE 等),但某些应用程序只需要从不同模式读取(SELECT)。
受到这个 AWS 博客的启发:https://aws.amazon.com/blogs/database/managing-postgresql-users-and-roles/ 我的 readusers 查询 writeusers 创建的表时遇到“权限被拒绝”的问题,即使我更改默认权限:
ALTER DEFAULT PRIVILEGES IN SCHEMA someschema GRANT SELECT ON TABLES TO some_read_role;
Run Code Online (Sandbox Code Playgroud)
重现步骤:
使用 masteruser postgres 创建 AWS RDS postgres (10.6) 实例
(DB postgres) 作为用户 postgres:
CREATE DATABASE somedb LC_COLLATE 'da_DK.utf8' LC_CTYPE 'da_DK.utf8' ENCODING 'UTF8' TEMPLATE template0;
Run Code Online (Sandbox Code Playgroud)(DB somedb) 作为用户 postgres:
REVOKE ALL ON DATABASE somedb FROM PUBLIC;
CREATE SCHEMA clients;
CREATE ROLE clients_read_role;
GRANT CONNECT ON DATABASE somedb TO clients_read_role;
CREATE ROLE clients_write_role;
GRANT …Run Code Online (Sandbox Code Playgroud)