- 浏览: 7851691 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
import java.util.List; import javax.servlet.http.HttpServletRequest; import org.apache.cxf.interceptor.Fault; import org.apache.cxf.message.Message; import org.apache.cxf.phase.AbstractPhaseInterceptor; import org.apache.cxf.phase.Phase; import org.apache.cxf.transport.http.AbstractHTTPDestination; /** * IP地址拦截器 * 可在filter.xml文件中配置允许和拒绝访问的IP地址 * @author Sunshine * */ public class IpAddressInInterceptor extends AbstractPhaseInterceptor<Message> { public IpAddressInInterceptor() { super(Phase.RECEIVE); } public void handleMessage(Message message) throws Fault { HttpServletRequest request = (HttpServletRequest) message.get(AbstractHTTPDestination.HTTP_REQUEST); // 通过一个IpAddressConfig对象,从XML文件中读取预先设置的允许和拒绝的IP地址,这些值也可以来自数据库 IpAddressConfig config = IpAddressConfig.getInstance(); // 获取config实例 List<String> allowedList = config.getAllowedList(); // 允许访问的IP地址 List<String> deniedList = config.getDeniedList(); // 拒绝访问的IP地址 String ipAddress = request.getRemoteAddr(); // 取客户端IP地址 // 先处理拒绝访问的地址 for (String deniedIpAddress : deniedList) { if (deniedIpAddress.equals(ipAddress)) { throw new Fault(new IllegalAccessException("IP address " + ipAddress + " is denied")); } } // 如果允许访问的集合非空,继续处理,否则认为全部IP地址均合法 if (allowedList.size() > 0) { boolean contains = false; for (String allowedIpAddress : allowedList) { if (allowedIpAddress.equals(ipAddress)) { contains = true; break; } } if (!contains) { throw new Fault(new IllegalAccessException("IP address " + ipAddress + " is not allowed")); } } } }
IP地址允许和阻止列表来自一个自定义的filter.xml文件,这个值也可以来自数据库。当显式抛出Fault异常的时候,这个请求即被阻止,否则放行。
在applicationContext-cxf.xml中要相应的定义这个IP地址拦截器,使之生效。
<!-- IP地址输入拦截器 --> <bean id="ipAddressInInterceptor" class="com.yourcompany.ws.interceptor.IpAddressInInterceptor" /> <!-- 用户名和密码输入拦截器 --> <bean id="wss4jInInterceptor" class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"> <property name="properties"> <map> <entry key="action" value="UsernameToken Timestamp" /> <entry key="passwordType" value="PasswordDigest" /> <entry key="passwordCallbackRef" value-ref="digestPasswordCallback" /> </map> </property> </bean> <!-- 密码回调 --> <bean id="digestPasswordCallback" class="com.yourcompany.ws.handler.DigestPasswordCallback" /> <!-- 全局Bus(输入拦截器) --> <cxf:bus> <cxf:inInterceptors> <ref bean="ipAddressInInterceptor" /> <ref bean="wss4jInInterceptor" /> </cxf:inInterceptors> </cxf:bus> <!-- WebService服务 --> <jaxws:endpoint id="helloWorldServiceEP" address="/HelloWorldService"> <jaxws:implementor ref="helloWorldService" /> </jaxws:endpoint> <bean id="helloWorldService" class="com.yourcompany.ws.impl.HelloWorldServiceImpl" />
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1477方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 1965前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3411info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2182import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 446https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 628public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 551https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 621https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 394https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 4611 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3038微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 553https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1773什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 905本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1262原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 804public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 617在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 878-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 705一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1852介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
CXF3.0 Spring3.2 自定义拦截器
11.为CXF客户端添加自定义拦截器完成权限控制
10.为CXF服务器端添加自定义拦截器进行权限检查
spring4+cxf3,因为自己项目要用到接口开发,所以综合现有网上所有教程,终于成功写出能自动注入的demo,这个是含拦截器
CXF 自定义拦截器实现的 webservice安全机制实例工程, 带jar包 ,代码注释详细 内有说明文档, 由于资源过大 ,所以客户端jar包 删除掉了, 只需要把服务端的jar 拷贝到 客户端即可 , 小弟刚刚研究完 CXF 安全 。...
这里少了一个类,是根据实体类生成xml的文件下载地址为:http://download.csdn.net/detail/qq_14996421/9495688
注册自定义拦截器,添加拦截路径和排除拦截路径WebAppConfig
CXF+Spring+自定义拦截器 webservice源码下载
实现了客户端和服务端,客户端添加header服务端获取验证!
Web Service学习-CXF开发Web Service的权限控制(二)
CXF使用EndpointImpl发布WebService加入拦截器
08.CXF拦截器的理论以及如何为CXF的客户端和服务器端添加拦截器
包含表结构(mysql表创建语句),字段说明与使用;拦截器代码(可根据业务进行修改);
ssh2-interceptor拦截器(权限管理).
讲解了cxf实现拦截器的原因、核心API及使用方法
CXF发布WebService加入拦截器
13.为CXF与Spring整合发布WebService添加拦截器进行权限控制
基于cxf webservice的加密,项目代码只是一个demo,有问题的可以加我
webservice拦截器demo-服务端和调用端
webservice的cxf框架拦截器demo.rar