如何使用 Java 命令行应用程序对 https://tfspreview.com(MICrosoft 托管的 TFS)进行身份验证?

2024-01-12

我正在尝试访问https://tfspreview.com https://tfspreview.com我的命令行 Java 应用程序中的 SOAP 接口。与本地 TFS 服务不同,此服务使用 Live ID 身份验证,这会导致通信失败并通过 302 重定向到其身份验证服务。我不知道如何在那里进行身份验证。

有什么指点吗?


您可以使用基本身份验证 http://tfspreview.com/en-us/home/news/2012/aug-27/提供无头体验团队基础服务 http://tfspreview.com。另外,如果您不使用适用于 Java 的 TFS SDK http://www.microsoft.com/en-us/download/details.aspx?id=22616,它可能会帮助你。

;博士>

一般来说,您可以使用三种类型的凭据进行身份验证,这决定了您用于身份验证的机制:

  1. 实时 ID。正如您所指出的,这需要您使用 Web 浏览器登录 Windows Live 并使用生成的 OAuth 令牌进行身份验证。

  2. 映射到您的 Live ID 的附加密码,该密码的存在是为了进行基本身份验证。有关设置此附加映射的说明,请参阅8 月 27 日关于此功能的公告 http://tfspreview.com/en-us/home/news/2012/aug-27/.

  3. 一个服务帐户。除了用户列表(由 Live ID 指定)之外,您的 Team Foundation Service 帐户还有一个特殊的用户帐户,用于构建自动化等操作。每个 Team Foundation Service 帐户都有一个服务帐户,顾名思义,这是一个管理员帐户。

让我们看一下每个选项:

Live ID: 对于命令行应用程序来说,使用 OAuth 通过 Live ID 进行身份验证将会很困难。 Visual Studio 在这里所做的是打开 Internet Explorertfspreview.com http://tfspreview.com,最终会提示您输入 Live ID 凭据。此时,各种 OAuth cookie 将被设置到您的 Web 浏览器中。由于 Visual Studio 和 Internet Explorer 共享相同的底层 HTTP 连接机制,因此它可以使用这些相同的 cookie。使用 Java 命令行客户端,您就没有那么奢侈了(除非您专门为 Windows 编写此程序,并且想要编写一些 JNI 来调用系统的 HTTP 库。)

那么你有什么选择呢?我想您可能可以遵循给定的重定向 - 此时您最终将获得一个登录页面,您可以将您的凭据发布到该页面,并最终获得一个发送回给您的 OAuth cookie,然后您可以将其用于身份验证。但我怀疑这可能不是你想要走的路。我强烈怀疑您需要大量的 JavaScript 才能登录。

基本认证: 这些需要额外的设置步骤,但简单明了。没有理由不使用这些。

服务账户: 但是,由于缺少网络浏览器,您are能够提出一个WRAP代币 http://wiki.oauth.net/w/page/12238537/OAuth%20WRAP与您的服务凭证。您可以使用非常有用的命令查看您帐户的服务凭证TFS 服务凭证查看器 http://blog.hinshelwood.com/tfs-service-credential-viewer/。使用您的服务帐户用户名和密码,您可以创建 WRAP cookie 进行身份验证。但此时,您正在以服务帐户身份进行身份验证,而不是您的用户帐户之一。

如果您不想自己创建 WRAP 令牌,您也可以使用适用于 Java 的 Team Foundation Server SDK http://www.microsoft.com/en-us/download/details.aspx?id=29933建立连接。只需将您的服务凭据作为UsernamePasswordCredentials当你创建一个TFSTeamProjectCollection。即使您不想对服务器使用 API 方法,您也可以获得原始数据HTTPClient从该连接,它将具有所有必要的配置集。如果我们将来向 Team Foundation Service 添加新的身份验证机制,那么依赖 SDK 也将使您受益,因为 SDK 的 API 不应发生显着变化。

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

