1

我们在我们的产品套件中使用 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)

在谷歌上搜索问题后,我们遇到了以下帖子。

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

看起来早期版本的 Waffle 库中存在一些问题,该问题已在 1.7.4 版本中得到解决。WSO2 Identity server 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”文件夹吗?它会起作用吗?我们需要看看它是否能解决上述问题。我们无法找到任何其他解决此问题的方法。

4

1 回答 1

0

将新版本放在插件文件夹中将不起作用。您需要按照以下步骤操作,

  1. 将 waffle 1.7.4 打包为 OSGi 包。您可以参考这个对 1.6 版本执行相同操作的pom 文件。确保在新的 pom 文件中正确更新了版本。
  2. 从您在上面创建的 pom 文件构建以获取 OSGi 包
  3. 将其放入 repository\components\dropins\ 文件夹并重新启动 IS
  4. [验证步骤][可选] 在 OSGI 控制台中使用wso2server.bat -DosgiConsole. 一旦服务器启动ss,在 osgi 控制台中运行并找到 bundle id org.wso2.carbon.identity.application.authenticator.iwa(这将是一个低于 ~500 的整数)。然后b <bundle_id>确保它绑定了 1.7 版本的 waffle 包。
于 2016-07-24T05:25:14.450 回答