- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在将 NTLM 身份验证添加到使用 Jersey 和 Apache HttpClient 的现有应用程序时遇到问题。我只能使用 JCIFS 进行身份验证,HttpClient 的默认 NTLM 身份验证不起作用(我得到 401
)。
Apache HttpClient 页面的示例显示了如何使用 CloseableHttpClient: https://hc.apache.org/httpcomponents-client-4.5.x/ntlm.html
Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
.register(AuthSchemes.NTLM, new JCIFSNTLMSchemeFactory())
.register(AuthSchemes.BASIC, new BasicSchemeFactory())
.register(AuthSchemes.DIGEST, new DigestSchemeFactory())
.register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
.register(AuthSchemes.KERBEROS, new KerberosSchemeFactory())
.build();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultAuthSchemeRegistry(authSchemeRegistry)
.build();
但是对于 CloseableHttpClient,我无法使用 target
之类的方法:
WebTarget target = client.target(this.my Address).path(elementPath)
.resolveTemplate(P_ID, myId);
只有执行
。
我不确定是否应该重写整个应用程序并仅使用基本的 HttpClient 调用,例如:
HttpGet httpGet = new HttpGet(repositoryAddress + "/" + "element/70032_1498404600000(,,arm)");
CloseableHttpResponse response = httpClient.execute(httpGet);
或者还有其他方法可以在 javax.ws.rs.client.Client 中设置 AuthSchemes,可以在 Jersey 中使用?
最佳答案
我遇到了类似的问题,我的方法如下:
1) 如果您使用 ApacheConnectorProvider 作为连接器,您可以覆盖 ApacheConnector 代码(在此处找到 https://github.com/jersey/jersey/tree/master/connectors/apache-connector/src/main/java/org/glassfish/jersey/apache/connector )。就我而言,我必须创建自定义 ConnectorProvider 和 Connector。
2) 创建自定义属性或使用 HttpClientContext.AUTHSCHEME_REGISTRY 并将其放入 ClientConfig 中(这是我们在 Jersey Client 中为客户端设置属性的方式)。
3) 当您调用 builder.get( 或 post 或任何其他方法) 时,将调用自定义连接器。在自定义连接器中,您可以检查在上述步骤中设置的属性。如果设置了,您可以像为 ClosableHttpClient 指定那样设置 DefaultAuthSchemeRegistry(ApacheConnector 在其实现中使用 ClosableHttpClient)。
这可能是一种黑客行为,但对我来说效果很好。希望这有帮助:)
关于java - JCIFS 可以与 Jersey 一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44875054/
我们使用 JCIFS (1.3.17) 从 Windows 2003 文件服务器加载图像文件。不幸的是,加载到 16384 个文件后停止工作,并且在尝试访问更多文件时出现以下异常: jcifs.smb
我正在尝试通过 JCIFS 访问公司网络中的共享文件夹。但是当我尝试列出共享文件夹下的文件时,它会抛出 SmbException,如下所示, jcifs.smb.SmbException: 0xC00
我正在将文件从 Android 设备写入 Windows 文件夹 所有内容均完好无损但我无法写新行 NtlmPasswordAuthentication auth = new NtlmPass
我正在使用 jCIFS (SMB) 从 java 桌面应用程序访问网络驱动器。我注意到第一次访问大约需要 6 秒,但之后几乎没有延迟。 但是,当我连接到新线程上的网络路径时,首次访问时的 6 秒延迟再
如何使用 JCIFS 获取文件夹中最后修改的文件的名称?我不想使用循环。我找到了方法 lastModified() 和 getDate(),但它们给了我一组随机数(它们看起来根本不像“日期”)。 最佳
我需要连接到 UNC“目录”并在该目录中创建一个文件。我在 stackoverflow 上找到了这个条目:access to file using Java with Samba JCIFS .一件好
我正在使用 JCIFS 写入 Windows 共享。这一直很好用。突然间它停止工作,我现在收到 jcifs.smb.SmbAuthException:访问被拒绝。异常(exception)。我知道我的
我正在尝试列出 samba 中的所有文件和目录。 所以我创建了一个 SmbFile : SmbFile smb = new SmbFile("smb:\\\\10.0.4.3\\sharedFiles
我有一个读取数据库的进程来收集大约 200,000 个文件(并且还在增长)的服务器和路径信息。我使用 JCIFS 库来检查文件是否存在于指定位置,使用以下内容一次一个: SmbFile file =
我正在尝试使用外部 jcifs library 从网络共享读取文件。我能找到的大多数用于读取文件的示例代码都非常复杂,甚至可能不必要。我找到了一种写入文件的简单方法,如下所示。有没有办法使用类似的语法
我已将responseTimeout和soTimeout设置为15000ms,但我仍然得到90000ms 后超时。 我在 v1.3.18 和 v1.3.17 上对此进行了测试。 当我不注册 jcifs
这是我上个月发布的一个问题的重复,但我仍然没有解决。我尝试在 Android 应用程序中使用 jcifs 与我的 Windows 计算机通信,但该应用程序在尝试连接到网络时中止且没有错误消息。我没有看
我使用 jcifs-1.3.17 库来检查共享文件夹上的一些文件。一周前,我发现我的代码无法正常工作。我遇到 500 服务器错误,如下所示: (类:jcifs/smb/NtlmPasswordAuth
我正在将远程文件从 Windows 共享文件夹复制到 Linux 机器。复制需要很长时间。在 320 MB 中,10 小时内仅复制了 200 Kb。 这是我的代码片段: try { Strin
我正在使用 Java CIFS Client Library但面临的问题是 copyTo 函数不起作用。我有一个包含文件的文件夹。我想将这些文件读取到其他网络路径。 String path1 = "
我正在开发一个 Android 应用程序,它可以在 Windows PC 上写入和读取文件 (*.txt)。该应用程序连接到 WiFi 网络并使用 SMB。当网络有互联网连接时,该应用程序运行良好。当
我在 Android SDK 中使用 Smb。 我有下一个代码: public AuthListFiles() throws Exception { 1 SmbFile file = n
我正在使用以下 JCIFS 代码将文件从本地磁盘复制到共享驱动器 public boolean copyFiles(String srcFilePath, String destinationFile
我只是在测试 JCIFS用于访问 Windows 共享。它非常慢,以至于完全无法使用。 import jcifs.smb.*; class First { public static void
是否有 JCIFS NTLM 库的替代品? 最佳答案 华夫饼 - https://github.com/dblock/waffle 具有过滤器、身份 validator 、支持 spring-secu
我是一名优秀的程序员,十分优秀!