java - 安全存储重复 Web 服务调用的凭据

标签 java web-services spring spring-security

我正在开发一个供内部使用的 Web 应用程序,该应用程序由对另一个远程服务器的许多 Web 服务请求驱动。内部站点维护自己的 session ,通过用户名/密码凭据进行身份验证,这些凭据本身由 Web 服务支持(即我们进行远程身份验证调用来验证内部站点的登录)。 Web 服务请求还需要使用这些相同的凭据进行身份验证。

我们希望这些 Web 服务请求能够保持无状态,这意味着在每个身份验证请求中传递凭据。问题是以安全的方式记住要使用的凭据(在初始登录期间输入的凭据)。我不知道有什么真正安全的方法来存储密码以供以后重复使用 - 对它进行哈希处理会牺牲我们再次使用它的能力。我们能做的最好的事情就是在 session 范围内对其进行编码,并希望没有恶意开发人员会尝试在线程转储或其他东西中捕获它。

是否有更好的解决方案来解决我所缺少的问题?我是否对在内存中存储编码密码的风险过于偏执,或者我们对该项目的方法是否有缺陷?

最佳答案

我建议使用基于 token 的身份验证,将 token 传递给用户以进行廉价的动态用户验证。一种实现是生成一个传递给用户进行 session 管理的 cookie。

我没用过,但你应该看看oauth可能是example

关于java - 安全存储重复 Web 服务调用的凭据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11566761/

相关文章:

c# - 通过 WebReference 或通过实例化在同一网站内使用 Web 服务之间的性能

web-services - 如何让 Play Framework WS 使用我的 SSLContext

java - 两个 Maven 错误 - 'Type Cannot Be Resolved' + aspect weaver.1.8.0.M1 missing

Spring MVC : PUT and DELETE with a composite key

java - 在Java中如何找到两个字符串之间所有重叠的短语?

java - Android 欢迎界面等待时间太长?

java - 在 Class.forName 在 j2me 中混淆时得到 ClassNotFoundException

java - 使用 DES 和密码加密

javascript - 当 ASP 页面具有 URL 映射时,ASP.NET Javascript 不会被加载

java - 如何选择应该在 Spring Batch + Spring Rest API 中运行的作业