通过SOAP服务向JIRA进行身份验证时保护密码存储

时间:2012-09-20 15:35:54

标签: java security soap passwords jira

我正在用Java编写一个应用程序,它需要在调用该服务上的方法之前登录到远程SOAP服务(JIRA)。

我已经看过如何执行此操作的示例,例如http://www.j-tricks.com/1/post/2010/8/jira-soap-client.html,但是我担心我需要在某些时候将密码存入内存。

我已经读过我应该将密码存储为char []但是,我仍然担心将密码存储在明文中。

如何存储客户端用于登录SOAP服务的密码?我该如何阅读并将其传递给JIRA?

修改的 这个应用程序将使用Spring,因此密码可能存储在bean配置文件中而不是代码中。

2 个答案:

答案 0 :(得分:0)

SOAP登录方法返回可用于会话的字符串标记,因此在使用密码后无需将密码存储在内存中。但我认为你在谈论长期使用。应用程序通常会有一个配置页面,允许设置更永久的身份验证,然后每次重新配置连接时都需要输入密码。

答案 1 :(得分:0)

这是我最终决定的。

首先,澄清一些。

  • 密码已加密并存储在数据库中。
  • 密码是静态填充的(由DBA提供)。
  • 这是加密和解密的练习,因此散列算法(如MD5)不适用。

我研究了在SQL中加密和在Java中解密的方法,但没有一种方法特别好。因此,我决定采用以下方法。

  • 当DBA填充密码时,他们在输入密码时运行DBMS特定的加密方法(例如MySQL的加密)(例如插入到creds(用户,密码)值('bob',加密('密码')) ;
  • 用于检索密码的SQL,作为属性传递给spring应用程序,包括解密(例如,选择用户,来自creds的解密(密码))。

除此之外,这是用户管理和锁定数据库的练习。例如。只有某些人(DBA)才能获得完全访问权限,而应用程序使用只读用户。

希望将来可以帮助其他人。