首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解决JAVA Swing客户端,远程数据库的数据访问; ibatis的?

如何解决JAVA Swing客户端,远程数据库的数据访问; ibatis的?
EN

Stack Overflow用户
提问于 2018-09-20 00:13:29
回答 2查看 0关注 0票数 0

有一个需要访问远程数据库的Java客户端。目标是隐藏用户的数据库凭据,而不是对代码中的任何凭据进行硬编码。因此,数据库访问可能必须在服务器端。

我被限制使用Ibatis作为数据抽象框架。除此之外,我在网络服务器上运行JBoss,允许我使用数据源。将如何设计远程数据库访问和数据序列化/反序列化。是否更喜欢通过套接字的某种数据流的Web服务?你怎么会意识到两者中的任何一个?

EN

回答 2

Stack Overflow用户

发布于 2018-09-20 08:43:12

构建一个服务层并通过RMI公开它 - 可能是你拥有JBoss的EJB3无状态会话bean,可能是纯粹的RMI。除非有特殊需要,否则我不会打扰网络服务。RMI将为您提供序列化的案例。服务层需要公开一种方法,以使用在Swing应用程序启动时输入的凭据对用户进行身份验证。所有数据调用都通过服务层进行。Swing应用程序中不存在SQL。除了隐藏数据库凭证之外,还有其他的这种安排。不仅最终得到了分层架构,而且通过在服务器上拥有单个数据源,可以通过在所有客户端之间共享预准备语句来提高效率。

票数 0
EN

Stack Overflow用户

发布于 2018-09-20 09:42:28

那么希望用户能够在不知道凭据的情况下访问数据库吗?唯一的选择是服务器端数据库访问。遗憾的是,无法在Java中隐藏用户名和密码 - 如果将其放入属性文件并加密,则确定的攻击者仍然可以附加调试器并查看代码中保存的值。

此外,除非通过安全连接连接到数据库,否则有人可以运行数据包嗅探器(如tcpdump)并获取凭据。正在运行JBoss服务器,最好的方法是设置远程EJB,以便您的客户端应用程序不直接访问数据库 - 它必须通过您的EJB方法。(它不一定是EJB,顺便说一下,如果你愿意,你可以做一些像Web服务这样的事情)。关键是服务器直接与数据库通信,而客户端唯一的访问是通过在服务器上定义的一组有限的接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档