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

标签 tomcat windows-authentication wso2-identity-server

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

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

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

关于tomcat - 如何通过 Tomcat 强制重试集成 Windows 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36789557/

相关文章:

c# - Asp.net session 超时

asp.net - ASP.NET Windows身份验证不起作用/不接受凭据

wso2 - WSO2 Identity Server 5.0 的 RESTful API

java - 在 Tomcat 上使用 Jenkins 重新部署 Grails 应用程序填补了 PermGen 空间

java - 在 Wicket 中使用可添加书签的页面的 Tomcat 错误页面

java - 如何查看Spring MVC请求映射异常

java - netbeans tomcat jt400链接数据库

asp.net-mvc-3 - 使用 Windows 身份验证获取 WCF 中当前交互用户的用户名,包括 Rest Endpoint 和 MVC3

具有默认范围的 WSO2 APIM access_token 生成

WSO2 身份服务器 REST 和 SOAP 调用