用 Apache Geronimo 和 Axis2 实现在线银行,第 2 部分: 服务:填充内容(上)
2010-03-19 00:00:00 来源:WEB开发网清单 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;
}
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››Apache HTTPServer2.2.16 发布
- ››Apache Tomcat 6.0.29 (稳定版)
- ››Geronimo V2.1.5 中的安全提升
- ››Apache HTTP Server 2.3.6 alpha 发布
- ››Apache+Subversion如何实现版本控制
- ››Apache+Subversion完美结合
- ››Apache的几种常见应用举例与分析
更多精彩
赞助商链接