如何使用 Java 命令行应用程序对 https://tfspreview.com(MICrosoft 托管的 TFS)进行身份验证? 的相关文章

  • 如果列名不同,则一对多休眠连接

    我有三个具有以下结构的表 合同 gt Contract id 主要 customer company id Vendor company id 公司 gt Company id 主要 创建日期 创建者 Company Timeline gt
  • ScheduledThreadPoolExecutor如何在特定时间运行任务?

    特别是 它是否像这样在内部实现了 while true 循环 while System currentTimeMillis lt timeToRunTask Thread sleep 1000 doTask From http grepco
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • Quarkus 不以编程方式选择 bean

    我试图以编程方式选择 bean 但 quarkus 不会注入 bean 并引发异常 不支持吗 public enum ReportType ONE TWO Qualifier Retention RUNTIME Target METHOD
  • 项目缺少所需的注释处理库

    我的 Eclipse IDE 突然在问题视图中显示 xxxx 项目缺少所需的注释处理库 xxxx M2 REPO 中的一些旧 jar 我用谷歌搜索 没有找到任何答案 为什么我的项目使用旧的 jar 以及错误来自哪里 To remove th
  • 如何为小程序提供对文件系统写入的访问权限

    我在设置小程序的策略文件时遇到问题 我是第一次这样做 不知道如何在java中设置小程序的策略文件 实际上我想授予小程序在文件系统上写入的权限 为此我必须向小程序授予文件权限 所以我创建了一个名为 java policy 的文件 并将以下代码
  • JTextField 和 JTextArea

    JTextField 和 JTextArea 有什么不同 是否可以在一个班级中使用这两个班级 总之 JTextField 是单行文本字段 而 JTextArea 可以跨越多行 文档中清楚地解释了这些差异 文本区 http docs orac
  • java中的单链表和双向链表?

    在java中 哪个集合接口可以有效地实现单链表和双向链表 请问代码示例吗 毫不奇怪 实现双向链表的正确接口是 LinkedList 看Java文档 http docs oracle com javase 8 docs api java ut
  • Android volley使用RequestFuture.get()时出现超时异常

    在我的片段中 我尝试使用 TMDB 的开放电影数据库来获取有关 正在播放 电影的详细信息 如果我使用 RequestFuture get time TimeUnit 方法来执行此齐射请求 我总是会收到超时错误 如果我在 Safari 中手动
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • 是否有最新的 Facebook Java SDK? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 好像没找到最近更新的 如果没有 是否有一个好的 Java 库来执行与 Facebook 的 API 交
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • java swing:向 JTree 项目添加自定义图形按钮

    我想在 JTree 中的项目右侧添加一个带有小图标的附加按钮 这可以做到吗 如果是这样 怎么办 thanks Clamp 你在这方面成功了吗 我想做同样的事情 但很难让 JButton 响应用户 设置渲染器以显示按钮的过程很顺利 但所有鼠标
  • JAXB 编组器无参数默认构造函数

    我想从 java 库中编组一个 java 对象 当使用 JAXB marschaller 编组 java 对象时 我遇到了一个问题 A 类没有无参数默认构造函数 我使用Java Decompiler来检查类的实现 它是这样的 public
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • JPA 将 BigDecimal 作为整数保存在数据库中

    我在数据库中有这个字段 ITEMCOST NUMERIC 13 DEFAULT 0 NOT NULL 在JAVA中 Entity中的字段定义如下 Column name ITEMCOST private BigDecimal itemCos
  • 传递 Android DialogFragment 参数时,onCreateDialog 捆绑参数意外为 null

    我正在尝试使用 DialogFragment 在 Android 中显示一个基本对话框 并使用对话框消息的参数 如中所述StackOverflow线程 https stackoverflow com questions 15459209 p
  • @Embeddable 中的 @GenerateValue

    我已将实体的 id 分离到一个单独的 Embeddable 类中 该实体如下 Entity Table name users public class Users EmbeddedId private Users pk id private
  • 你能快速告诉我这个伪代码是否有意义吗?

    我相信我的代码现在是万无一失的 我现在将写出伪代码 但我确实有一个问题 为什么 DRJava 要求我返回 if 语句之外的内容 正如你所看到的 我为 ex 写了 return 1 只是因为它问了 但是它永远不会返回该值 谁可以给我解释一下这

