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

公開メンバ関数

 AdminRoot ()
 
Response masterRealmAdminConsoleRedirect ()
 
Response masterRealmAdminConsoleRedirectHtml ()
 
AdminConsole getAdminConsole (final @PathParam("realm") String name)
 
Object getRealmsAdmin (@Context final HttpHeaders headers)
 
Object getServerInfo (@Context final HttpHeaders headers)
 

静的公開メンバ関数

static UriBuilder adminBaseUrl (UriInfo uriInfo)
 
static UriBuilder adminBaseUrl (UriBuilder base)
 
static UriBuilder adminConsoleUrl (UriInfo uriInfo)
 
static UriBuilder adminConsoleUrl (UriBuilder base)
 
static UriBuilder realmsUrl (UriInfo uriInfo)
 
static UriBuilder realmsUrl (UriBuilder base)
 
static Theme getTheme (KeycloakSession session, RealmModel realm) throws IOException
 
static Properties getMessages (KeycloakSession session, RealmModel realm, String lang)
 
static Properties getMessages (KeycloakSession session, RealmModel realm, String lang, String... bundles)
 

限定公開メンバ関数

RealmModel locateRealm (String name, RealmManager realmManager)
 
AdminAuth authenticateRealmAdminRequest (HttpHeaders headers)
 

限定公開変数類

ClientConnection clientConnection
 
HttpRequest request
 
HttpResponse response
 
AppAuthManager authManager
 
TokenManager tokenManager
 
KeycloakSession session
 

静的限定公開変数類

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

静的非公開メンバ関数

static Properties getMessages (KeycloakSession session, RealmModel realm, String lang, String bundle)
 

詳解

Root resource for admin console and admin REST API

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ AdminRoot()

org.keycloak.services.resources.admin.AdminRoot.AdminRoot ( )
inline
80  {
81  this.tokenManager = new TokenManager();
82  this.authManager = new AppAuthManager();
83  }
TokenManager tokenManager
Definition: AdminRoot.java:75
AppAuthManager authManager
Definition: AdminRoot.java:74

関数詳解

◆ adminBaseUrl() [1/2]

static UriBuilder org.keycloak.services.resources.admin.AdminRoot.adminBaseUrl ( UriInfo  uriInfo)
inlinestatic
85  {
86  return adminBaseUrl(uriInfo.getBaseUriBuilder());
87  }
static UriBuilder adminBaseUrl(UriInfo uriInfo)
Definition: AdminRoot.java:85

◆ adminBaseUrl() [2/2]

static UriBuilder org.keycloak.services.resources.admin.AdminRoot.adminBaseUrl ( UriBuilder  base)
inlinestatic
89  {
90  return base.path(AdminRoot.class);
91  }
AdminRoot()
Definition: AdminRoot.java:80

◆ adminConsoleUrl() [1/2]

static UriBuilder org.keycloak.services.resources.admin.AdminRoot.adminConsoleUrl ( UriInfo  uriInfo)
inlinestatic
129  {
130  return adminConsoleUrl(uriInfo.getBaseUriBuilder());
131  }
static UriBuilder adminConsoleUrl(UriInfo uriInfo)
Definition: AdminRoot.java:129

◆ adminConsoleUrl() [2/2]

static UriBuilder org.keycloak.services.resources.admin.AdminRoot.adminConsoleUrl ( UriBuilder  base)
inlinestatic
133  {
134  return adminBaseUrl(base).path(AdminRoot.class, "getAdminConsole");
135  }
static UriBuilder adminBaseUrl(UriInfo uriInfo)
Definition: AdminRoot.java:85
AdminRoot()
Definition: AdminRoot.java:80

◆ authenticateRealmAdminRequest()

AdminAuth org.keycloak.services.resources.admin.AdminRoot.authenticateRealmAdminRequest ( HttpHeaders  headers)
inlineprotected
154  {
155  String tokenString = authManager.extractAuthorizationHeaderToken(headers);
156  if (tokenString == null) throw new UnauthorizedException("Bearer");
157  AccessToken token;
158  try {
159  JWSInput input = new JWSInput(tokenString);
160  token = input.readJsonContent(AccessToken.class);
161  } catch (JWSInputException e) {
162  throw new UnauthorizedException("Bearer token format error");
163  }
164  String realmName = token.getIssuer().substring(token.getIssuer().lastIndexOf('/') + 1);
165  RealmManager realmManager = new RealmManager(session);
166  RealmModel realm = realmManager.getRealmByName(realmName);
167  if (realm == null) {
168  throw new UnauthorizedException("Unknown realm in token");
169  }
170  session.getContext().setRealm(realm);
171  AuthenticationManager.AuthResult authResult = authManager.authenticateBearerToken(session, realm, session.getContext().getUri(), clientConnection, headers);
172  if (authResult == null) {
173  logger.debug("Token not valid");
174  throw new UnauthorizedException("Bearer");
175  }
176 
177  ClientModel client = realm.getClientByClientId(token.getIssuedFor());
178  if (client == null) {
179  throw new NotFoundException("Could not find client for authorization");
180 
181  }
182 
183  return new AdminAuth(realm, authResult.getToken(), authResult.getUser(), client);
184  }
static final Logger logger
Definition: AdminRoot.java:63
KeycloakSession session
Definition: AdminRoot.java:78
String extractAuthorizationHeaderToken(HttpHeaders headers)
Definition: AppAuthManager.java:44
AuthResult authenticateBearerToken(KeycloakSession session, RealmModel realm)
Definition: AppAuthManager.java:56
AppAuthManager authManager
Definition: AdminRoot.java:74
ClientConnection clientConnection
Definition: AdminRoot.java:66

