Web服务的用户身份验证 - 存储在客户端密码

问题描述 投票:0回答:1

我的工作需要一些基本的身份验证的Web服务的肥皂。

这样的想法是只要求所有的Web服务方法包含用户名和密码参数,然后验证,在我们的用户数据库中存在的这些值:

public String[][] someWebserviceMethod(String username, String password) throws FailedLoginException {

    // Verify that user with username and password exists

    //do database stuff and return data
}

这确实在客户端提出一个问题。用户首次登录到应用程序后,我们需要在内存中的用户名和密码保存为纯文本。那是可以接受的?如果没有什么是首选的方法?

另外,我的web服务将在HTTPS举行。这是否确保当客户端发送SOAP请求密码安全加密?

编辑:请问一个会话ID的工作?我从来没有实现一个没有框架或Web服务器这样做是为了我。也许是这样的:

  1. 客户端发送的用户名和密码。
  2. 如果客户是有效的,服务器返回随机字符串(阶段ID)。
  3. Server存储会话ID和数据库时间戳
  4. 客户端存储的SessionID在内存中,不会保存密码
  5. 客户端请求的Web方法使用用户名和会话ID
  6. 如果用户名和会话ID的用户存在,超时期限内的时间戳,授权访问和更新时间戳。否则力重新登录。
java authentication soap
1个回答
-3
投票

是HTTPS - S代表安全并加密所有通信。但你总是可以使用一些其他的加密方法,如MD5,SHA-1,更常见的。如果你这样做了一些基本的训练它的确定存储在无任何加密的明文/ JSON数据,否则看看这些哈希函数:

© www.soinside.com 2019 - 2024. All rights reserved.