WSO2 5.3.0。我尝试在基本身份验证运行之前将本地身份验证步骤放入流程中。这有助于升级我们的密码哈希算法(请参见this other question I asked)
我遇到的问题(我认为)是未为新的本地身份验证器调用initialAuthenticationRequest(因此,用户名当时为null,基本身份验证器运行以弹出登录屏幕并进行填写,但是我的代码永远不会重新运行。
编辑:因为canHandle评估为true,所以我的InitialAuthenticationRequest被跳过了。如果该方法返回错误,则会调用invokeInitialAuthenticationRequest(代码参考here)
我当前的难题是如何将http请求参数传递到下一步(BasicAuthenticator),以使我的登录屏幕不会出现两次。感谢您对此问题的任何帮助。
编辑2:传递了请求参数,但是其他原因导致BasicAuthenticator.initiateAuthenticationRequest被调用(请参见上面的相同代码参考)。看起来好像是因为请求上的属性“ commonAuthHandled”设置为true,但是我找不到发生的地方,所以请帮助查找我当前正在寻找的东西
答案 0 :(得分:0)
我的解决方案是覆盖处理方法(更仔细地阅读this code之后,我意识到我的步骤是在处理响应后将commonAuthHandled位切换回true)
有点骇人听闻,但似乎可行