keycloak-service
公開メンバ関数 | 限定公開変数類 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.services.resources.account.AccountConsole クラス
org.keycloak.services.resources.account.AccountConsole 連携図
Collaboration graph

公開メンバ関数

 AccountConsole (RealmModel realm, ClientModel client, Theme theme)
 
void init ()
 
Response getMainPage () throws URISyntaxException, IOException, FreeMarkerException
 
Response getIndexHtmlRedirect ()
 
ClientManager.InstallationAdapterConfig getConfig ()
 

限定公開変数類

KeycloakSession session
 

非公開メンバ関数

Map< String, String > supportedLocales (Properties messages) throws IOException
 
String messagesToJsonString (Properties props)
 
String convertPropValue (String propertyValue)
 
String putJavaParamsInNgTranslateFormat (String propertyValue)
 
String [] getReferrer ()
 

非公開変数類

final Pattern bundleParamPattern = Pattern.compile("(\\{\\s*(\\d+)\\s*\\})")
 
final AppAuthManager authManager
 
final RealmModel realm
 
final ClientModel client
 
final Theme theme
 
Auth auth
 

静的非公開変数類

static final Logger logger = Logger.getLogger(AccountConsole.class)
 

詳解

Created by st on 29/03/17.

構築子と解体子

◆ AccountConsole()

org.keycloak.services.resources.account.AccountConsole.AccountConsole ( RealmModel  realm,
ClientModel  client,
Theme  theme 
)
inline
64  {
65  this.realm = realm;
66  this.client = client;
67  this.theme = theme;
68  this.authManager = new AppAuthManager();
69  }
final ClientModel client
Definition: AccountConsole.java:59
final RealmModel realm
Definition: AccountConsole.java:58
final AppAuthManager authManager
Definition: AccountConsole.java:57
final Theme theme
Definition: AccountConsole.java:60

関数詳解

◆ convertPropValue()

String org.keycloak.services.resources.account.AccountConsole.convertPropValue ( String  propertyValue)
inlineprivate
142  {
143  propertyValue = propertyValue.replace("''", "%27");
144  propertyValue = propertyValue.replace("'", "%27");
145  propertyValue = propertyValue.replace("\"", "%22");
146 
147  propertyValue = putJavaParamsInNgTranslateFormat(propertyValue);
148 
149  return propertyValue;
150  }
String putJavaParamsInNgTranslateFormat(String propertyValue)
Definition: AccountConsole.java:156

◆ getConfig()

ClientManager.InstallationAdapterConfig org.keycloak.services.resources.account.AccountConsole.getConfig ( )
inline
175  {
176  ClientModel accountClient = realm.getClientByClientId(Constants.ACCOUNT_MANAGEMENT_CLIENT_ID);
177  if (accountClient == null) {
178  throw new javax.ws.rs.NotFoundException("Account console client not found");
179  }
180  RealmManager realmMgr = new RealmManager(session);
181  URI baseUri = session.getContext().getUri().getBaseUri();
182  return new ClientManager(realmMgr).toInstallationRepresentation(realm, accountClient, baseUri);
183  }
KeycloakSession session
Definition: AccountConsole.java:55
final RealmModel realm
Definition: AccountConsole.java:58

◆ getIndexHtmlRedirect()

Response org.keycloak.services.resources.account.AccountConsole.getIndexHtmlRedirect ( )
inline
167  {
168  return Response.status(302).location(session.getContext().getUri().getRequestUriBuilder().path("../").build()).build();
169  }
KeycloakSession session
Definition: AccountConsole.java:55

◆ getMainPage()

