我正在尝试在我的 Java 中将Waffle与 Tomcat 7 应用程序一起使用,但 Windows 身份验证不起作用。
我有一个运行良好的 Web 应用程序,因此我向 Waffle 添加了 Maven 依赖项:
<dependency>
<groupId>com.github.dblock.waffle</groupId>
<artifactId>waffle-jna</artifactId>
<version>1.7.4</version>
</dependency>
我在 web.xml 中添加了过滤器:
<filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>waffle.servlet.NegotiateSecurityFilter</filter-class>
<init-param>
<param-name>principalFormat</param-name>
<param-value>fqn</param-value>
</init-param>
<init-param>
<param-name>roleFormat</param-name>
<param-value>both</param-value>
</init-param>
<init-param>
<param-name>allowGuestLogin</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>impersonate</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>securityFilterProviders</param-name>
<param-value>waffle.servlet.spi.NegotiateSecurityFilterProvider</param-value>
</init-param>
<init-param>
<param-name>waffle.servlet.spi.NegotiateSecurityFilterProvider/protocols</param-name>
<param-value>
NTLM
Negotiate
</param-value>
</init-param>
<filter-mapping>
<filter-name>SecurityFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
所以,当我访问我的页面时,我打开一个登录对话框并且用户登录。我看到的问题是当用户已经登录一次并且对话框打开时,用户需要再次输入他们的凭据,因为他们'没有得救。我尝试使用 waffle 来使用 SSO 保存他们的凭据,但在我的控制台中我总是收到此错误:
[waffle.servlet.NegotiateSecurityFilter] error logging in user: com.sun.jna.platform.win32.Win32Exception: