package cn.com.webservice.interceptor;
import java.util.Iterator;
import javax.xml.namespace.QName;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPHeader;
import javax.xml.soap.SOAPMessage;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import cn.com.webservice.util.HighsetInit;
/**
* webservice 拦截器
*/
public class AuthInterceptor extends AbstractPhaseInterceptor<SoapMessage> {
private static final Logger log = LogManager.getLogger(AuthInterceptor.class);
private static final QName QNAME_AUTHORIZE = new QName("authorize");
private static final String WS_USERNAME = HighsetInit.getProperty("WS_USERNAME");
private static final String WS_PASSWORD = HighsetInit.getProperty("WS_PASSWORD");
public AuthInterceptor() {
super(Phase.PRE_PROTOCOL);
getAfter().add(SAAJInInterceptor.class.getName());
}
public void handleMessage(SoapMessage message) throws Fault {
SOAPMessage mess = message.getContent(SOAPMessage.class);
if (mess == null) {
SAAJInInterceptor.INSTANCE.handleMessage(message);
mess = message.getContent(SOAPMessage.class);
}
SOAPHeader head = null;
try {
head = mess.getSOAPHeader();
} catch (SOAPException e) {
log.error("获取soap header时异常", e);
}
boolean flag = false;
String errMsg = "";
if (head != null) {
// 验证ws用户名密码
Iterator<?> authEle = head.getChildElements(QNAME_AUTHORIZE);
if (authEle != null && authEle.hasNext()) {
Element authorize = (Element) authEle.next();
NodeList usernameNode = authorize.getElementsByTagName("username");
NodeList passwordNode = authorize.getElementsByTagName("password");
String username = null;
String password = null;
if (usernameNode != null && usernameNode.getLength() > 0) {
username = usernameNode.item(0).getTextContent();
}
if (passwordNode != null && passwordNode.getLength() > 0) {
password = passwordNode.item(0).getTextContent();
}
if (username != null && username.equals(WS_USERNAME)
&& password != null && password.equals(WS_PASSWORD)) {
flag = true;
} else {
errMsg = "认证错误";
}
} else {
errMsg = "认证错误";
}
} else {
errMsg = "消息头不能为空";
}
if (!flag) {
SOAPException soapExc = new SOAPException(errMsg);
throw new Fault(soapExc);
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
CXF创建Webservice接口与Spring整合实例
共182个文件
jar:147个
properties:8个
xml:7个
3星 · 超过75%的资源 需积分: 24 39 下载量 142 浏览量
2017-10-04
18:13:40
上传
评论
收藏 53.38MB ZIP 举报
温馨提示
通过CXF方式创建带用户认证的Webservice接口(含调用程序)与SSH框架完美整合。
资源推荐
资源详情
资源评论
收起资源包目录
CXF创建Webservice接口与Spring整合实例 (182个子文件)
AuthInterceptor.class 4KB
HighsetInit.class 3KB
AddHeaderInterceptor.class 2KB
TestNew.class 1KB
DemoServiceImpl.class 975B
IDemoService.class 547B
.classpath 14KB
Entries 186B
cxf-2.5.1.jar 5.61MB
hibernate3.jar 3.95MB
jaxb-xjc-2.1.7.jar 2.98MB
xalan-2.7.0.jar 2.6MB
xmlbeans-2.3.0.jar 2.54MB
weservice.jar 2.21MB
poi-3.7.jar 1.6MB
axis.jar 1.53MB
iText-5.0.2.jar 1.49MB
aspectjweaver.jar 1.47MB
jalopy-1.5rc3.jar 1.27MB
QRCode.jar 1.05MB
xfire-all-1.2.6.jar 883KB
jaxb-impl-2.1.7.jar 835KB
org.springframework.context-3.1.3.RELEASE.jar 818KB
spring-context-3.1.2.RELEASE.jar 813KB
mysql-connector-java-5.1.17-bin.jar 769KB
httpclient-4.5.2.jar 719KB
jackson-mapper-asl-1.8.3.jar 651KB
jxl-2.1.jar 645KB
javassist-3.12.0.GA.jar 618KB
org.springframework.beans-3.1.3.RELEASE.jar 579KB
spring-beans-3.1.2.RELEASE.jar 578KB
org.springframework.web.servlet-3.1.3.RELEASE.jar 564KB
spring-webmvc-3.1.2.RELEASE.jar 564KB
commons-collections-3.1.jar 546KB
org.springframework.web-3.1.3.RELEASE.jar 542KB
spring-web-3.1.2.RELEASE.jar 536KB
wstx-asl-3.2.9.jar 512KB
zxing-core-2.2.jar 508KB
bcel-5.1.jar 504KB
jaxws-tools-2.1.3.jar 497KB
mail.jar 496KB
application-core-2.0.jar 485KB
xstream-1.4.2.jar 470KB
log4j-1.2.16.jar 470KB
hibernate-validator-4.3.0.Final.jar 465KB
org.springframework.core-3.1.3.RELEASE.jar 441KB
spring-core-3.1.2.RELEASE.jar 439KB
antlr-2.7.6.jar 433KB
axiom-api-1.2.12.jar 420KB
quartz-1.6.0.jar 412KB
jstl-1.2.jar 405KB
jibx-bind-1.2.jar 398KB
org.springframework.jdbc-3.1.3.RELEASE.jar 395KB
spring-jdbc-3.1.2.RELEASE.jar 395KB
org.springframework.orm-3.1.3.RELEASE.jar 372KB
fastjson-1.1.28.jar 354KB
spring-security-core-3.1.3.RELEASE.jar 332KB
easyjweb-core-1.3.jar 332KB
org.springframework.aop-3.1.3.RELEASE.jar 325KB
spring-aop-3.1.2.RELEASE.jar 325KB
iTextAsian.jar 324KB
backport-util-concurrent-3.1.jar 324KB
dom4j-1.6.1.jar 307KB
commons-httpclient-3.1.jar 298KB
cglib-2.2.2.jar 280KB
spring-security-oauth2-1.0.1.BUILD-SNAPSHOT.jar 274KB
cglib-2.2.jar 272KB
spring-security-web-3.1.3.RELEASE.jar 248KB
commons-lang-2.3.jar 240KB
org.springframework.transaction-3.1.3.RELEASE.jar 239KB
spring-tx-3.1.2.RELEASE.jar 239KB
ehcache.jar 227KB
org.springframework.test-3.1.3.RELEASE.jar 227KB
cxf-services-wsn-api-2.6.14.jar 226KB
tribes-6.0.16.jar 223KB
jackson-core-asl-1.8.3.jar 222KB
jaxen-1.1.1.jar 222KB
easydbo-0.9.1.jar 210KB
spring-security-config-3.1.3.RELEASE.jar 199KB
org.springframework.jms-3.1.3.RELEASE.jar 194KB
cxf-services-sts-core-2.6.14.jar 187KB
org.springframework.web.portlet-3.1.3.RELEASE.jar 186KB
gson-2.2.2.jar 185KB
commons-beanutils.jar 184KB
woden-impl-commons-1.0M9.jar 182KB
displaytag-2.0.jar 177KB
org.springframework.expression-3.1.3.RELEASE.jar 174KB
spring-expression-3.1.2.RELEASE.jar 172KB
commons-io-2.2.jar 170KB
httpcore-4.0.jar 169KB
axiom-dom-1.2.12.jar 156KB
json-lib-2.4-jdk15.jar 155KB
jdom.jar 150KB
woden-api-1.0M9.jar 147KB
XmlSchema-1.4.7.jar 145KB
wsdl4j-1.6.2.jar 145KB
jibx-run-1.2.jar 126KB
axiom-impl-1.2.12.jar 120KB
commons-dbcp.jar 105KB
org.springframework.context.support-3.1.3.RELEASE.jar 105KB
共 182 条
- 1
- 2
资源评论
- Ambili-yue2019-01-22太老了版本王绍桦2019-03-06这个cxf版本是2.5.1的,要项目不兼容的话可以在mvn资源库下载个高版本的~
- qq5400616272018-04-13不知道怎么样王绍桦2019-03-06要项目有用到cxf方式的webservice接口的话可以试下,我测试的没问题~
王绍桦
- 粉丝: 138
- 资源: 27
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- mongodb数据库基本操作.pdf
- C#,布尔可满足性问题(Boolean Satisfiability Problem)算法与源代码
- C#,回文分割问题(Palindrome Partitioning Problem)算法与源代码
- C#,煎饼排序问题(Pancake Sorting Problem)算法与源代码
- C#,排列组合的堆生成法(Heap’s Algorithm for generating permutations)算法与源代码
- C#,老鼠迷宫问题的回溯法求解(Rat in a Maze)算法与源代码
- 6693eeb8d683458a07938615fba9e68f.apk
- C#,数值计算,解微分方程的龙格-库塔二阶方法与源代码
- C#,数值计算,用割线法(Secant Method)求方程根的算法与源代码
- C#,子集和问题(Subset Sum Problem)的算法与源代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功