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” ...
随机推荐
- 学习一点Markdown的基本知识
本文于2017年3月18日首发于LinkedIn,请参考链接 这个世界的进步是由一些"懒"的人推动的.今天讲的这个Markdown,其实也是因为一批厌倦了HTML的各种标签的语法, ...
- 浅谈HashMap的内部实现
权衡时空 HashMap是以键值对的方式存储数据的. 如果没有内存限制,那我直接用哈希Map的键作为数组的索引,取的时候直接按索引get就行了,可是地价那么贵,哪里有无限制的地盘呢. 如果没有时间限制 ...
- 使用shape来定义控件的一些显示属性
Android中常常使用shape来定义控件的一些显示属性,今天看了一些shape的使用,对shape有了大体的了解,稍作总结 先看下面的代码: <shape> <!-- 实心 -- ...
- Android设计模式之代理模式
代理模式: 为其他对象提供一种代理以控制对这个对象的访问 Subject类定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy inte ...
- pcntl_fork 导致 MySQL server has gone away 解决方案
pcntl_fork 前连数据库,就会报 MySQL server has gone away 错误.原因是子进程会继承主进程的数据库连接,当mysql返回数据时,这些子进程都可以通过这个连接读到数据 ...
- YARN 命令总结
起因:YARN 使用capability schedule queue调度container,spark 的app卡死在YARN的队列里面无法出来,无奈请教大神时,可用[yarn applicatio ...
- 功能总结之MongDB初探
题外话 工作3年,了解的技术颇多,但都是一知半解,了解不是很透澈.用过的技术,就像猴子搬过的包谷,搬一个丢一个.几年风雨,真有点一缕清风过,片叶不沾身的味道. 为强化知识点,提升文档及学习能力,我把以 ...
- 解决在eclipse中写ImageView时有警告的问题
Eclipse中写了一个android程序其中main.xml中ImageView哪行是个黄叹号!不知道为什么? 解决办法: android:contentDescription="@str ...
- virtualenv 安装不同版本的虚拟环境的办法
废话不多说直接上代码 virtualenv -p C:\Python27\python2.exe env 上面的*.exe是你要使用的python版本的exe文件的绝对路径. 官方文档参考:http: ...
- 如何使用ArcGIS发布LiDAR 点云
LiDAR--Light Detection And Ranging,即激光探测与测量技术. 下面将介绍如何使用ARCGIS来发布LiDAR的成果点云数据. LiDAR的点云数据一般格式为LAS.在A ...