keycloak~自定义认证流设置固定redirect_uri

redirect_uri在keycloak进行认证成功之后,会重定向到这个目标页面,一般为用户的来源页,即你在登录之前访问的页面;自定义认证流是指对keycloak中的brower和direct grant两个认证方式的过程添加自定义策略,如在用户登录成功时,检查它的密码强度,如果不符合要求,就跳到一个说明页面,告诉用户,让他去重设更安全的密码。

认证流程中的自定义过程

在自定义过程中添加redirect_uri

@Override
  public void action(AuthenticationFlowContext context) {
    MultivaluedMap<String, String> formData = context.getHttpRequest().getDecodedFormParameters();
    if (formData.containsKey("submitType") && formData.get("submitType").get(0).equals("1")) {
    
      String modifyPasswordPage = mainSite + "/usercenter";
      // 自定义redirect_uri地址
      context.getAuthenticationSession().setRedirectUri(modifyPasswordPage);
      context.success();
      return;
    }
    // 走默认的redirect_uri
    context.success();
  }

上面代码中,只是对getAuthenticationSession()对象的setRedirectUri()方法进行了调用,就完成了对redirect_uri的自定义,还是非常容易的。