cmd 下通过NTML代理访问Maven 库

本文介绍如何通过CNTLM工具解决因公司使用NTLM验证的Web代理而导致在CMD环境下无法使用mvn命令访问网上Maven库的问题。通过下载并配置CNTLM工具,再设置Maven代理指向本地CNTLM代理,最终实现访问外网repository。

公司用web代理,NTLM验证的,这样在普通CMD下无法使用mvn命令访问网上的maven库,使用CNTLM工具解决。

下载CNTLM工具,安装,修改安装路径下的cntlm.ini,改成实际的ntlm proxy地址,CNTLM会起一个proxy service监听3128端口。

然后配置maven的代理,在maven目录下\conf/settings.xml,

    <proxy>
      <id>optional</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>127.0.0.1</host>
      <port>3128</port>
    </proxy>
    
  </proxies>

 这个可以让cmd下运行mvn时候让mvn去找本地的cntlm代理,因为cntlm代理已经连通了实际的内网web代理,这时可以搜索到外网respository的jar包了。

 

参考:

http://docs.codehaus.org/display/MAVENUSER/Configuring+Maven+behind+an+NTLM+proxy

 

 本文出自 “祝坤荣” 博客,请务必保留此出处

<think>好的,我需要帮助用户理解如何实现NTLM身份验证,并获取NTLM令牌或凭据,同时提供示例代码。首先,我需要回顾用户提供的引用内容,看看是否有相关的信息可以利用。 用户提供的引用[1]提到NTLM是集成Windows身份验证的一部分,属于挑战/响应机制。引用[3]和[4]讨论了SSPI函数如InitializeSecurityContext和AcceptSecurityContext的使用,以及如何将身份验证与协议绑定。引用[5]提到通过LSA和SSPI处理证书验证。这些信息提示实现NTLM需要用到SSPI相关的函数,可能涉及Windows API。 接下来,用户需要示例代码。根据引用[2],用户之前尝试过用Apache HttpClient进行NTLM认证但遇到了401错误,可能配置有误。不过用户现在可能希望用更底层的代码示例,比如使用C#或Python。考虑到NTLM主要在Windows环境中使用,C#可能更合适,因为可以直接调用SSPI。 我需要分步骤解释NTLM的流程:协商、挑战、响应。然后提供代码示例,可能用C#的NegotiateStream类或CredentialCache来处理。同时需要确保代码正确使用凭据,并处理Base64编码的令牌。 另外,需要注意用户提到的引用[4]中关于服务名称绑定到NTLM响应的内容,确保代码中指定正确的SPN(服务主体名称),比如HTTP/hostname,避免中间人攻击。 最后,生成相关问题,帮助用户进一步学习,比如优化NTLM配置、安全风险、与Kerberos对比等。</think>### NTLM身份验证实现步骤及示例代码 #### 一、NTLM认证流程 1. **协商阶段**:客户端向服务器发送协商消息,包含支持的协议版本[^1]。 2. **挑战阶段**:服务器生成随机挑战码(Challenge)并返回Base64编码的$NTLM$ Token[^4]。 3. **响应阶段**:客户端使用用户凭据和挑战码生成响应,通过`InitializeSecurityContext`生成响应令牌[^3]。 #### 二、C#实现示例(使用SSPI接口) ```csharp using System.Net; using System.Net.Security; using System.Security.Authentication; using System.Security.Principal; // 获取当前用户凭据(需Windows环境) NetworkCredential credential = CredentialCache.DefaultNetworkCredentials; // 创建NTLM认证请求 var request = (HttpWe
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值