用例: 我将研究使用Java(基于Spring)的Web应用程序实现SSO的可能方法,其中用户属于Windows域,用户(及其凭据)存储在Windows Active Directory中(执行身份验证)。
使用的技术:与Waffle API集成的Spring Security 3
错误说明: 当我的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
![错误截图] [1]
通过在Linux环境中部署该应用程序(Linux环境中的tomcat服务器),Waffle API是否有基于Windows AD对用户进行身份验证的解决方法?
或
有没有其他方法可以实现我的上述用例,我的应用程序部署在Linux Box下的Tomcat服务器上?
答案 0 :(得分:2)
无法在Linux机器上使用Waffle,因为它与本机Windows API进行通信。
您需要使用Spring Kerberos。
答案 1 :(得分:1)
虽然Waffle使用Java进行Windows身份验证非常容易,但在Windows上,Waffle无法在* nix上运行。