Eclipse 每当用户在web服务中使用login()时生成随机会话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

我是web服务新手。在web服务中,我试图为用户进行的每个登录生成唯一的会话id。 我想做的是

  • 编写一个具有登录和注销方法的java文件
  • 为它生成WSDL文件
  • 然后使用我生成的WSDl文件生成web服务客户端(使用EclipseIDE)
  • 使用生成的包(客户端存根)并调用方法
  • 请让我知道,如果有任何缺陷,在我的执行方式

    1。包含所需方法的Java文件

    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