WEB开发网
开发学院软件开发Java 用 Apache Geronimo 和 Axis2 实现在线银行,第 2... 阅读

用 Apache Geronimo 和 Axis2 实现在线银行,第 2 部分: 服务:填充内容(上)

 2010-03-19 00:00:00 来源:WEB开发网   
核心提示: 清单 9. 注销publiccom.example.www.onlinebanking.xsd.LogoutResponseDocumentLogout(com.example.www.onlinebanking.xsd.LogoutDocumentparam10)throwsAxisFault

清单 9. 注销

  public com.example.www.onlinebanking.xsd. 
      LogoutResponseDocument Logout 
    (com.example.www.onlinebanking.xsd.LogoutDocument param10 ) 
      throws AxisFault{ 
 
    LogoutDocument. 
      Logout req = 
      param10.getLogout(); 
 
    LogoutResponseDocument res = 
      LogoutResponseDocument.Factory.newInstance(); 
    LogoutResponseDocument. 
      LogoutResponse res2 = 
      res.addNewLogoutResponse(); 
 
    String username = matchUserNameToToken(req.getToken()); 
    if(username == null) throw new AxisFault("Invalid token!"); 
 
    if(username != null){ 
      usernameToValidToken.remove(username); 
      res2.setConfirmation(true); 
    } 
    return res; 
  } 

此方法检索与传入的令牌相匹配的用户名,用户名/令牌组合随后会从 usernameToValidToken 内包含的有效令牌列表中删除。随后返回已从列表中删除的确认信息,否则将保持默认值 false。

再看看 matchUserNameToToken 方法。

将用户名与传递的令牌相匹配

除登录操作之外,所有的操作都要调用此方法。它返回与传入令牌相对应的用户名。定义 matchUserNameToToken 方法,如 清单 10 所示。

清单 10. 将用户名与令牌相匹配

  public String matchUserNameToToken(byte[] token){ 
    String username = null; 
    boolean match = false; 
    for(Iterator i = usernameToValidToken.keySet().iterator(); 
        i.hasNext();){ 
      username = (String)i.next(); 
      byte[] t = (byte[])usernameToValidToken.get(username); 
       
      if(t.length == token.length){ 
        match = true; 
        for(int j = 0; j < t.length; j++){ 
          if(token[j] != t[j]){ 
            match = false; 
            break; 
          } 
        } 
        if(match) break; 
      } 
    } 
    if(!match){ 
      System.out.println("Token invalid!"); 
      username = null; 
    } 
    else 
      System.out.println("Token valid!"); 
    return username; 
  } 

上一页  5 6 7 8 9 10 

Tags:Apache Geronimo Axis

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接