◆ getAdminConsole()

AdminConsole org.keycloak.services.resources.admin.AdminRoot.getAdminConsole ( final @PathParam("realm") String  name)
inline

path to realm admin console ui

引数
nameRealm name (not id!)
戻り値
145  {
146  RealmManager realmManager = new RealmManager(session);
147  RealmModel realm = locateRealm(name, realmManager);
148  AdminConsole service = new AdminConsole(realm);
149  ResteasyProviderFactory.getInstance().injectProperties(service);
150  return service;
151  }
KeycloakSession session
Definition: AdminRoot.java:78
RealmModel locateRealm(String name, RealmManager realmManager)
Definition: AdminRoot.java:119

◆ getMessages() [1/3]

static Properties org.keycloak.services.resources.admin.AdminRoot.getMessages ( KeycloakSession  session,
RealmModel  realm,
String  lang 
)
inlinestatic
250  {
251  try {
252  Theme theme = getTheme(session, realm);
253  Locale locale = lang != null ? Locale.forLanguageTag(lang) : Locale.ENGLISH;
254  return theme.getMessages(locale);
255  } catch (IOException e) {
256  logger.error("Failed to load messages from theme", e);
257  return new Properties();
258  }
259  }
static final Logger logger
Definition: AdminRoot.java:63
KeycloakSession session
Definition: AdminRoot.java:78
static Theme getTheme(KeycloakSession session, RealmModel realm)
Definition: AdminRoot.java:246

◆ getMessages() [2/3]

static Properties org.keycloak.services.resources.admin.AdminRoot.getMessages ( KeycloakSession  session,
RealmModel  realm,
String  lang,
String...  bundles 
)
inlinestatic
261  {
262  Properties compound = new Properties();
263  for (String bundle : bundles) {
264  Properties current = getMessages(session, realm, lang, bundle);
265  compound.putAll(current);
266  }
267  return compound;
268  }
KeycloakSession session
Definition: AdminRoot.java:78
static Properties getMessages(KeycloakSession session, RealmModel realm, String lang)
Definition: AdminRoot.java:250

◆ getMessages() [3/3]

static Properties org.keycloak.services.resources.admin.AdminRoot.getMessages ( KeycloakSession  session,
RealmModel  realm,
String  lang,
String  bundle 
)
inlinestaticprivate
270  {
271  try {
272  Theme theme = getTheme(session, realm);
273  Locale locale = lang != null ? Locale.forLanguageTag(lang) : Locale.ENGLISH;
274  return theme.getMessages(bundle, locale);
275  } catch (IOException e) {
276  logger.error("Failed to load messages from theme", e);
277  return new Properties();
278  }
279  }
static final Logger logger
Definition: AdminRoot.java:63
KeycloakSession session
Definition: AdminRoot.java:78
static Theme getTheme(KeycloakSession session, RealmModel realm)
Definition: AdminRoot.java:246

◆ getRealmsAdmin()

Object org.keycloak.services.resources.admin.AdminRoot.getRealmsAdmin ( @Context final HttpHeaders  headers)
inline

Base Path to realm admin REST interface

引数
headers
戻り値
201  {
202  if (request.getHttpMethod().equals(HttpMethod.OPTIONS)) {
203  return new AdminCorsPreflightService(request);
204  }
205 
206  AdminAuth auth = authenticateRealmAdminRequest(headers);
207  if (auth != null) {
208  logger.debug("authenticated admin access for: " + auth.getUser().getUsername());
209  }
210 
211  Cors.add(request).allowedOrigins(auth.getToken()).allowedMethods("GET", "PUT", "POST", "DELETE").exposedHeaders("Location").auth().build(response);
212 
213  RealmsAdminResource adminResource = new RealmsAdminResource(auth, tokenManager);
214  ResteasyProviderFactory.getInstance().injectProperties(adminResource);
215  return adminResource;
216  }
static final Logger logger
Definition: AdminRoot.java:63
HttpResponse response
Definition: AdminRoot.java:72
HttpRequest request
Definition: AdminRoot.java:69
TokenManager tokenManager
Definition: AdminRoot.java:75
AdminAuth authenticateRealmAdminRequest(HttpHeaders headers)
Definition: AdminRoot.java:154

