中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

keycloak~RequiredActionProvider中獲(huo)取表單認證前URL的參數

在keycloak中,我們在進行brower瀏覽器的表單認證時,一般在跳到本頁面時,URL上會有redirect_uri這種參數,用來告訴keycloak,在認證成功后的跳轉地址,你在表單認證控制器中,可以通過context.getHttpRequest().getUri().getQueryParameters().getFirst("redirect_uri")進行獲取,而當你為brower認證流程添加RequiredAction行為之后,你需要在進入RequiredAction時帶上這些參數,你是不能直接通過getQueryParameters()方(fang)法獲取的(de),因(yin)為它之前的(de)頁面(mian)不是來源(yuan)頁,而是認證表單(dan)頁,那么(me)keycloak對于這種問題是如何(he)處理的(de)呢?

RequiredActionProvider中的方法

頁面渲染

 @Override
 public void requiredActionChallenge(RequiredActionContext context) {
    Response challenge = context.form()
                .createForm("login-sms-otp-config.ftl");
     context.challenge(challenge);
 }

表單提交

 @Override
 public void processAction(RequiredActionContext context) {
  context.success();
}

添加獲取認證表單中URL參數

很顯示(shi),獲取上(shang)一個頁面(mian)的(de)參數,應該在(zai)requiredActionChallenge渲染(ran)頁面(mian)方法中實現

  private static String getRedirectUri(RequiredActionContext context) {
    AuthenticationSessionModel authSession = context.getAuthenticationSession();

    if( authSession.getClientNotes().containsKey("redirect_uri")){
      return authSession.getClientNotes().get("redirect_uri");
    }
    return "//www.abc.com";
  }

我們認證(zheng)頁(ye)面將來源頁(ye)的參數臨時(shi)存(cun)儲(chu)到了authSession.getClientNotes()這個字(zi)典中,供認證(zheng)流程(cheng)中使(shi)用。

getClientNotes()返回的URL參數集合如下圖:

posted @ 2024-04-26 14:16  張占嶺  閱讀(118)  評論(0)    收藏  舉報