webService 下得 拦截
当我们 对webservice 接口的 拦截 更具权限 来 判断 是否可以调用 一下是我的 一个demo
首先 我们写一个 拦截类
import javax.xml.soap.SOAPException;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
import org.apache.cxf.message.MessageContentsList;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import org.springframework.beans.factory.annotation.Autowired;
import com.sinotrans.eaiconsole.model.EsUserModel;
import com.sinotrans.eaiconsole.user.service.LoginManager;
public class WebServiceUserAuthorityInterceptor extends AbstractPhaseInterceptor<Message> {
@Autowired
LoginManager loginManager;
public WebServiceUserAuthorityInterceptor() {
super(Phase.PRE_INVOKE);
}
public void handleMessage(Message message) throws Fault { // 指定CXF获取客户端的HttpServletRequest
// :
// http-request;
MessageContentsList contents = MessageContentsList
.getContentsList(message);
String userName = "", pwd = "";
if (contents != null && contents.size() > 0) {
userName = (String) contents.get(0);
pwd = (String) contents.get(1);
EsUserModel eum = loginManager.longinWebServiceUserAuthority(
userName, pwd);
if (null == eum) {
SOAPException soapExc = new SOAPException("用户名密码认证失败");
throw new Fault(soapExc);
}
} else {
SOAPException soapExc = new SOAPException("未输入参数信息");
throw new Fault(soapExc);
}
}
}
接着我们在 cxf 里配置如下
//我们的拦截类 注入进去
<bean id="inMessageInterceptor"
class="com.sinotrans.eaiconsole.Interceptor.WebServiceUserAuthorityInterceptor">
</bean>
//给需要拦截的 方法 注入 我们的拦截类
<jaxws:endpoint id="lMSWebService"
implementor="com.sinotrans.eaiconsole.service.impl.LMSWebServiceImpl"
address="/lMSWebService">
<jaxws:inInterceptors>
<ref bean="inMessageInterceptor" />
</jaxws:inInterceptors>
</jaxws:endpoint>
webService 下得 拦截的更多相关文章
- java自定义注解知识实例及SSH框架下,拦截器中无法获得java注解属性值的问题
一.java自定义注解相关知识 注解这东西是java语言本身就带有的功能特点,于struts,hibernate,spring这三个框架无关.使用得当特别方便.基于注解的xml文件配置方式也受到人们的 ...
- 为webService添加Interceptor(拦截器)
今天写一个简单的拦截器,以webService接口为例: 背景:H5的一个项目,只要调用H5webService 接口下面的方法都会触发一个AuthorityInterceptor去验证是否调用类型是 ...
- SpringMVC框架下的拦截器
在eclipse的javaEE环境下:导包.... web.xml文件中的配置: <?xml version="1.0" encoding="UTF-8" ...
- WebService下实现大数据量的传输
设置RemotingFormat = SerializationFormat.Binary;再序列化,通过WebService传输,客户端接收,再反序列化,确实效果大大的优于直接传送DataSet,不 ...
- springMVC-RESTful约束下dispatcher拦截对象优化
警告: No mapping found for HTTP request with URI [/management/fonts/glyphicons-halflings-regular.woff] ...
- Java进阶知识02 Struts2下的拦截器(interceptor)和 过滤器(Filter)
一.拦截器 1.1.首先创建一个拦截器类 package com.bw.bms.interceptor; import com.opensymphony.xwork2.ActionContext; i ...
- Spring Boot下使用拦截器
Spring Boot对于原来在配置文件配置的内容,现在全部体现在一个类中,该类需要继承自WebMvcConfigurationSupport类,并使用@Configuration进行注解,表示该类为 ...
- .NET下如何拦截鼠标、键盘消息?Win32NET来帮你
Win32NET是一个Win32API的.NET下封装的类库,包含: 1: 常用win32的API的net封装 2:鼠标.键盘.热键hook钩子模块, 3:模拟键盘输入文字(支持各种字符文字.不同语言 ...
- Linux下iptables拦截Nginx的问题
环境:CentOS 6.4 X64,Nginx 1.5.3 问题:配置好Nginx后,加入了“iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT” ...
随机推荐
- php错误的处理
错误的分类 通常分3种: 语法错误: 程序运行之前,都要先检查语法.如果语法有错误,就会立即报错,并且不会去执行程序. 运行时错误: 就是在程序语法检查通过后,,开始运行程序并在此过程中遇到的错误.常 ...
- 记一次企业级爬虫系统升级改造(六):基于Redis实现免费的IP代理池
前言: 首先表示抱歉,春节后一直较忙,未及时更新该系列文章. 近期,由于监控的站源越来越多,就偶有站源做了反爬机制,造成我们的SupportYun系统小爬虫服务时常被封IP,不能进行数据采集. 这时候 ...
- WebSocket数据包协议详解
其实我一直想不明白HTML5包装个应用层办议作为Socket通过基础目的是为了什么,其实直接支持Socket tcp相对来说更加简单灵活.既然标准已经制定而浏览器也支持那对于我们开发者来说只能用的分. ...
- 技术方案:在外部网址调试本地js(基于fiddler)
1 解决的问题 1) 场景1:生产环境报错 对前台开发来说,业务逻辑都在js中,所以报错90%以上都是js问题. 如果生产环境出现报错,但是测试环境正常.这时修改了代码没有环境验证效果, ...
- Dive in python Chapter3 实例
def buildConnectionString(params): """Build a connection string from a dictionary Ret ...
- FastDFS分布文件系统相关资料索引
FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片.视频.文档等文件.对于互联网应用,和其他分布式文件系统相比,优势非常明显.具体情况大家可以看相关的介绍文档,包括 ...
- 解决子元素用css float浮动后父级元素高度自适应高度
1.在最后一个子元素后面清除浮动 2.父元素加over-flow:hidden;(副作用:子元素定位不能超出父元素的范围) 3.父元素也一样浮动(最笨的方法): 4.子元素使用inline-block ...
- Maven项目搭建(二):Maven搭建SSM框架
上一章给大家讲解了如何使用Maven搭建web项目. 这次给大家介绍一下怎么使用Maven搭建SSM框架项目. 首先我们来看一下pom.xml的属性介绍: project: pom的xml根元素. p ...
- 无线接收信号强度(RSSI)那些事儿
本文由嵌入式企鹅圈原创团队成员黄鑫供稿. 本文所述的原理适用于所有无线传输技术,只是用蓝牙来举例.应该说,嵌入式企鹅圈更加偏重于嵌入式和物联网.安卓技术原理方面的知识分享和传播,其次才是实践,尽管很多 ...
- vue.js中,input和textarea上的v-model指令到底做了什么?
v-model是 vue.js 中用于在表单表单元素上创建双向数据绑定,它的本质只是一个语法糖,在单向数据绑定的基础上,增加了监听用户输入事件并更新数据的功能: 对,它本质上只是一个语法糖,但到底是一 ...