利用jcifs进行NTLM协议认证,生成ws访问客户端

调用在windows server 2012 的IIS上部署的webservice服务需要进行NTLM协议认证,为了能正常利用cxf生成客户端,首要解决的是需要windows NT authentication,可以采用早前的开源库jcifs。

<span style="font-size:14px;">public static void main(String[] args) {
		  Config.registerSmbURLHandler();
	      String domain = "domain";
	      String user = "username";
	      String password = "password";
	      Config.setProperty("jcifs.smb.client.domain", domain);
	      Config.setProperty("jcifs.smb.client.username", user);
	      Config.setProperty("jcifs.smb.client.password", password);
	      try {
	          Config.setProperty("jcifs.netbios.hostname",
	                  Config.getProperty("jcifs.netbios.hostname",
	                          InetAddress.getLocalHost().getHostName()));

	          org.apache.cxf.tools.wsdlto.WSDLToJava.main(
	        		  new String[]{
	        		  "-p",
	        		  "com.test",
	        		  "-d",
	        		  "c:\\test",
	        		  "-client",
	        		  "http://test.com/ws?wsdl"
	        		  });

	      } catch (Exception ex) {
	    	  ex.printStackTrace();
	      }
	}</span>

扩展

===

NTLM是NT LAN Manager的缩写,这也说明了协议的来源。NTLM 是 Windows NT 早期版本的标准安全协议,Windows 2000 支持 NTLM 是为了保持向后兼容。早期SMB协议在网络上传输明文口令。后来出现
LAN Manager Challenge/Response 验证机制,简称LM,它是如此简单以至很容易就被破解。微软提出了WindowsNT挑战/响应验证机制,称之为NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。NTLM是windows早期安全协议,因向后兼容性而保留下来。NTLM是NT
LAN Manager的缩写,即NT LAN管理器

NTLM Authentication Scheme for HTTP

http://www.innovation.ch/personal/ronald/ntlm.html

NTLM是可以进行域单点的一种协议,而JCISF可以作为实现库

http://www.cnblogs.com/adylee/archive/2007/11/28/975213.html

时间: 2024-08-10 02:11:53

利用jcifs进行NTLM协议认证,生成ws访问客户端的相关文章

Java利用jcifs集成AD域用户认证

最近一段时间发现AD这东西老火了,尤其是涉及到安全这一方面的,所以AD域用户认证成了现在网络安全方面的产品必备!这里就简单的分享一下,Java通过jcifs集成AD域用户实现认证,以实现网络安全! 我们通过一个demo来看看jcifs实现SSO,SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应用中用于同一 个用户的登录的机制.它是目前比较流行的企业业务整合的解决方案之一. 第

基于http协议的api接口对于客户端的身份认证方式以及安全措施[转]

基于http协议的api接口对于客户端的身份认证方式以及安全措施 由于http是无状态的,所以正常情况下在浏览器浏览网页,服务器都是通过访问者的cookie(cookie中存储的jsessionid)来辨别客户端的身份的,当客户端进行登录服务器也会将登录信息存放在服务器并与客户端的cookie中的jsessionid关联起来,这样客户端再次访问我们就可以识别用户身份了. 但是对于api服务器,我们不能让访问者先登录再进行访问这样不安全,也不友好.所以一般情况我们都是需要客户端提供一个key(每个

利用tomcat服务器配置https双向认证

首先请保证已经安装好jdk,并且环境变量以及配置好了 第一步.为服务器生成证书: 使用toolkey为tomcat生成证书,假定目标机器的域名为localhost,使用如下命令生成:keytool –genkey –v –aliaslocalhost_server RSA –keystore localhost_server.store  –validity 36500 第二步.为客户端生成证书: 为浏览器生成证书,以便让服务器来验证它.为了能保证证书顺利导入至IE和Firefox,证书格式应该

HttpClient基于HTTP协议认证方案

简介 HttpClient支持三种不同形式的HTTP协议验证发难:Basic,Digest和NTLM.这些都可以解决同http服务器或是代理服务器之间的认证. 认证服务器 HttpClient处理服务器认证几乎是透明的,发开者只需要做一件事情,提供一个合法login证书.此证书被保存到HttpState实例中并且可调用方法setCredentials(AuthScopeauthscope, Credentials cred)和getCredentials(AuthScope authscope)

SQL Server 利用批量(batchsize)提交加快数据生成/导入

在最小化日志操作解析,应用的文章中有朋友反映生成测试数据较慢.在此跟大家分享一个简单的应用,在生成数据过程中采用批量提交的方式以加快数据导入. 此应用不光生成测试数据上,在BCP导入数据中,复制初始化快照过程中等都可以根据系统环境调整 batchSize 的大小来提高导入/初始化速度. 应用思想:这里简单介绍下组提交概念,由于关系型数据库依靠日志来保证数据完整性,即先写日志,每当一个事务完成时就需要commit日志刷入磁盘,在高并发短小事务的前提下由于日志频繁落盘导致整体写吞吐下降.用Group

java反射并不是什么高深技术,面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象

java反射并不是什么高深技术,面向对象语言都有这个功能. 面向对象语言都有这个功能,而且功能也很简单,就是利用jvm动态加载时生成的class对象,去获取类相关的信息 2.利用java反射可以调用类的私有方法么?private()方法 答:可以,class取出method,method继承executable类,executable类继承AccessibleObject类,AccessibleObject有个setAccessiable()设置这个方法是否可访问. 则设置成true,就可将pr

基于PaddlePaddle框架利用RNN(循环神经网络)生成古诗句

基于PaddlePaddle框架利用RNN(循环神经网络)生成古诗句 在本项目中,将使用PaddlePaddle实现循环神经网络模型(即RNN模型,以下循环神经网络都称作RNN),并实现基于RNN语言模型进行诗句的生成. 本项目利用全唐诗数据集对RNN语言模型进行训练,能够实现根据输入的前缀诗句,自动生成后续诗句. 本实验所用全唐诗数据集下载地址:https://pan.baidu.com/s/1OgIdxjO2jh5KC8XzG-j8ZQ 1.背景知识 RNN是一个序列模型,基本思路是:在时刻

利用Xml架构生成实体访问类

use XSD.exe in VS2010 from a xsd file to class 1.use XSD.exe Start -> All Programs -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio Command Prompt 2.from a xsd file to class xsd /c /namespace:myCompany /language:CS temp1

python3实现UDP协议的简单服务器和客户端

利用python中的socket模块中的来实现UDP协议,这里写一个简单的服务器和客户端.为了说明网络编程中UDP的应用,这里就不写图形化了,在两台电脑上分别打开UDP的客户端和服务端就可以了. UDP:用户数据报协议,是一个面向无连接的协议.采用该协议不需要两个应用程序先建立连接.UDP协议不提供差错恢复,不能提供数据重传,因此该协议传输数据安全性差. 客户端 python3只能收发二进制数据,需要显式转码 from socket import * host = '192.168.48.128