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

クラス

class  WhoAmI
 

公開メンバ関数

 AdminConsole (RealmModel realm)
 
ClientManager.InstallationAdapterConfig config ()
 
Response whoAmI (final @Context HttpHeaders headers)
 
Response logout ()
 
Response getMainPage () throws URISyntaxException, IOException, FreeMarkerException
 
Response getIndexHtmlRedirect ()
 
Properties getMessages (@QueryParam("lang") String lang)
 

限定公開メンバ関数

RealmModel getAdminstrationRealm (RealmManager realmManager)
 

限定公開変数類

ClientConnection clientConnection
 
HttpRequest request
 
HttpResponse response
 
KeycloakSession session
 
Providers providers
 
KeycloakApplication keycloak
 
AppAuthManager authManager
 
RealmModel realm
 

静的限定公開変数類

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

非公開メンバ関数

void addRealmAccess (RealmModel realm, UserModel user, Map< String, Set< String >> realmAdminAccess)
 
void addMasterRealmAccess (RealmModel masterRealm, UserModel user, Map< String, Set< String >> realmAdminAccess)
 

詳解

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ AdminConsole()

org.keycloak.services.resources.admin.AdminConsole.AdminConsole ( RealmModel  realm)
inline
95  {
96  this.realm = realm;
97  this.authManager = new AppAuthManager();
98  }
AppAuthManager authManager
Definition: AdminConsole.java:92
RealmModel realm
Definition: AdminConsole.java:93

関数詳解

◆ addMasterRealmAccess()

void org.keycloak.services.resources.admin.AdminConsole.addMasterRealmAccess ( RealmModel  masterRealm,
UserModel  user,
Map< String, Set< String >>  realmAdminAccess 
)
inlineprivate
238  {
239  List<RealmModel> realms = session.realms().getRealms();
240  for (RealmModel realm : realms) {
241  ClientModel realmAdminApp = realm.getMasterAdminClient();
242  Set<RoleModel> roles = realmAdminApp.getRoles();
243  for (RoleModel role : roles) {
244  if (!user.hasRole(role)) continue;
245  if (!realmAdminAccess.containsKey(realm.getName())) {
246  realmAdminAccess.put(realm.getName(), new HashSet<String>());
247  }
248  realmAdminAccess.get(realm.getName()).add(role.getName());
249  }
250  }
251  }
KeycloakSession session
Definition: AdminConsole.java:84
RealmModel realm
Definition: AdminConsole.java:93

◆ addRealmAccess()

void org.keycloak.services.resources.admin.AdminConsole.addRealmAccess ( RealmModel  realm,
UserModel  user,
Map< String, Set< String >>  realmAdminAccess 
)
inlineprivate
224  {
225  RealmManager realmManager = new RealmManager(session);
226  ClientModel realmAdminApp = realm.getClientByClientId(realmManager.getRealmAdminClientId(realm));
227  Set<RoleModel> roles = realmAdminApp.getRoles();
228  for (RoleModel role : roles) {
229  if (!user.hasRole(role)) continue;
230  if (!realmAdminAccess.containsKey(realm.getName())) {
231  realmAdminAccess.put(realm.getName(), new HashSet<String>());
232  }
233  realmAdminAccess.get(realm.getName()).add(role.getName());
234  }
235 
236  }
KeycloakSession session
Definition: AdminConsole.java:84
RealmModel realm
Definition: AdminConsole.java:93

◆ config()

ClientManager.InstallationAdapterConfig org.keycloak.services.resources.admin.AdminConsole.config ( )
inline

Adapter configuration for the admin console for this realm

戻り値
171  {
172  ClientModel consoleApp = realm.getClientByClientId(Constants.ADMIN_CONSOLE_CLIENT_ID);
173  if (consoleApp == null) {
174  throw new NotFoundException("Could not find admin console client");
175  }
176  return new ClientManager(new RealmManager(session)).toInstallationRepresentation(realm, consoleApp, keycloak.getBaseUri(session.getContext().getUri()));
177 
178  }
KeycloakSession session
Definition: AdminConsole.java:84
KeycloakApplication keycloak
Definition: AdminConsole.java:90
RealmModel realm
Definition: AdminConsole.java:93
URI getBaseUri(UriInfo uriInfo)
Definition: KeycloakApplication.java:265

◆ getAdminstrationRealm()

RealmModel org.keycloak.services.resources.admin.AdminConsole.getAdminstrationRealm ( RealmManager  realmManager)
inlineprotected
269  {
270  return realmManager.getKeycloakAdminstrationRealm();
271  }

◆ getIndexHtmlRedirect()

Response org.keycloak.services.resources.admin.AdminConsole.getIndexHtmlRedirect ( )
inline
308  {
309  return Response.status(302).location(session.getContext().getUri().getRequestUriBuilder().path("../").build()).build();
310  }
KeycloakSession session
Definition: AdminConsole.java:84

◆ getMainPage()

Response org.keycloak.services.resources.admin.AdminConsole.getMainPage ( ) throws URISyntaxException, IOException, FreeMarkerException
inline

Main page of this realm's admin console