Response org.keycloak.services.resources.account.AccountConsole.getMainPage ( ) throws URISyntaxException, IOException, FreeMarkerException
inline
80  {
81  if (!session.getContext().getUri().getRequestUri().getPath().endsWith("/")) {
82  return Response.status(302).location(session.getContext().getUri().getRequestUriBuilder().path("/").build()).build();
83  } else {
84  Map<String, Object> map = new HashMap<>();
85 
86  URI baseUri = session.getContext().getUri().getBaseUri();
87 
88  map.put("authUrl", session.getContext().getContextPath());
89  map.put("baseUrl", session.getContext().getContextPath() + "/realms/" + realm.getName() + "/account");
90  map.put("realm", realm);
91  map.put("resourceUrl", Urls.themeRoot(baseUri).getPath() + "/account/" + theme.getName());
92  map.put("resourceVersion", Version.RESOURCES_VERSION);
93 
94  String[] referrer = getReferrer();
95  if (referrer != null) {
96  map.put("referrer", referrer[0]);
97  map.put("referrer_uri", referrer[1]);
98  }
99 
100  UserModel user = null;
101  if (auth != null) user = auth.getUser();
102  Locale locale = session.getContext().resolveLocale(user);
103  map.put("locale", locale.toLanguageTag());
104  Properties messages = theme.getMessages(locale);
105  map.put("msg", new MessageFormatterMethod(locale, messages));
106  map.put("msgJSON", messagesToJsonString(messages));
107  map.put("supportedLocales", supportedLocales(messages));
108  map.put("properties", theme.getProperties());
109 
110  EventStoreProvider eventStore = session.getProvider(EventStoreProvider.class);
111  map.put("isEventsEnabled", eventStore != null && realm.isEventsEnabled());
112  map.put("isAuthorizationEnabled", Profile.isFeatureEnabled(Profile.Feature.AUTHORIZATION));
113 
114  FreeMarkerUtil freeMarkerUtil = new FreeMarkerUtil();
115  String result = freeMarkerUtil.processTemplate(map, "index.ftl", theme);
116  Response.ResponseBuilder builder = Response.status(Response.Status.OK).type(MediaType.TEXT_HTML_UTF_8).language(Locale.ENGLISH).entity(result);
117  BrowserSecurityHeaderSetup.headers(builder, realm);
118  return builder.build();
119  }
120  }
Map< String, String > supportedLocales(Properties messages)
Definition: AccountConsole.java:122
KeycloakSession session
Definition: AccountConsole.java:55
final RealmModel realm
Definition: AccountConsole.java:58
String messagesToJsonString(Properties props)
Definition: AccountConsole.java:131
UserModel getUser()
Definition: Auth.java:59
final Theme theme
Definition: AccountConsole.java:60
String [] getReferrer()
Definition: AccountConsole.java:186
Auth auth
Definition: AccountConsole.java:62

◆ getReferrer()

String [] org.keycloak.services.resources.account.AccountConsole.getReferrer ( )
inlineprivate
186  {
187  String referrer = session.getContext().getUri().getQueryParameters().getFirst("referrer");
188  if (referrer == null) {
189  return null;
190  }
191 
192  String referrerUri = session.getContext().getUri().getQueryParameters().getFirst("referrer_uri");
193 
194  ClientModel referrerClient = realm.getClientByClientId(referrer);
195  if (referrerClient != null) {
196  if (referrerUri != null) {
197  referrerUri = RedirectUtils.verifyRedirectUri(session.getContext().getUri(), referrerUri, realm, referrerClient);
198  } else {
199  referrerUri = ResolveRelative.resolveRelativeUri(session.getContext().getUri().getRequestUri(), client.getRootUrl(), referrerClient.getBaseUrl());
200  }
201 
202  if (referrerUri != null) {
203  String referrerName = referrerClient.getName();
204  if (Validation.isBlank(referrerName)) {
205  referrerName = referrer;
206  }
207  return new String[]{referrerName, referrerUri};
208  }
209  } else if (referrerUri != null) {
210  referrerClient = realm.getClientByClientId(referrer);
211  if (client != null) {
212  referrerUri = RedirectUtils.verifyRedirectUri(session.getContext().getUri(), referrerUri, realm, referrerClient);
213 
214  if (referrerUri != null) {
215  return new String[]{referrer, referrerUri};
216  }
217  }
218  }
219 
220  return null;
221  }
KeycloakSession session
Definition: AccountConsole.java:55
final ClientModel client
Definition: AccountConsole.java:59
final RealmModel realm
Definition: AccountConsole.java:58

