我正在开发一个需要一些基本身份验证的soap web服务。
因此,我们的想法是只要求所有webservice方法都包含用户名和密码参数,然后验证这些值是否存在于我们的用户数据库中:
public String[][] someWebserviceMethod(String username, String password) throws FailedLoginException {
// Verify that user with username and password exists
//do database stuff and return data
}
这确实在客户端引发了一个问题。在用户最初登录到应用程序之后,我们需要将用户名和密码以纯文本的形式存储在内存中。可以接受吗?如果不是,首选的方法是什么?
此外,我的webservice将托管在https上。这是否确保在客户端发送soap请求时密码被安全加密?
编辑:sessionid有效吗?我从来没有在没有框架或web服务器的情况下实现过。可能是这样的:
客户端发送用户名和密码。
如果客户端有效,服务器将返回随机字符串(sessionid)。
服务器在数据库中存储sessionid和时间戳
客户端将sessionid存储在内存中,而不存储密码
客户端请求具有用户名和sessionid的web方法
如果存在用户名和sessionid为的用户,并且时间戳在超时时间内,则授予访问权限并更新时间戳。否则强制重新登录。
1条答案
按热度按时间r6hnlfcb1#
是的https-s代表安全,它加密所有通信。但是你可以使用其他一些加密方法,比如md5,sha-1和更常见的方法。如果您是为了一些基本培训而这样做的,那么可以将数据存储在纯文本/json中而不进行任何加密,否则请检查以下哈希函数:
https://en.wikipedia.org/wiki/sha-1
https://en.wikipedia.org/wiki/md5