【问题标题】:I/O Error: SSO Failed: Native SSPI library not loaded ' multiple tomcat app [duplicate]I / O错误:SSO失败:未加载本机SSPI库'多个tomcat应用程序[重复]
【发布时间】:2015-11-19 13:10:17
【问题描述】:

我通过 kerberos 身份验证与 MSSQL 数据库建立 Windows 集成连接。此外,我正在使用 Waffle 过滤器进行 SSO。

此连接使用 jtds1.3.1.jar 文件。 SSO 需要 ntlmauth.dll。我正在使用 tomcat 作为我的应用程序服务器。

但是,我注意到这一次仅适用于一个部署的 web 应用程序。如果我对多个 webapps 有相同的设置,那么除了一个之外都失败了。这是一种相当奇怪的行为。知道这里发生了什么

【问题讨论】:

    标签: java jdbc windows-authentication


    【解决方案1】:

    对不起,伙计们。我在下面的另一篇文章中找到了解决方案是链接

    https://stackoverflow.com/a/10645025/3890202

    每个 Web 应用程序都有自己的 Classloader(隔离它们)。当您调用 Class.forName() 方法时,有一个静态块正在尝试加载共享库(dll 文件) - 因此两个 Web 应用程序都在尝试加载共享库,因此第二个时出现错误消息尝试加载。

    JDBC jar 即 jtds1.3.1.jar 应该从与你的战争捆绑在一起移动到 tomcat 7.0/lib 文件夹并将 ntlmauth.dll 复制到 tomcat/bin 文件夹 - 这样它将在 tomcat 父级中类加载器,并且类只会被加载一次。

    【讨论】:

    • 对此感到抱歉。我已按照建议发布了我的编辑
    猜你喜欢
    • 2012-10-27
    • 2011-05-12
    • 2012-06-11
    • 2020-06-02
    • 2017-02-07
    • 2018-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多