gpt4 book ai didi

在 Tomcat 中使用 waffle 的 Java SSO

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:04 24 4
gpt4 key购买 nike

我正在使用以下代码获取实际登录的用户:

    IWindowsSecurityContext clientContext = WindowsSecurityContextImpl.getCurrent("Negotiate", "localhost");
WindowsAuthProviderImpl provider = new WindowsAuthProviderImpl();
IWindowsSecurityContext serverContext = null;

do {
if (serverContext != null) {
byte[] tokenForTheClientOnTheServer = serverContext.getToken();
SecBufferDesc continueToken = new SecBufferDesc(Sspi.SECBUFFER_TOKEN, tokenForTheClientOnTheServer);
clientContext.initialize(clientContext.getHandle(), continueToken, "localhost");
}
byte[] tokenForTheServerOnTheClient = clientContext.getToken();
serverContext = provider.acceptSecurityToken("server-connection", tokenForTheServerOnTheClient, "Negotiate");

System.out.println("SSO-Identity: " + serverContext.getIdentity().getFqn());

} while (clientContext.getContinue());

System.out.println("Identity: " + serverContext.getIdentity().getFqn());

当我在 Eclipse 中启动它并返回我的用户名时,它工作正常。

当我部署我的 Web 应用程序并在 Tomcat 中启动它时,它返回 nt-authority\system。但我需要实际登录用户的名称。(在 Tomcat 中使用 Waffle SSO 工作正常,但我无法获取用户名)

拜托,有人有想法吗?

编辑:eclipse 中的用户主体也是正确的。当我在 Tomcat 中启动时,它始终为空。

最佳答案

它为您提供在服务器上运行 Tomcat 服务的用户 ID。如果您需要来自客户端的用户 ID,您应该使用 request.getUserPrincipal().getName());

关于在 Tomcat 中使用 waffle 的 Java SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com