WSO2IS 5.1.0 - IWA无法在Internet Explorer中运行 - com.sun.jna.platform.win32.Win32Exception:提供给该函数的令牌无效

时间:2016-07-21 18:14:01

标签: wso2is waffle

我们在产品套件中使用WSO2身份服务器进行用户身份验证。最近我们将其版本从5.0.0升级到5.1.0。 在升级到WSO2身份服务器5.1.0版本后,当我们启用IWA(集成Windows身份验证)时,我们会遇到以下异常

TID: [-1234] [] [2016-07-21 18:46:52,606] DEBUG {waffle.servlet.spi.NegotiateSecurityFilterProvider} -  security package: Negotiate, connection id: fe80:0:0:0:f1da:6adb:d83e:18d6%6:64966 
TID: [-1234] [] [2016-07-21 18:46:52,622] DEBUG {waffle.servlet.spi.NegotiateSecurityFilterProvider} -  token buffer: 1629 byte(s) 
TID: [-1234] [] [2016-07-21 18:46:52,675] ERROR {org.apache.catalina.core.StandardWrapperValve} -  Servlet.service() for servlet [bridgeservlet] in context with path [/] threw exception 
com.sun.jna.platform.win32.Win32Exception: The token supplied to the function is invalid
at waffle.windows.auth.impl.WindowsAuthProviderImpl.acceptSecurityToken(WindowsAuthProviderImpl.java:137)
at waffle.servlet.spi.NegotiateSecurityFilterProvider.doFilter(NegotiateSecurityFilterProvider.java:102)
at waffle.servlet.spi.SecurityFilterProviderCollection.doFilter(SecurityFilterProviderCollection.java:116)
at org.wso2.carbon.identity.application.authenticator.iwa.servlet.IWAServelet.doPost(IWAServelet.java:89)
at org.wso2.carbon.identity.application.authenticator.iwa.servlet.IWAServelet.doGet(IWAServelet.java:64)

在Google上搜索问题后,我们发现了以下帖子。

https://github.com/dblock/waffle/issues/107

在早期版本的Waffle库中看起来有一些问题,在1.7.4版本中得到了解决。 WSO2身份服务器5.1.0附带Waffle库版本1.6.0(waffle-jna_1.6.0.wso2v4.jar)。

现在我的问题是我们是否有任何可用的WSO2身份服务器补丁,其中包括最新的Waffle库(1.7.4或更高版本)? 我们可以简单地下载最新版本的Waffle并放入“wso2is-5.1.0 \ repository \ components \ plugins”文件夹吗?它会起作用吗? 我们需要看看它是否解决了上述问题。我们无法找到此问题的任何其他解决方案。

1 个答案:

答案 0 :(得分:0)

将新版本放入plugins文件夹将无效。您需要按照以下步骤操作,

  1. 将华夫饼干1.7.4包装成OSGi包。您可以参考this pom file,它对1.6版本也是如此。确保在新的pom文件中正确更新版本。
  2. 从您在上面创建的pom文件构建以获取OSGi包
  3. 将其放入repository \ components \ dropins \文件夹并重新启动IS
  4. [验证步骤] [可选]使用wso2server.bat -DosgiConsole在OSGI控制台中启动IS。一旦服务器在osgi控制台中运行ss并找到org.wso2.carbon.identity.application.authenticator.iwa的包ID(这将是一个低于~500的整数)。然后b <bundle_id>并确保它绑定1.7版本的华夫饼包。