戻り値
例外
URISyntaxException
281  {
282  if (!session.getContext().getUri().getRequestUri().getPath().endsWith("/")) {
283  return Response.status(302).location(session.getContext().getUri().getRequestUriBuilder().path("/").build()).build();
284  } else {
285  Theme theme = AdminRoot.getTheme(session, realm);
286 
287  Map<String, Object> map = new HashMap<>();
288 
289  URI baseUri = session.getContext().getUri().getBaseUri();
290 
291  map.put("authUrl", session.getContext().getContextPath());
292  map.put("consoleBaseUrl", Urls.adminConsoleRoot(baseUri, realm.getName()).getPath());
293  map.put("resourceUrl", Urls.themeRoot(baseUri).getPath() + "/admin/" + theme.getName());
294  map.put("masterRealm", Config.getAdminRealm());
295  map.put("resourceVersion", Version.RESOURCES_VERSION);
296  map.put("properties", theme.getProperties());
297 
298  FreeMarkerUtil freeMarkerUtil = new FreeMarkerUtil();
299  String result = freeMarkerUtil.processTemplate(map, "index.ftl", theme);
300  Response.ResponseBuilder builder = Response.status(Response.Status.OK).type(MediaType.TEXT_HTML_UTF_8).language(Locale.ENGLISH).entity(result);
301  BrowserSecurityHeaderSetup.headers(builder, realm);
302  return builder.build();
303  }
304  }
KeycloakSession session
Definition: AdminConsole.java:84
RealmModel realm
Definition: AdminConsole.java:93

◆ getMessages()

Properties org.keycloak.services.resources.admin.AdminConsole.getMessages ( @QueryParam("lang") String  lang)
inline
315  {
316  return AdminRoot.getMessages(session, realm, lang, "admin-messages");
317  }
KeycloakSession session
Definition: AdminConsole.java:84
RealmModel realm
Definition: AdminConsole.java:93

◆ logout()

Response org.keycloak.services.resources.admin.AdminConsole.logout ( )
inline

Logout from the admin console

戻り値
261  {
262  URI redirect = AdminRoot.adminConsoleUrl(session.getContext().getUri()).build(realm.getName());
263 
264  return Response.status(302).location(
265  OIDCLoginProtocolService.logoutUrl(session.getContext().getUri()).queryParam("redirect_uri", redirect.toString()).build(realm.getName())
266  ).build();
267  }
KeycloakSession session
Definition: AdminConsole.java:84
RealmModel realm
Definition: AdminConsole.java:93

◆ whoAmI()

Response org.keycloak.services.resources.admin.AdminConsole.whoAmI ( final @Context HttpHeaders  headers)
inline

Permission information

引数
headers
戻り値
190  {
191  RealmManager realmManager = new RealmManager(session);
192  AuthenticationManager.AuthResult authResult = authManager.authenticateBearerToken(session, realm, session.getContext().getUri(), clientConnection, headers);
193  if (authResult == null) {
194  return Response.status(401).build();
195  }
196  UserModel user= authResult.getUser();
197  String displayName;
198  if ((user.getFirstName() != null && !user.getFirstName().trim().equals("")) || (user.getLastName() != null && !user.getLastName().trim().equals(""))) {
199  displayName = user.getFirstName();
200  if (user.getLastName() != null) {
201  displayName = displayName != null ? displayName + " " + user.getLastName() : user.getLastName();
202  }
203  } else {
204  displayName = user.getUsername();
205  }
206 
207  RealmModel masterRealm = getAdminstrationRealm(realmManager);
208  Map<String, Set<String>> realmAccess = new HashMap<String, Set<String>>();
209  if (masterRealm == null)
210  throw new NotFoundException("No realm found");
211  boolean createRealm = false;
212  if (realm.equals(masterRealm)) {
213  logger.debug("setting up realm access for a master realm user");
214  createRealm = user.hasRole(masterRealm.getRole(AdminRoles.CREATE_REALM));
215  addMasterRealmAccess(realm, user, realmAccess);
216  } else {
217  logger.debug("setting up realm access for a realm user");
218  addRealmAccess(realm, user, realmAccess);
219  }
220 
221  return Response.ok(new WhoAmI(user.getId(), realm.getName(), displayName, createRealm, realmAccess)).build();
222  }
RealmModel getAdminstrationRealm(RealmManager realmManager)
Definition: AdminConsole.java:269
UserModel getUser()
Definition: AuthenticationManager.java:1208
void addRealmAccess(RealmModel realm, UserModel user, Map< String, Set< String >> realmAdminAccess)
Definition: AdminConsole.java:224
KeycloakSession session
Definition: AdminConsole.java:84
static final Logger logger
Definition: AdminConsole.java:72
AppAuthManager authManager
Definition: AdminConsole.java:92
AuthResult authenticateBearerToken(KeycloakSession session, RealmModel realm)
Definition: AppAuthManager.java:56
ClientConnection clientConnection
Definition: AdminConsole.java:75
RealmModel realm
Definition: AdminConsole.java:93
void addMasterRealmAccess(RealmModel masterRealm, UserModel user, Map< String, Set< String >> realmAdminAccess)
Definition: AdminConsole.java:238

メンバ詳解

◆ authManager

AppAuthManager org.keycloak.services.resources.admin.AdminConsole.authManager
protected

◆ clientConnection

ClientConnection org.keycloak.services.resources.admin.AdminConsole.clientConnection
protected

◆ keycloak

KeycloakApplication org.keycloak.services.resources.admin.AdminConsole.keycloak
protected

◆ logger

final Logger org.keycloak.services.resources.admin.AdminConsole.logger = Logger.getLogger(AdminConsole.class)
staticprotected

◆ providers

Providers org.keycloak.services.resources.admin.AdminConsole.providers
protected

◆ realm

RealmModel org.keycloak.services.resources.admin.AdminConsole.realm
protected

◆ request

HttpRequest org.keycloak.services.resources.admin.AdminConsole.request
protected

◆ response

HttpResponse org.keycloak.services.resources.admin.AdminConsole.response
protected

◆ session

KeycloakSession org.keycloak.services.resources.admin.AdminConsole.session
protected

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