◆ getServerInfo()

Object org.keycloak.services.resources.admin.AdminRoot.getServerInfo ( @Context final HttpHeaders  headers)
inline

General information about the server

引数
headers
戻り値
225  {
226  if (request.getHttpMethod().equals(HttpMethod.OPTIONS)) {
227  return new AdminCorsPreflightService(request);
228  }
229 
230  AdminAuth auth = authenticateRealmAdminRequest(headers);
231  if (!AdminPermissions.realms(session, auth).isAdmin()) {
232  throw new ForbiddenException();
233  }
234 
235  if (auth != null) {
236  logger.debug("authenticated admin access for: " + auth.getUser().getUsername());
237  }
238 
239  Cors.add(request).allowedOrigins(auth.getToken()).allowedMethods("GET", "PUT", "POST", "DELETE").auth().build(response);
240 
241  ServerInfoAdminResource adminResource = new ServerInfoAdminResource();
242  ResteasyProviderFactory.getInstance().injectProperties(adminResource);
243  return adminResource;
244  }
static final Logger logger
Definition: AdminRoot.java:63
HttpResponse response
Definition: AdminRoot.java:72
KeycloakSession session
Definition: AdminRoot.java:78
HttpRequest request
Definition: AdminRoot.java:69
AdminAuth authenticateRealmAdminRequest(HttpHeaders headers)
Definition: AdminRoot.java:154

◆ getTheme()

static Theme org.keycloak.services.resources.admin.AdminRoot.getTheme ( KeycloakSession  session,
RealmModel  realm 
) throws IOException
inlinestatic
246  {
247  return session.theme().getTheme(Theme.Type.ADMIN);
248  }
KeycloakSession session
Definition: AdminRoot.java:78

◆ locateRealm()

RealmModel org.keycloak.services.resources.admin.AdminRoot.locateRealm ( String  name,
RealmManager  realmManager 
)
inlineprotected
119  {
120  RealmModel realm = realmManager.getRealmByName(name);
121  if (realm == null) {
122  throw new NotFoundException("Realm not found. Did you type in a bad URL?");
123  }
124  session.getContext().setRealm(realm);
125  return realm;
126  }
KeycloakSession session
Definition: AdminRoot.java:78

◆ masterRealmAdminConsoleRedirect()

Response org.keycloak.services.resources.admin.AdminRoot.masterRealmAdminConsoleRedirect ( )
inline

Convenience path to master realm admin console

戻り値
100  {
101  RealmModel master = new RealmManager(session).getKeycloakAdminstrationRealm();
102  return Response.status(302).location(
103  session.getContext().getUri().getBaseUriBuilder().path(AdminRoot.class).path(AdminRoot.class, "getAdminConsole").path("/").build(master.getName())
104  ).build();
105  }
KeycloakSession session
Definition: AdminRoot.java:78
AdminRoot()
Definition: AdminRoot.java:80

◆ masterRealmAdminConsoleRedirectHtml()

Response org.keycloak.services.resources.admin.AdminRoot.masterRealmAdminConsoleRedirectHtml ( )
inline

Convenience path to master realm admin console

戻り値
115  {
117  }
Response masterRealmAdminConsoleRedirect()
Definition: AdminRoot.java:100

◆ realmsUrl() [1/2]

static UriBuilder org.keycloak.services.resources.admin.AdminRoot.realmsUrl ( UriInfo  uriInfo)
inlinestatic
186  {
187  return realmsUrl(uriInfo.getBaseUriBuilder());
188  }
static UriBuilder realmsUrl(UriInfo uriInfo)
Definition: AdminRoot.java:186

◆ realmsUrl() [2/2]

static UriBuilder org.keycloak.services.resources.admin.AdminRoot.realmsUrl ( UriBuilder  base)
inlinestatic
190  {
191  return adminBaseUrl(base).path(AdminRoot.class, "getRealmsAdmin");
192  }
static UriBuilder adminBaseUrl(UriInfo uriInfo)
Definition: AdminRoot.java:85
AdminRoot()
Definition: AdminRoot.java:80

メンバ詳解

◆ authManager

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

◆ clientConnection

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

◆ logger

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

◆ request

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

◆ response

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

◆ session

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

◆ tokenManager

TokenManager org.keycloak.services.resources.admin.AdminRoot.tokenManager
protected

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