随机推荐

  • 带有选项字段的 Django value_list

    The values list在过滤对象中 在 django 视图中提供解决方案确实对我有很大帮助 我的代码如下所示 并且这个有效 values list ac realdata objects filter product 1 value
  • XMPP:AngularJs + Strope.js

    我有一个在 strope js 上工作的基本 XMPP 客户端 登录时我创建处理程序 例如 connect new Strophe Connection http localhost http bind connect addHandler
  • Scala 中如何处理类型名称冲突?

    我正在写一个从Scanners这迫使我定义类型Token object MyScanner extends Scanners type Token 问题是我的令牌类本身被称为Token abstract class Token case c
  • 从容器内获取 docker 网络的私有 IP 来配置 xdebug remote_host

    因此 使用 docker 和 docker compose 我喜欢提供内置于容器中的工具 这样开发团队中的其他人就不必为设置而苦苦挣扎 在这种特定情况下 我在配置 xdebug 时遇到问题 从浏览器调试时使用回连功能绝对可以正常工作 但是尝
  • Python从父包导入

    我在 Python 中导入时遇到了一些问题 这是一个简单的例子来说明问题所在 我有一个这样的目录结构 app init py sub app init py 代码 应用程序 init py shared data data 123 from
  • 自定义 docker 容器 bash

    我尝试为 Docker 容器 bash 提示设置自定义配置 以在连接时显示 git 分支名称 我找到了一切可以正确执行的方法 但我无法执行 profile甚至 bash profile容器建筑物中的文件 如果我表演source profil
  • HTML5 中的注册机标签

    所以我在 HTML5 中遇到了这个新标签
  • 为什么我的对象不会死?

    我正在尝试实现一种机制 当保存缓存文件的对象死亡时 该机制会删除缓存文件 并决定使用PhantomReference获取有关对象垃圾回收的通知 问题是我一直遇到奇怪的行为ReferenceQueue 当我更改代码中的某些内容时 它突然不再获
  • ffmpeg:哪些文件格式支持标准输入使用?

    我知道 ffmpeg 能够读取数据stdin而不是使用从磁盘读取ffmpeg i 所有文件格式都支持吗 如果不是 是否有支持的文件格式列表 你需要跑ffmpeg protocols以确定是否pipe您的 ffmpeg 版本支持的协议 从标准
  • 调整图像大小并居中裁剪图像

    所以目前我正在尝试裁剪图片并调整其大小以使其适合特定尺寸而不丢失比例 一张小图来展示我的意思 我玩了一下vocaro 的类别 http vocaro com trevor blog 2009 10 12 resize a uiimage t
  • 使用 Rails 3.1,您将“页面特定”JavaScript 代码放在哪里?

    据我了解 所有 JavaScript 都会合并到 1 个文件中 Rails 在添加时默认执行此操作 require tree 到你的底部application js清单文件 这听起来像是一个真正的救星 但我有点担心特定于页面的 JavaSc
  • PayPal IPN 回发失败

    我最近将我的 Magento live 网站从 1 6 2 0 升级到 1 7 0 0 升级后开始 我现在在 PayPal 标准付款中遇到问题 当客户使用 PayPal 付款时 PayPal 上的付款会顺利进行 但 Magento 订单状态
  • Python 判断类是否为抽象(ABC)而不使用abstractmethod

    我有一个继承自的类ABC https docs python org 3 library abc html abc ABC 并且没有任何abstractmethod 我想检查它是否是一个抽象类 目前我很困惑 确定 Python 类是抽象基类
  • 当 C++ 引用离开其范围时会发生什么?

    如果我正确解释 C 引用 它们就像指针 但具有保证的数据完整性 没有 NULL 没有 int 0x12345 但是当引用对象的范围被保留时会发生什么 如果没有涉及魔法 可能不是 引用的对象将在我背后被销毁 我写了一段代码来检查这一点 inc
  • 致命错误:调用未定义的方法 mysqli_stmt::fetch_array() [重复]

    这个问题在这里已经有答案了 在此代码中 我收到错误 致命错误 调用未定义的方法 mysqli stmt fetch array 问题是什么 search player sql db gt prepare select job from jo
  • make 总是重建 Makefile 目标

    我重新设计了大部分Makefile我的论文项目的文件 以便正确反映工作流程 为项目子目录中目标之间的依赖关系创建 make 规则 https stackoverflow com questions 23910056 creating mak
  • 在finally块中将对象引用设置为null

    public void testFinally System out println setOne toString protected StringBuilder setOne StringBuilder builder new Stri
  • 使用 pandas 读取 CSV 日期会返回日期时间而不是时间戳

    问题描述 我正在尝试将历史股票价格从 CSV 格式读取到 pandas Dataframe 中 但到目前为止我注意到一件有趣的事情 当读取某些行号时 日期列类型从pandas Timestamp into datetime 这是如何运作的
  • 为什么“return”和“yield return”不能在同一个方法中使用?

    为什么我们不能在同一个方法中同时使用return 和yield return 呢 例如 我们可以有下面的 GetIntegers1 和 GetIntegers2 但不能有 GetIntegers3 public IEnumerable
  • 如何使用 Java 命令行应用程序对 https://tfspreview.com(MICrosoft 托管的 TFS)进行身份验证?

    我正在尝试访问https tfspreview com https tfspreview com我的命令行 Java 应用程序中的 SOAP 接口 与本地 TFS 服务不同 此服务使用 Live ID 身份验证 这会导致通信失败并通过 30