用例: 我将研究使用 Java(基于 Spring)Web 应用程序实现 SSO 的可能方法,其中用户属于 Windows 域并且用户(及其凭据)存储在 Windows Active Directory 中(针对其执行身份验证)。
使用的技术:Spring Security 3 与 Waffle API 集成
错误描述:
当我的 Web 应用程序(集成了 Waffle API 的 Spring Security 3)部署在 Linux 环境下的 Tomcat 上时,我在验证用户时遇到了问题。
但是当我在 Windows 环境(Windows 上的 Tomcat 服务器)下部署我的应用程序时,我的身份验证工作正常。
我在 Linux 环境中收到以下错误消息:
java.lang.NoClassDefFoundError: Could not initialize class com.sun.jna.platform.win32.Advapi32 at waffle.windows.auth.impl.WindowsAuthProviderImpl. logonDomainUserEx(windowsAuthProviderImpl.java:170
Waffle API 是否有任何解决方法,可以通过在 Linux 环境(Linux 环境上的 tomcat 服务器)上部署该应用程序来验证基于 Windows AD 的用户?或者有没有其他方法可以实现我的上述用例,将我的应用程序部署在 Linux Box 下的 Tomcat 服务器上?
最佳答案
Waffle 不能在 Linux 机器上使用,因为它与 native Windows API 通信。
您需要使用 Spring Kerberos。
关于在 Linux 上使用 Tomcat 进行 Waffle 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28439868/