CXF web service安全之Username Token Authentication
来源:互联网 发布:网络安全管理 编辑:程序博客网 时间:2024/05/09 13:20
WS-Security安全标准头它允许你:
•通过认证令牌服务之间
•加密消息或信息部分
•签署信息
•时间戳消息
CXF依靠WSS4J在很大程度上实现Web服务安全。在你自己的Web服务安全服务,可以通过使用WS安全策略,它提供了一个全面和复杂的接收消息的安全性能验证。一个非WS安全策略的方法通常是也可能通过CXF拦截器添加到您的服务和/或客户的详细阐述。下面通过一个实例简单介绍如何通过认证令牌来实现Web服务的安全
•通过认证令牌服务之间
WS安全支持许多方式的安全令牌规范。其中之一是UsernameToken标头。这是一个标准的方式来传达一个用户名和密码或加密密码到另一端接收。
如果一个请求用户为无效的UsernameToken,那应该缓存消息防范重复攻击。这种行为是默认情况下启动与CXF 2.6.0启用。此功能也可以从Apache CXF 2.4.7和2.5.3起,但默认是不启用所有向后兼容。
•“WS安全。启用。
•“WS安全。临时缓存实例。。”这是一个参考的一replaycache实例用于缓存的UsernameToken nonce。这是使用默认实例是ehcachereplaycache。
•“WS安全。缓存配置文件。。”-将此属性设置为指向一个配置文件的缓存的实现。这是使用默认的配置文件是cxf-ehcache.xml在CXF RT WS安全模块。
客户端实例代码:
SpringBusFactory bf = new SpringBusFactory(); URL busFile = Server.class.getResource("/wssec.xml"); Bus bus = bf.createBus(busFile.toString()); Map<String, Object> outProps = new HashMap<String, Object>();
//UsernameToken Timestamp进行安全验证
outProps.put("action", "UsernameToken Timestamp"); outProps.put("passwordType", "PasswordText"); outProps.put("user", "Alice"); outProps.put("passwordCallbackClass", "demo.wssec.server.UTPasswordCallback"); bus.getOutInterceptors().add(new WSS4JOutInterceptor(outProps)); Map<String, Object> inProps = new HashMap<String, Object>(); inProps.put("action", "UsernameToken Timestamp"); inProps.put("passwordType", "PasswordDigest"); inProps.put("passwordCallbackClass", "demo.wssec.server.UTPasswordCallback"); bus.getInInterceptors().add(new WSS4JInInterceptor(inProps)); BusFactory.setDefaultBus(bus);
客户端对应Handler:
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { for (int i = 0; i < callbacks.length; i++) { WSPasswordCallback pc = (WSPasswordCallback)callbacks[i]; String pass = passwords.get(pc.getIdentifier()); if (pass != null) { pc.setPassword(pass); return; } } }
服务器端代码和上面雷同,请参考Apache Cxf官方例子!Username Token Authentication 例子比较简单容易理解,后续将重点阐述Signature and Encryption
- CXF web service安全之Username Token Authentication
- web安全之token
- WEB 安全之Token
- web安全之token
- WEB安全之Token
- web安全之token
- web安全之token
- web安全之token
- Web安全之token
- web安全之token
- the authentication endpoit username was not found on the configured secure token service
- Apache CXF实战之六 创建安全的Web Service
- Apache CXF实战之六 创建安全的Web Service
- Apache CXF实战之六 创建安全的Web Service
- Apache CXF实战之六 创建安全的Web Service
- Apache CXF实战之六 创建安全的Web Service
- WEB安全之Token浅谈
- WEB安全之Token浅谈
- 一个INFORMIX的处理日期相减得秒的函数
- Android 输入法键盘和activity页面遮挡问题解决
- 深入理解dp,px,以及density
- Infragistics-UltraChar-新增目标线
- 坑爹的宏语法...宏名字和括号间不能有空格!
- CXF web service安全之Username Token Authentication
- 在Mysql数据库中查找某一个字段在哪个数据库下
- Android基于XMPP Smack openfire 开发的聊天室(二) 【聊天信息、成员】
- 学习安卓开发 学习知识点遇到的问题
- Struts2环境搭建
- SetWindowPos
- 关于Android的Camera的Parameter
- 《浪潮之巅》,不读妄做IT人
- 张孝祥整理Java就业面试题大全