使用 java UrlConnection 通过 ntlm(或 kerberos)进行身份验证

2024-01-27

我需要使用 java 使用 REST Web 服务,传递域用户帐户的凭据。

现在我正在用经典的asp来做


set xmlHttp = server.createObject( "msxml2.serverxmlhttp" )
xmlHttp.open method, url, false, domain & "\" & user, password
xmlHttp.send body
out = xmlHttp.responseText
set xmlHttp = nothing

并使用 asp.net



HttpWebRequest request = (HttpWebRequest) WebRequest.Create( url );

request.Credentials = new NetworkCredential(user, password, domain);

request.Method = WebRequestMethods.Http.Get

HttpWebResponse response = (HttpWebResponse) request.GetResponse();

StreamReader outStream = new StreamReader( response.GetResponseStream(), Encoding.UTF8) ;

output = outStream.ReadToEnd();

我怎样才能用java实现这个?考虑到我没有使用当前登录用户的凭据,我正在指定域帐户(我有密码)

请告诉我这就像经典的 asp 和 asp.net 一样简单......


根据这一页 http://oaklandsoftware.com/papers/ntlm.html, you can使用内置的 JRE 类,但需要注意的是早期版本的 Java 只能在 Windows 计算机上执行此操作。

但是,如果您愿意忍受第三方依赖,IMOApache Commons HttpClient 3.x http://hc.apache.org/httpclient-3.x/index.html是要走的路。Here http://hc.apache.org/httpclient-3.x/authentication.html是使用身份验证的文档,包括 NTLM。一般来说,HttpClient 是一个功能更丰富的库。

The latest version of HttpClient is 4.0, but apparently this version does not support NTLM http://hc.apache.org/httpcomponents-client/ntlm.html this version requires a tiny bit of extra work http://hc.apache.org/httpcomponents-client/ntlm.html.

这就是我的think代码看起来像,虽然我还没有尝试过:

HttpClient httpClient = new HttpClient();
httpClient.getState().setCredentials(AuthScope.ANY, new NTCredentials(user, password, hostPortionOfURL, domain));
GetMethod request = new GetMethod(url);
BufferedReader reader = new InputStreamReader(request.getResponseBodyAsStream());

祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 java UrlConnection 通过 ntlm(或 kerberos)进行身份验证 的相关文章

  • 在 Java 中连接和使用 Cassandra

    我已经阅读了一些关于 Cassandra 是什么以及它可以做什么的教程 但我的问题是如何在 Java 中与 Cassandra 交互 教程会很好 如果可能的话 有人可以告诉我是否应该使用 Thrift 还是 Hector 哪一个更好以及为什
  • Java中反射是如何实现的?

    Java 7 语言规范很早就指出 本规范没有详细描述反射 我只是想知道 反射在Java中是如何实现的 我不是问它是如何使用的 我知道可能没有我正在寻找的具体答案 但任何信息将不胜感激 我在 Stackoverflow 上发现了这个 关于 C
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • Asp.net Identity 注销其他用户

    我正在使用 Asp net Identity 来验证用户身份 并尝试从管理端锁定任何用户 但是当我锁定任何在线用户时 它并没有注销 我读过很多关于我的问题的评论 但它们都不起作用 我尝试使用 UserManager UpdateSecuri
  • Final字段的线程安全

    假设我有一个 JavaBeanUser这是从另一个线程更新的 如下所示 public class A private final User user public A User user this user user public void
  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • Spring @RequestMapping 带有可选参数

    我的控制器在请求映射中存在可选参数的问题 请查看下面的控制器 GetMapping produces MediaType APPLICATION JSON VALUE public ResponseEntity
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Java按日期升序对列表对象进行排序[重复]

    这个问题在这里已经有答案了 我想按一个参数对对象列表进行排序 其日期格式为 YYYY MM DD HH mm 按升序排列 我找不到正确的解决方案 在 python 中使用 lambda 很容易对其进行排序 但在 Java 中我遇到了问题 f
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • AWS 无法从 START_OBJECT 中反序列化 java.lang.String 实例

    我创建了一个 Lambda 函数 我想在 API 网关的帮助下通过 URL 访问它 我已经把一切都设置好了 我还创建了一个application jsonAPI Gateway 中的正文映射模板如下所示 input input params
  • 仅将 char[] 的一部分复制到 String 中

    我有一个数组 char ch 我的问题如下 如何将 ch 2 到 ch 7 的值合并到字符串中 我想在不循环 char 数组的情况下实现这一点 有什么建议么 感谢您花时间回答我的问题 Use new String value offset
  • Java执行器服务线程池[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如果我使用 Executor 框架在
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • 如何预加载 Activity?

    我到处寻找这个问题 但似乎没有人有答案 我的简单问题是 有没有办法预加载活动 我需要这个 因为我使用一个选项卡 并且一个选项卡有多个活动 我的活动之一是 RSS 阅读器 它加载非常困难 大约 2 3 秒 我在网上找到的都是一个笑话 每个人都
  • 与单个表的多个 toMan 关系

    我是新来的greenDAO http greendao orm com 我正在编写 DaoGenerator 我遇到的一个问题是我有一个用户表和一个墙柱表 我希望能够在 wallpost 表中有两列 它们与用户表 墙所有者和发帖用户 有 t
  • 执行大型 SQL 脚本(使用 GO 命令)

    我需要从 C 程序中执行大量 SQL 语句 创建一堆表 视图和存储过程 这些语句需要用分隔符分隔GO陈述 但是SqlCommand ExecuteNonQuery 不喜欢GO声明 我的解决方案 我想我会发布以供参考 是将 SQL 字符串拆分
  • 在 R 中转换为带有冒号和逗号的数字字符串[重复]

    这个问题在这里已经有答案了 请帮忙看一下下面的例子 a lt 1 4 20 25 30 40 我需要转换a到一个数字向量 就好像我没有引号一样a 我的意思是 gt c 1 4 20 25 30 40 1 1 2 3 4 20 21 22 2
  • Outlook 规则运行 VBA 脚本将电子邮件正文传递给外部程序

    我设置了一个过滤电子邮件的 Outlook 规则 我想运行一个外部程序 python 脚本 来解析每封这样的电子邮件 我知道 SHELL 函数 但我需要一种方法将电子邮件正文传递给我的外部程序 Google 是你的朋友 我通过搜索 outl
  • 如何在 R 中将多行合并为一个观察

    我对 R 比较陌生 我有点沉迷于尝试将我的数据转换成合适的格式 看起来重塑包可能对此有用 但我没有得到更多 我有一个数据框 其中一列 V4 包含字符串和数字 我想按 V2 和 V1 中给出的分组拆分 V4 并将结果作为三个单独的列附加到数据
  • 将变量从 Express 传递到客户端 JavaScript

    最终 我尝试从 Node 服务器传递 JSON 数据 以供客户端中的 D3 使用 这是我的index js var express require express var router express Router var portmix
  • React-Intl 如何从变量切换语言环境和消息

    我正在尝试弄清楚如何使用 React Intl 更改语言 这是我的第一个 React 应用程序 它是用 create react app 制作的 我没有使用 Redux 或 Flux 在我的 index js 中 我有以下代码 import
  • ggplot2,使用主题后轴不显示(axis.line=element_line())

    我正在尝试使用以下方法绘制下图ggplot2包 但不知何故轴不会显示 刻度线在那里 只是不在轴线上 我已经用过theme axis line element line 功能 但它不起作用 这是我的代码 library ggplot2 ggp
  • 如何从Raspberry Pi Zero发送实时传感器数据到PC?

    我写了一个Python3脚本 运行在树莓派零W从 IMU 传感器 MPU9250 收集数据并创建 3 个不同的角度值 滚动 俯仰 偏航 看起来像这样 def main while True dataAcc mpu readAccelerom
  • 在 Windows 中传输大文件的最佳方法

    在备份我们的网络电子邮件服务器期间 我经常需要在内部和外部驱动器之间传输 gt 50GB 有时 gt 100GB 的大文件 传输这些文件的最佳方法是什么 命令行 例如 XCOPY 如果由于时间限制或网络问题而中断 可能有足够强大的功能可以继
  • Jersey - 为资源方法注册 ExceptionMapper

    问题特定类的异常处理 映射 https stackoverflow com questions 36370991让我想到了如何注册的问题ExceptionMapper到特定资源Method 我尝试过使用DynamicFeature像这样 动
  • 对 node.js、connect-mongo 的并行请求、会话被覆盖

    在当前的项目 一种商店系统 中 我使用node js快递JS and 连接 mongo作为会话存储 在客户端 我在启动时使用单个请求来创建一个新会话 然后向 Node js 服务器发送多个并行请求 当然 因为这些并行请求会更改会话 所以这些
  • Golang:JSON:如何将字符串数组解组为 []int64

    Golang encoding json包让你使用 string结构标记以便编组 解组字符串值 例如 309230 into int64场地 例子 Int64String int64 json string 但是 这不适用于切片 即 int
  • 与 join 一起计数

    我想找出哪个播放列表包含超过 2 首歌曲 该语句有效 但我想要播放列表的名称和显示的歌曲的 count 我想我必须使用连接 但我不明白它应该如何工作 有人可以帮忙吗 playlist table id name playlist songs
  • 从具有 NaN 的多维数组中找出最小值

    我有一个二维数组 double 我想知道最小值是多少 我尝试了 Linq Select Min 但由于我的数组通常包含NaN值 那么minvalue总是NaN 因此 我需要某种方法来找到 跳过 NaN 的最小值 任何帮助深表感谢 今天是扩展
  • 反向应用提交到工作副本

    为了研究先前提交引入的效果 我想将其反向应用到我的工作副本并修改代码 我管理了围绕创建和应用补丁的工作流程 但想知道这是否可以更容易地完成 git checkout b tmp fiddle git diff R p d9fd2bb d9f
  • JSF Converter 错误消息中的自定义变量

    我有一个表单页面 其中有一个接受日期的 inputText 字段 我们有一个转换器 可以将文本框中的字符串转换为 Date 对象 即 2011 03 01 到 java util Date 2011 03 01 如果字符串不是日期 例如 1
  • 带 URL 操作的 JSF 表单?

    有没有什么方法可以调用 URL 操作
  • 使用 java UrlConnection 通过 ntlm(或 kerberos)进行身份验证

    我需要使用 java 使用 REST Web 服务 传递域用户帐户的凭据 现在我正在用经典的asp来做 set xmlHttp server createObject msxml2 serverxmlhttp xmlHttp open me