Eclipse 每当用户在web服务中使用login()时生成随机会话id
我是web服务新手。在web服务中,我试图为用户进行的每个登录生成唯一的会话id。 我想做的是Eclipse 每当用户在web服务中使用login()时生成随机会话id,eclipse,web-services,axis2,Eclipse,Web Services,Axis2,我是web服务新手。在web服务中,我试图为用户进行的每个登录生成唯一的会话id。 我想做的是 编写一个具有登录和注销方法的java文件 为它生成WSDL文件 然后使用我生成的WSDl文件生成web服务客户端(使用EclipseIDE) 使用生成的包(客户端存根)并调用方法 请让我知道,如果有任何缺陷,在我的执行方式 1。包含所需方法的Java文件 public String login(String userID, String password) { if (userID.equal
public String login(String userID, String password) {
if (userID.equalsIgnoreCase("sadmin")
&& password.equalsIgnoreCase("sadmin")) {
System.out.println("Valid user");
sid = generateUUID(userID);
} else {
System.out.println("Auth failed");
}
return sid;
}
private String generateUUID(String userID) {
UUID uuID = UUID.randomUUID();
sid = uuID.toString();
userSessionHashMap = new HashMap<String, String>();
userSessionHashMap.put(userID, sid);
return sid;
}
public void logout(String userID) {
Set<String> userIDSet = userSessionHashMap.keySet();
Iterator<String> iterator = userIDSet.iterator();
if (iterator.equals(userID)) {
userSessionHashMap.remove(userID);
}
}
在运行this文件时,出现以下错误
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection refused: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused: connect
有人能提出处理这项任务的替代方法吗?这个错误的原因可能是什么。Web服务应该是无状态的,所以使用“登录”和“注销”Web服务方法没有多大意义 不幸的是,如果您想保护web服务调用,您必须在每个调用中编码安全性。在您的例子中,这意味着将userId和密码传递给每个方法
或考虑为安全性添加自定义处理程序。阅读更多关于处理程序的信息。
但我听说有一种叫做“有状态Web服务”的东西。这会有帮助吗?如果有,它是如何实现的。这似乎给我带来了很多麻烦:)AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.ConnectException: Connection refused: connect
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused: connect