0

我有一个调用 servlet 的 JDBC 客户端。

这是我的客户:

String query = "select * FROM Table";
int port = 8080;
String user = "user";
String password = "passwd";
String jdbcAvaticaURL = "jdbc:avatica:remote:url=http://localhost:"+port+";authentication=BASIC;serialization=JSON";
Connection connection = DriverManager.getConnection(jdbcAvaticaURL, user, password); // ,info);

executeQuery(connection,query);

connection.close();

这是我的 servlet:

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.getParameter("user"); // returns NULL
    Enumeration<String> params = request.getParameterNames(); // Empty Collection
    response.setContentType("application/json;charset=utf-8");
    response.setStatus(HttpServletResponse.SC_OK);
    // DO THINGS
}

有没有办法从DriverManager.getConnection(jdbcAvaticaURL, user, password);servlet 中检索用户和密码?

当我将参数放入 JDBC URL 时,我已经尝试过String auth = request.getHeader("Authorization");了,它正在工作,我可以检索用户和密码,但这不是我想要的。

4

1 回答 1

0

没关系,在尝试获取请求的属性、参数等之后,结果证明凭据只是在请求中...

在 servlet 中执行此操作让我可以访问客户端中用于连接的用户和密码(经过一些 JSON 解析):

String myRequest = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));

于 2018-06-27T07:53:36.577 回答