如何通过 Tomcat 强制重试集成 Windows 身份验证



我知道IWA身份验证器主要用于SPNEGO身份验证。我的问题是关于回退到基本身份验证。

当用户未提供 SPNEGO 协商标头(用户未以域用户身份登录或浏览器不信任站点)时,华夫饼 IWA 将回退到基本身份验证(这是可以的)。

问题是,一旦用户输入无效凭据,IWA 身份验证器就会抛出/显示异常,而没有任何重试选项。

com.sun.jna.platform.win32.Win32Exception: The logon attempt failed
    waffle.windows.auth.impl.WindowsAuthProviderImpl.acceptSecurityToken(WindowsAuthProviderImpl.java:137)
    waffle.servlet.spi.NegotiateSecurityFilterProvider.doFilter(NegotiateSecurityFilterProvider.java:102)
    waffle.servlet.spi.SecurityFilterProviderCollection.doFilter(SecurityFilterProviderCollection.java:116)
    org.wso2.carbon.identity.application.authenticator.iwa.servlet.IWAServelet.doPost(IWAServelet.java:89)

我相信在以前的版本(5.0.0.SP1)中,用户可以重新进行身份验证(显示一个新的弹出窗口),但是目前我无法验证它。

有没有办法强制执行/允许重试基本身份验证?

我错过了tomcat网络的配置.xml

<security-constraint>
 <display-name>Security Constraint for IWA</display-name>
 <web-resource-collection>
  <web-resource-name>Protected Area</web-resource-name>
  <url-pattern>/iwa/*</url-pattern>
  <http-method>DELETE</http-method>
  <http-method>GET</http-method>
  <http-method>POST</http-method>
  <http-method>PUT</http-method>
 </web-resource-collection>
 <auth-constraint>
  <role-name>Everyone</role-name>
 </auth-constraint>
</security-constraint>

在这种情况下,将询问基本身份验证,并在失败时重试