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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (172)

我知道IWA身份验证器主要针对SPNEGO身份验证。我的问题是回到基本身份验证。

当用户未提供SPNEGO协商头时(用户未以域用户身份登录或浏览器不信任该站点),Waffle 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 web.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>

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

扫码关注云+社区

领取腾讯云代金券