- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
对此有很多答案( one 、 two 、 three ),但它们都使用过时的方法。对于 Java 1.7 及更高版本,当需要为 Basic、Digest、NTLM 和/或 Windows Identity 提供凭据时,通过 http 请求资源的最佳方式是什么?
为此使用 Apache 库就可以了。
我知道这是一个重复的问题,但现有答案似乎都使用过时的调用。
更新:这是我们拥有的一个库,用户可以将任何 URL 传递给我们并说它是任何不同的身份验证系统。该库由我们的用户添加到不同的应用程序中。因此,它可以是任何应用程序中使用的任何服务。它可以是 Web,也可以是 REST。它可以位于 Apache、WebLogic、WebSphere 或其他任何目录下。
最佳答案
您想要实现什么目标 - 没有一种 Elixir 适用于所有身份验证方法。最好的选择是使用一个完善的 HTTP 客户端框架(例如 http-client )和丰富的 authentication options 。还有其他几个,但我认为 apache HttpCompnents 是最可靠的之一(并且仍然免费)。
Apache HTTP commons 客户端应该可以与任何仅客户端身份验证(基本、摘要、NTLM(不是我最喜欢的))一起使用。大多数情况下,您会为 HTTP 上下文实现一个“CredentialProvider”(密码回调类),它将起作用。对于 Windows 身份(我假设您指的是 Kerberos/SPNEGO 身份验证),您将需要更多配置( key 表文件、jaas 配置等)。
通常,您应该坚持一些每个人都支持的通用标准,并尝试让其他人使用它(通过 TLS/SSL 进行基本身份验证应该没问题)。
您可能仍然遇到的是 - 使用不同的环境(WebSphere、WebLogic、其他应用程序)其他应用程序可能会强制您使用不同版本的 HTTP 客户端库或版本,并且您的配置将不适用于所有方法。因此,除非您不打算实现自己的 http 客户端(对于基本身份验证和摘要身份验证来说很简单),否则您将必须强制客户端使用具有特定版本的特定框架。
关于java - 如何使用 Basic、Digest 和 NTLM/WindowsIdentity 获取 http 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201227/
我正在尝试检查Powerhell脚本是否以管理员身份运行。 在网上搜索后,我得到了一些运行良好的示例代码。 为了获得WindowsPrincipal对象,我发现了以下两个示例代码。 第一: New-O
我正在尝试使用 SID-s 检查用户是否属于某些组。 我正在使用 WindowsIdentity.Groups ,但后来注意到有时它不显示用户属于管理员组。 搜索了一段时间后,我发现不是Windows
我试图拦截 WindowsAuthenticationModule 以另一个用户身份登录到应用程序,但我无法在不知道他的密码的情况下创建新的 WindowsIdentity。该代码将在管理员权限下运行
我正在开发具有以下详细信息的客户端服务器应用程序: Client(C++) -----------HTTPS--- Server (C#/WCF) 服务器: 与 Windows Active
当我像这样使用 WindowsIdentity 模拟时: WindowsIdentity newId = null; WindowsImpersonationContext impe
我正在构建一个站点,该站点使用当前用户的 WindowsIdentity 获取用户信息。我从中获得的主要信息是 ssid。 我按如下方式为当前用户执行此操作 IntPtr logonToken = W
ServiceSecurityContext 为何包含 WindowsIdentity 属性? 即,如果用户使用 Windows 身份验证机制进行身份验证,则 ServiceSecurityConte
获取当前用户的用户名和/或 SID 时,首选方法是什么? 是否使用: WindowsIdentity.GetCurrent().Owner 或者: WindowsIdentity.GetCurrent
我正在尝试在我的 WPF 客户端/服务器 (WCF) 应用程序中使用 Windows Identity Foundation 进行授权,该应用程序可能会或可能不会在与提供身份验证的事件目录相同的信任环
我正在一个安全的服务器上运行一个应用程序(我必须远程访问并且必须通过电子邮件将文件发送给某人以便他们将它们放到服务器上,因此更改代码不是一个快速的过程)。 在某一时刻,该服务通过获取登录用户 Oper
我有一个由 IIS 托管的 Web 应用程序。它配置了表单例份验证和匿名身份验证,并且启用了模拟。应用程序池帐户是网络服务。匿名帐户是 Costa。 Costa 可以访问数据库。 NetworkSer
假设我有一个 WindowsIdentity 的实例,并且想要获取它所属的组。我使用以下代码获取列表: WindowsIdentity identity = null; // get iden
我正在使用模拟在连接到域的 Windows 7 计算机上实例化 WindowsIdentity。我通过 Groups 属性取回了很多组。一些域、本地和内置但我没有得到用户所在的内置管理员组。我很困惑为
我正在使用 WindowsIdentity 获取当前用户的 ID 以执行 SSO。在大多数情况下,我得到的正是我想要的,但对于某些用户来说,我得到的结果很奇怪。示例代码: IIdentity WinI
TL;DR WindowsIdentity 的 Token 属性中是否包含用户 token (例如,someIdentity.Token) 被欺骗: var validated = new Windo
我有以下代码: var baseUrl = "https://" + GetIdentityProviderHost(environment) + "/oauth2/authorize"; var q
我正在使用 Windows 身份验证的 ASP.NET 应用程序中。 我正在使用 HttpContext.Current.User.Identity.Name 获取当前经过身份验证的用户的用户名,这会
我有一个安装项目(在 Windows 7 上运行)在提交时启动自定义操作,启动刚刚安装的应用程序。在此应用程序启动期间,我有一个方法可以检查当前用户名以执行某些身份验证。当从此自定义操作启动时,我得到
如何从收到的msmq消息中获取发件人的WindowsIdentity? 我使用 msmq 作为传输和安全应用程序 block ,并使用授权规则提供程序进行操作授权。我需要 WindowsPrincip
我有一个 ASP.NET 网站,它要求我的应用程序池是经典 .Net 应用程序池。该站点在 IIS 7 上的 .NET 3.5 上运行。当我尝试获取已登录用户的 Active Directory 用户
我是一名优秀的程序员,十分优秀!