我使用xifre开发的服务端,服务端添加了身份验证(验证用户名,和密码)
身份验证代码如下:
public class AuthenticationHandler extends AbstractHandler {
Properties props = new Properties();
SimpleDateFormat time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private DAOUtil dao;
public void invoke(MessageContext cfx) throws Exception {
InterfaceLogger log = new InterfaceLogger();
String url = this.getClass().getClassLoader().getResource("validate.properties").toString().substring(5);
InputStream in = new BufferedInputStream (new FileInputStream(url));
props.load(in);
String flag = props.getProperty("flag");
String psd = props.getProperty("password");
String uname = props.getProperty("username");
if(flag.equals("false"))
return;
HttpServletRequest request = XFireServletController.getRequest();
OperationInfo o = (OperationInfo) cfx.getService().getServiceInfo().getOperations().iterator().next();
String service = o.getService().getServiceClass().getName()+"."+o.getMethod().getName();
//生成接口访问日志
log.setContent(cfx.getCurrentMessage().getBody().toString());
log.setIp(request.getRemoteAddr());
log.setLog_time(time.format(new Date()));
log.setName(service);
log.setType("*******");
//将日志存入到session中
cfx.getSession().put(cfx.getId(), log);
if (cfx.getInMessage().getHeader() == null) {
throw new org.codehaus.xfire.fault.XFireFault("请求必须包含验证信息",
org.codehaus.xfire.fault.XFireFault.SENDER);
}
Element token = cfx.getInMessage().getHeader().getChild(
"AuthenticationToken");
if (token == null) {
throw new org.codehaus.xfire.fault.XFireFault("请求必须包含身份验证信息",
org.codehaus.xfire.fault.XFireFault.SENDER);
}
String username = token.getChild("Username").getValue();
String password = token.getChild("Password").getValue();
log.setUser_name(username);
try {
// 进行身份验证 ,只有abcd@1234的用户为授权用户
if (username.equals(uname) && password.equals(psd))
// 这语句不显示
System.out.println("身份验证通过");
else
throw new Exception();
} catch (Exception e) {
log.setEnd_time(time.format(new Date()));
dao.getSqlMapClientTemplate().insert("logger", log);
throw new org.codehaus.xfire.fault.XFireFault("非法的用户名和密码",
org.codehaus.xfire.fault.XFireFault.SENDER);
}
}
现在遇到的问题是:其他系统有可能使用axis客户端访问,但是我不知道怎么在xifre服务端获取axis客户端传来的用户名,密码
分享到:
相关推荐
用xfire技术来实现服务端的开发,用axis1的技术来实现客户段的调用。一个完整的实例,包含所需要的全部jar包,下载后可以直接运行,简单 方便 通用
axis2客户端调用服务端,带用户身份认证
Axis1.4从服务端到客户端图文攻略,同时附赠Axis1.4 Jar包。 本攻略经过多次测试可靠耐用,并同时带有详细的文字说明,保证一学就会!从现在起axis不再是问题!让你爱上web service!
axis2测试服务端所需jar包.zip 在jdk 1.7 ,1.8 亲测没问题,项目已上线
Axis2与Eclipse整合开发的Web Service的服务端
基于axis2实现的webservice简单实现(客户端+服务端)。
axis2服务端源码,带用户身份认证
WebService当服务端两种生成wsdl协议方式,Axis和XFire(CXF)前者搞过WebService的人应该都知道扩展性比较好但是不支持Spring,后者基本逻辑全都封装在了底层API中,模式比较固定,开发比Axis简单,但是没有Axis灵活。...
包含axis以及xfire所需要的jar包
axis2生成客户端服务端代码
cxf_axis_xfire客户端调用的几种方法[收集].pdf
Spring+Axis2+Maven搭建WebService服务端demo测试用例
1.Axis2创建服务端实例:一种是用axis2插件通过实现class生成的myServer.aar,另一种是通过手写services.xml然后用jar -cvf Axis2Server.aar生成的服务,发布的区别。 2.其实把myServer.aar里面的class删掉照样ok,...
axis生成webservice服务端和客户端详细说明及实例
axis1.4服务端的编写,简单的写了一个接口和实现类,客户端可以用WSDL2JAVA生成的代码调用
Web services是建立可互操作的分布式应用程序的新平台。Web service平台是一套标准,它定义了应用程序如何在Web上实现互操作性。你可以用任何你喜欢的语言,在任何...在这里主要介绍两种实现方式:axis2和xfire框架。
基于Axis编写webservice服务端和客户端时需要的jar包整理
axis1,xfire,jUnit 测试案列+开发文档API+axis1.jar下载 代码
axis2服务端的各种写法及客户端的用法及helloworld代码,包配环境部署文件axis2.war 其中 services文件 - - <!-- 实现的服务类,locked 锁定 xsd:false 一种格式 --> ...
手头上做的java web的项目需要调用.net wcf发布的webservice,查资料看到XFire,Axis2,CXF这三种方式,然后仔细进行了一下对比。资料全来源自网络,不保证完全正确。