I / O错误:SSO失败:本机SSPI库未加载'多个tomcat应用程序

时间:2015-11-19 13:10:17

标签: java jdbc windows-integrated-auth

我使用kerberos身份验证与MSSQL数据库进行了Windows集成连接。另外,我使用华夫饼过滤器进行SSO。

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

但是,我注意到这只适用于一次部署的一个Web应用程序。如果我有多个webapps的相同设置,所有失败,但一个。这是一个非常奇怪的行为。不知道这里发生了什么

1 个答案:

答案 0 :(得分:0)

抱歉,伙计们。我发现下面另一篇文章中的解决方案是链接

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父目录中classloader,该类只会被加载一次。