2017-05-19 68 views
1

我想訪問一些信息的keycloak freemarker模板內。我正在考慮兩種方法。要設置url參數並在freemarker模板中讀取它們,或將此信息設置爲cookie並在它們的內部訪問它們。keycolak訪問cookie和/或URL查詢參數freemarker模板內

我嘗試訪問url參數herehere。但兩者都不起作用。 Keycloak數據模型不會爲當前Url提供任何獲取者。

這些方法之一是可能的嗎?我怎樣才能達到我的目標

回答

0

我遇到了類似的問題,我必須在我的自定義keycloak登錄主題中訪問查詢參數。 (使用Keycloak版本2.1.0.Final)

沒有查詢參數傳遞給我的登錄網站。 但我發現裏面

org.keycloak.forms.login.freemarker.FreeMarkerLoginFormsProvider 

您可以訪問下面的查詢參數:

  • 範圍
  • RESPONSE_TYPE
  • REDIRECT_URI
  • 狀態
  • 現時
  • CLIENT_ID
  • response_mode

,通過使用

UriInfo uriInfo = session.getContext().getUri(); 
MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters(); 

是可能的,你可以閱讀的查詢參數redirect_uri這樣

String redirectUri = queryParameters.getFirst("redirect_uri") 

某些數據傳遞到您的模板,你必須使用

attributes.put("keyToData", dataForTemplate); 

你的進程之前

freeMarker.processTemplate(attributes, Templates.getTemplate(page), theme); 

然後在你的模板中的模板(如template.ftl),您可以訪問提供的數據,例如:

<#if keyToData!false == true> 
    ... 
</#if> 

遺憾的是我沒能來訪問傳遞給我的keycloak /auth端點內FreeMarkerLoginFormsProvider自定義查詢參數。