◆ init()

void org.keycloak.services.resources.account.AccountConsole.init ( )
inline
71  {
72  AuthenticationManager.AuthResult authResult = authManager.authenticateIdentityCookie(session, realm);
73  if (authResult != null) {
74  auth = new Auth(realm, authResult.getToken(), authResult.getUser(), client, authResult.getSession(), true);
75  }
76  }
KeycloakSession session
Definition: AccountConsole.java:55
final ClientModel client
Definition: AccountConsole.java:59
final RealmModel realm
Definition: AccountConsole.java:58
final AppAuthManager authManager
Definition: AccountConsole.java:57
AuthResult authenticateIdentityCookie(KeycloakSession session, RealmModel realm)
Definition: AppAuthManager.java:35
Auth auth
Definition: AccountConsole.java:62

◆ messagesToJsonString()

String org.keycloak.services.resources.account.AccountConsole.messagesToJsonString ( Properties  props)
inlineprivate
131  {
132  if (props == null) return "";
133 
134  JsonObjectBuilder json = Json.createObjectBuilder();
135  for (String prop : props.stringPropertyNames()) {
136  json.add(prop, convertPropValue(props.getProperty(prop)));
137  }
138 
139  return json.build().toString();
140  }
String convertPropValue(String propertyValue)
Definition: AccountConsole.java:142

◆ putJavaParamsInNgTranslateFormat()

String org.keycloak.services.resources.account.AccountConsole.putJavaParamsInNgTranslateFormat ( String  propertyValue)
inlineprivate
156  {
157  Matcher matcher = bundleParamPattern.matcher(propertyValue);
158  while (matcher.find()) {
159  propertyValue = propertyValue.replace(matcher.group(1), "{{param_" + matcher.group(2) + "}}");
160  }
161 
162  return propertyValue;
163  }
final Pattern bundleParamPattern
Definition: AccountConsole.java:52

◆ supportedLocales()

Map<String, String> org.keycloak.services.resources.account.AccountConsole.supportedLocales ( Properties  messages) throws IOException
inlineprivate
122  {
123  Map<String, String> supportedLocales = new HashMap<>();
124  for (String l : realm.getSupportedLocales()) {
125  String label = messages.getProperty("locale_" + l, l);
126  supportedLocales.put(l, label);
127  }
128  return supportedLocales;
129  }
Map< String, String > supportedLocales(Properties messages)
Definition: AccountConsole.java:122
final RealmModel realm
Definition: AccountConsole.java:58

メンバ詳解

◆ auth

Auth org.keycloak.services.resources.account.AccountConsole.auth
private

◆ authManager

final AppAuthManager org.keycloak.services.resources.account.AccountConsole.authManager
private

◆ bundleParamPattern

final Pattern org.keycloak.services.resources.account.AccountConsole.bundleParamPattern = Pattern.compile("(\\{\\s*(\\d+)\\s*\\})")
private

◆ client

final ClientModel org.keycloak.services.resources.account.AccountConsole.client
private

◆ logger

final Logger org.keycloak.services.resources.account.AccountConsole.logger = Logger.getLogger(AccountConsole.class)
staticprivate

◆ realm

final RealmModel org.keycloak.services.resources.account.AccountConsole.realm
private

◆ session

KeycloakSession org.keycloak.services.resources.account.AccountConsole.session
protected

◆ theme

final Theme org.keycloak.services.resources.account.AccountConsole.theme
private

このクラス詳解は次のファイルから抽出されました: