- 浏览: 70405 次
- 性别:
- 来自: 常州
最新评论
文章列表
接上篇,记录一下使用apache cxf和spring使用自签名数字证书实现WebService服务端及客户端的xml签名、加密以及解密和签名验证;
这里仅针对客户端加密和签名并在服务端实现解密及签名验证的单向认证的情形,双向认证可以参照官方sample改进;
实现:
客户端使用客户端私钥进行消息签名、客户端使用服务端公钥消息加密;
服务端使用客户端公钥进行签名验证、服务端使用服务端私钥进行消息解密;
对于xml签名流程理论参考:http://www.ibm.com/developerworks/cn/xml/x-cn-java6xmlsignature/
基本流程:
一 ...
ApacheCXF框架API实现了WS-Security协议,其中包括xml签名、用户令牌、时间戳等;
实现目标:在SOAP WebService的服务端实现客户端身份认证、时间戳形式的安全机制;(密钥加密及签名方式认证待续)
运行环境:apache-cxf-3.1.6、jdk1.7、tomcat7.0.68
cxf框架和spring高度集成,示例安全机制服务端基于spring框架,客户端调用可以使用或不使用spring框架;
对于客户端用户密码验证主要通过cxf框架的WSS4J拦截器实现,base64加密、解密过程本身由框架实现,用户只需要在服务端和客户端的拦截器实现方 ...
因需要实现页面上导出Excel时能够隐藏某些Excel列,(jasperreports6.3.1)尝试修改Jasperreports的jrxml模板文件,比如在jrxml元素table或者文本元素的reportElement标签里添加属性net.sf.jasperreports.export.xls.cell.hidden,结论是无论是xls格式还是xlsx格式都不奏效。
(但是,net.sf.jasperreports.export.xls.freeze.column.edge这个属性实现冻结行列却能生效,不知为何)
于是借助第三方API:JXL、POI,在Excel文件生 ...
小结一下:
1,生成、开放基于jaxws的WebService服务端最基本最简洁的当然是采用基于sun的API jaxws-ri,没有任何集成,基本的tool用于围绕wsdl的生成和生成客户端,和jdk中的类似,
使用com.sun.xml.ws.transport.http.servlet.WSServlet监听,
使用com.sun.xml.ws.transport.http.servlet.WSServletContextListener加载服务,基本的jar包:
FastInfoset.jar gmbal-api-only.jar ha-api.jar javax.annot ...
在ApacheCXF的Sample里以及网上很多有关RESTful HTTPS双向认证的文章介绍仅仅是理论,没有涉及实际环境的实现(客户端和服务端都是localhost);这几天使用Apache的CXF以及 Apache portable HttpClient实现跨IP的JAXRS HTTPS双向认证实现。
在实践中发现tomcat版本7.0.70和7.0.68在TLS/SSL支持上也存在差异。
一,尝试成功的环境
1,JDK7u71(Server端&服务端);
2,Service端Tomcat7.0.68
3,ServiceSDK:apache-cxf-3.1.6
...
速度还可以的几个Maven Mirror
- 博客分类:
- 开发环境及工具
通过代理的情况下访问速度还可以的maven mirror:
Maven的%M2_HOME%\conf\settings.xml中mirrors部分:
<mirrors>
<mirror>
<id>central</id>
<mirrorOf>central</mirrorOf>
<name>Central Repository</name>
<url>http://cen ...
概要:
实现Java SOAP WebService目前有多种API/框架实现(JAX-WS,CXF,Axis2,XFire),记录一下仅通过JAX-WS库实现SOAP WebService 服务/客户端的过程;
如果使用IDE插件这个过程更简单,下面记录不通过IDE实现客户端及部署开放服务端接口。
环境:
JDK1.7,
Tomcat7,
jaxws-ri-2.2.8\jaxws-ri\lib\*,
Apache CXF wsdl2java.bat(cxf3.1.6)。
基本流程:
1,服务端:建立Dynamic Java Web Project,加入必要的类 ...
WebSocket简单实现
- 博客分类:
- 编程语言
WebSocket是基于HTML5标准的TCP协议,有点像HTTP,但是它在浏览器和Server之间实现了类似TCP的全双工通信,基于持久连接优于HTTP实现BS方式即时相互通信。在Tomcat7中实现了WebSocket,J2EE7(Servlet3.0)中也实现了WebSocket。
记录一下 Java Web服务端和javascript html客户端实现WebSocket:
1,环境
tomcat7.0.68,
JDK1.7,
WebAPP Server Servlet3.0
js websocket client library:socket.io-1.4.5.js
...
之前在项目上使用过Jersey实现的JAXRS RESTful Webservice部分交互功能,容器是tomcat;看到RESTful还有另一种实现resteasy,不过resteasy和jboss容器紧密结合,但它同时也支持jdk5以上的tomcat环境。
一,工具
tomcat7.0.68,
resteasy-jaxrs-3.0.17.Final,
EclipseJEE(Mars2)
二,RESTeasy服务端配置
参考官方的userguide文档,配置web.xml配置、实现javax.ws.rs.core.Application、实现资源类(merrick. ...
centos中yum采用光盘为软件安装源
- 博客分类:
- 操作系统
在某些环境下不能访问外网,这时采用完全版光盘为安装源也是一个选择,
环境:CentOS release 5.5 (Final)
1,挂载系统盘(DVD版CentOS-5.5-i386-bin-DVD.iso)光驱:
mkdir /media/cdrom
mount /dev/cdrom /media/cdrom
2,保留安装库文件:
/etc/ ...
nginx是一款由俄罗斯人开发的web服务器/反向代理服务器/email服务器/负载均衡器软件,并在一个BSD-like 协议下发行,目前比较流行,最初近适用于Linux平台,目前已有Windows平台版本,优点是资源消耗少、并发处理能力强。
具体的使用的场景参考:Nginx官方参考文档。
具体平台版本见:http://nginx.org/packages/
实验环境:
1,Win7(192.168.84.1)加虚拟机CentOS7(192.168.84.128)
2,Win7下tomcat:apache-tomcat-7.0.68,CentOS7下tomcat:apache ...
1,准备工作:
JKD:jdk-7u72-linux-x64.gz
Tomcat:apache-tomcat-7.0.70.tar.gz
OS:CentOS Linux release 7.2.1511 (Core)
2,安装jdk
A,解压jdk在 /usr/ 目录下
B, root用户配置全局环境变量,
vi /etc/profile
追加以下内容
export JAVA_HOME=/usr/jdk1.7.0_72
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt. ...
1,情景:
点击超链接,在iframe中显示加载的新页面,超链接的target写iframe的id或者name属性。
2,浏览器
IE11,
GoogleChrome31,
FireFox47
3,部分页面代码:
<div id="headdiv" >
<ul id="headtitle" >
<li><a href="mainpage!list.do" target="fm1">首页</a>< ...
A:Tomcat 中维持Java webapp的Http会话是以Cookie形式实现的存储在服务端用户状态信息的;
B:服务端可以自定义建立Cookie对象及属性传递到客户端;
服务端建立的Cookie如果没有设置HttpOnly属性,则在客户端可以用js读取Cookie中的内容(客户端脚本可以读取Session Cookie内容进行诸如CSRF/XSS恶意http攻击);
方法:
为HttpSession安全性考虑,防止客户端脚本读取Session Cookie内容进行诸如CSRF/XSS恶意http攻击,可在tomcat6的conf/context.xml配置文件中配置:
...
配置web.xml的filter(需要配置在Struts2插件过滤器前)
<filter>
<filter-name>filter1</filter-name>
<filter-class>filter.LoginFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/*</url-pat ...