- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个在 Windows 上运行的 Java 应用程序,它需要使用 Kerberos/SPNEGO 对 Web 应用程序进行身份验证。我知道如何配置 JAAS 来实现这一点,但我发现 Java(JDK6 和 JDK7beta)Kerberos 实现缺少一些我需要的重要功能。例如,支持引用或使用 DNS 确定主机的领域(我有一个多领域环境)。
有没有第三方模块可以使用Windows原生实现认证SSPI ?我们已经解决了配置 Windows 客户端以在我们的环境中工作的麻烦,如果不必为 Java 再次执行此操作就好了。我知道 Waffle及其 WindowsLoginModule,但它似乎不执行 SSO,因为它要求用户将其凭据重新输入到应用程序中。
最佳答案
我们遇到过类似的问题。我们遇到的主要问题是在使用 Windows UAC 时 GSS-API 实现失败,我们使用 Waffle 解决了这个问题。
Waffle基本上是 JNA 调用 SSPI 的包装器。我们通过重写类 sun.net.www.protocol.http.NegotiatorImpl
成功地使用 Waffle 实现了 SSO:
package sun.net.www.protocol.http;
import java.io.IOException;
import waffle.windows.auth.impl.WindowsSecurityContextImpl;
public class NegotiatorImpl extends Negotiator {
private String serviceName;
public NegotiatorImpl(HttpCallerInfo hci) throws IOException {
this.serviceName = "HTTP/" + hci.host.toLowerCase();
}
@Override
public byte[] firstToken() throws IOException {
return WindowsSecurityContextImpl.getCurrent("Negotiate", serviceName).getToken();
}
@Override
public byte[] nextToken(byte[] in) throws IOException {
return new byte[0];
}
}
然后您可以创建一个仅包含此类的 JAR,并将其与 Waffle 和 JNA JAR 一起复制到您的 JVM 的 ./jre/lib/endorsed。使用 Java Endorsed Standards Override Mechanism JVM 的默认实现,这取代了 JVM 的默认 Negotiator
实现。
关于java - 使用 SSPI 从运行在 Windows 上的 Java 应用程序获取 SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3580099/
我正在开发一个 .NET 应用程序,我试图在其中构建数据库脚本。在构建项目时,我收到错误“无法创建 SSPI 上下文。”。此错误显示在输出窗口(VS2008 屏幕内)中,并且构建过程失败。请帮忙解决这
我使用的是 Windows XP Pro SP3。我想在我的代码中使用 SSPI 函数。我编译了我的代码,没有错误。 我将安全包设置为用于协商,这是推荐的。 当我启动我的程序时,Negotiate 无
我正在尝试创建一个 SEC_WINNT_AUTH_IDENTITY 以用于调用 AcquireCredentialsHandle 以获得此身份的凭据。但是我很难创建身份验证日期。 这是用于创建结构的代
当我在本地机器上运行 WCF 服务时,它工作正常。当我将相同的文件部署到我们的测试服务器时,当我的测试客户端尝试连接到 WCF 服务时出现此错误: Security Support Provider
我正在尝试调用托管在 IIS 上并应用了 Windows 身份验证安全性的 Web 服务。 我正在将 Delphi XE 与 INDY 10 和 TIdHttp 组件结合使用。 如果我传入有效的用户名
我在工作中遇到了一个问题,即我们使用 WCF 进行 SSO 的应用程序在与其他域通信时对域信任使用选择性身份验证失败。这是在服务器 2k8R2 机器上,它们的两个域都处于完整的 2k8R2 功能级别(
我的应用程序在两天前运行良好。我能够在实时应用程序上完全正常地发送推送通知,但突然我开始收到此错误 {System.Security.Authentication.AuthenticationExce
我有以下代码: public GetUserDataResponse GetUserDataFromService(X509Certificate2 certificate) { Channe
我想在Windows域环境(使用Kerberos)中使用Microsoft的安全支持提供程序接口(SSPI)在两个实体之间(在C ++中)发送加密和签名的消息。 根据MSDN中的文档,有两个函数Mak
try { _apnsStream.AuthenticateAsClient("gateway.sandbox.push.apple.com", certificates, System.Se
我的项目出现了一些 fatal error ,错误来自 sspi.h,我必须定义一些东西,但我不知道是什么以及为什么,请有人解释。 sspi.h(60): fatal error C1189: #er
背景 Windows SSPI API是 Windows 安全服务的一个接口(interface),允许您相互验证客户端和服务器。 API 的主要用途之一是提供 Windows 集成身份验证,也称为单
我正在开发一个客户端-服务器应用程序,我希望客户端使用用户的登录凭据向服务器进行身份验证,但我不希望用户必须输入他们的用户名和密码。我当然不想负责安全处理密码。我只需要用户向我证明他们就是他们所说的那
我正在尝试访问 wcf 客户端。我知道人们现在正在从中获取信息,所以我知道它有效。我的问题是我似乎无法克服它。该服务是相互认证的服务。我在本地计算机上的个人商店中有适当的证书。即使这样,我也会遇到以下
在我们的 Windows C++ 应用程序中,我使用 InitializeSecurityContext() 客户端打开与运行 stunnel SSL 代理的服务器的 schannel 连接。我的代码
注:我设法取得了一些进展,请参阅我当前问题的编辑,谢谢。 我想在 Windows 上使用 libcurl 通过 Kerberos/GSSAPI 身份验证访问网站。我首先尝试使用 MIT Kerbero
我正在努力获取从计算机 A 到运行 SQL Server 的计算机 B 的 SQL Server 连接。 我在谷歌上进行了广泛的搜索,但我发现的所有东西都不起作用。他们也不会引导您一步步解决这个问题。
我有一个奇怪的问题:我在基于 .net2 的 c# 中编写了一个服务器和客户端,它们正在通过 .net 2 SslStream 聊天。 Cl和S之间有1个发送命令的连接,cl和s之间有1个发送文件的连
我有一个 Linux 服务器应用程序,它使用 Kerberos 进行客户端身份验证和需要在 Windows 上运行的客户端。 Kerberos 票证由 Windows Active Directory
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我是一名优秀的程序员,十分优秀!