zoukankan      html  css  js  c++  java
  • keycloak~11.3.0之后微信认证问题解决

    之前写过基于keycloak11.0.3版的微信认证的实现,而在升级到keycloak14.0.0之后,这个认证出现了问题,原因是因为人家keycloak内部源码又变了。

      AuthenticationSessionModel authSession = this.callback.getAndVerifyAuthenticationSession(state);
      session.getContext().setAuthenticationSession(authSession);
      federatedIdentity.setIdpConfig(getConfig());
      federatedIdentity.setIdp(AbstractOAuth2IdentityProvider.this);
      federatedIdentity.setAuthenticationSession(authSession);
    

    上面源代码的调整直接影响了我们的微信认证的集成,我们也需要进行调整Endpoint类中的authResponse方法,也相应的修改即可

     BrokeredIdentityContext federatedIdentity = null;
     if (authorizationCode != null) {
        String response = generateTokenRequest(authorizationCode, wechatFlag).asString();
        logger.info("authResponse.response=" + response);
        federatedIdentity = getFederatedIdentity(response, wechatFlag);
    
        if (getConfig().isStoreToken()) {
          if (federatedIdentity.getToken() == null)
            federatedIdentity.setToken(response);
        }
        federatedIdentity.setIdpConfig(getConfig());
        federatedIdentity.setIdp(WeiXinIdentityProvider.this);
        //11.3.0之后改成这样了,去掉了code字段
        AuthenticationSessionModel authSession = this.callback.getAndVerifyAuthenticationSession(state);
        session.getContext().setAuthenticationSession(authSession);
        federatedIdentity.setAuthenticationSession(authSession);
        logger.info("authResponse success" + federatedIdentity);
        return callback.authenticated(federatedIdentity);
     }
    

  • 相关阅读:
    jQuery使用手册
    数据结构排序算法总结(转)
    VS2008升级激活码
    用VS2005建立解决方案
    backgroundposition 用法详细介绍
    CSS布局口诀,学ccs不再难
    Web.Config文件中SQLServerExpress数据库连接配置解释(转)
    css
    2011,我来了!
    Ajax验证用户名是否存在
  • 原文地址:https://www.cnblogs.com/lori/p/15499002.html
Copyright © 2011-2022 走看看