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

公開メンバ関数

 RealmsAdminResource (AdminAuth auth, TokenManager tokenManager)
 
List< RealmRepresentation > getRealms ()
 
Response importRealm (final RealmRepresentation rep)
 
RealmAdminResource getRealmAdmin (@Context final HttpHeaders headers, @PathParam("realm") final String name)
 

静的公開変数類

static final CacheControl noCache = new CacheControl()
 

限定公開メンバ関数

void addRealmRep (List< RealmRepresentation > reps, RealmModel realm)
 

限定公開変数類

AdminAuth auth
 
TokenManager tokenManager
 
KeycloakSession session
 
KeycloakApplication keycloak
 
ClientConnection clientConnection
 

静的限定公開変数類

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

静的関数

 [static initializer]
 

非公開メンバ関数

void grantPermissionsToRealmCreator (RealmModel realm)
 

詳解

Top level resource for Admin REST API

Realms Admin

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ RealmsAdminResource()

org.keycloak.services.resources.admin.RealmsAdminResource.RealmsAdminResource ( AdminAuth  auth,
TokenManager  tokenManager 
)
inline
77  {
78  this.auth = auth;
80  }
TokenManager tokenManager
Definition: RealmsAdminResource.java:66
AdminAuth auth
Definition: RealmsAdminResource.java:65

関数詳解

◆ [static initializer]()

org.keycloak.services.resources.admin.RealmsAdminResource.[static initializer] ( )
inlinestaticpackage

◆ addRealmRep()

void org.keycloak.services.resources.admin.RealmsAdminResource.addRealmRep ( List< RealmRepresentation >  reps,
RealmModel  realm 
)
inlineprotected
112  {
113  if (AdminPermissions.realms(session, auth).canView(realm)) {
114  reps.add(ModelToRepresentation.toRepresentation(realm, false));
115  } else if (AdminPermissions.realms(session, auth).isAdmin(realm)) {
116  RealmRepresentation rep = new RealmRepresentation();
117  rep.setRealm(realm.getName());
118  reps.add(rep);
119  }
120  }
AdminAuth auth
Definition: RealmsAdminResource.java:65
KeycloakSession session
Definition: RealmsAdminResource.java:69

◆ getRealmAdmin()

RealmAdminResource org.keycloak.services.resources.admin.RealmsAdminResource.getRealmAdmin ( @Context final HttpHeaders  headers,
@PathParam("realm") final String  name 
)
inline

Base path for the admin REST API for one particular realm.

引数
headers
namerealm name (not id!)
戻り値
179  {
180  RealmManager realmManager = new RealmManager(session);
181  RealmModel realm = realmManager.getRealmByName(name);
182  if (realm == null) throw new NotFoundException("Realm not found.");
183 
184  if (!auth.getRealm().equals(realmManager.getKeycloakAdminstrationRealm())
185  && !auth.getRealm().equals(realm)) {
186  throw new ForbiddenException();
187  }
188  AdminPermissionEvaluator realmAuth = AdminPermissions.evaluator(session, realm, auth);
189 
190  AdminEventBuilder adminEvent = new AdminEventBuilder(realm, auth, session, clientConnection);
191  session.getContext().setRealm(realm);
192 
193  RealmAdminResource adminResource = new RealmAdminResource(realmAuth, realm, tokenManager, adminEvent);
194  ResteasyProviderFactory.getInstance().injectProperties(adminResource);
195  //resourceContext.initResource(adminResource);
196  return adminResource;
197  }
TokenManager tokenManager
Definition: RealmsAdminResource.java:66
RealmModel getRealm()
Definition: AdminAuth.java:44
AdminAuth auth
Definition: RealmsAdminResource.java:65
KeycloakSession session
Definition: RealmsAdminResource.java:69
ClientConnection clientConnection
Definition: RealmsAdminResource.java:75

◆ getRealms()

List<RealmRepresentation> org.keycloak.services.resources.admin.RealmsAdminResource.getRealms ( )
inline

Get accessible realms

Returns a list of accessible realms. The list is filtered based on what realms the caller is allowed to view.

戻り値
98  {
99  List<RealmRepresentation> reps = new ArrayList<RealmRepresentation>();
100  List<RealmModel> realms = session.realms().getRealms();
101  for (RealmModel realm : realms) {
102  addRealmRep(reps, realm);
103  }
104  if (reps.isEmpty()) {
105  throw new ForbiddenException();
106  }
107 
108  logger.debug(("getRealms()"));
109  return reps;
110  }
static final Logger logger
Definition: RealmsAdminResource.java:64
KeycloakSession session
Definition: RealmsAdminResource.java:69
void addRealmRep(List< RealmRepresentation > reps, RealmModel realm)
Definition: RealmsAdminResource.java:112

◆ grantPermissionsToRealmCreator()

void org.keycloak.services.resources.admin.RealmsAdminResource.grantPermissionsToRealmCreator ( RealmModel  realm)
inlineprivate
157  {
158  if (auth.hasRealmRole(AdminRoles.ADMIN)) {
159  return;
160  }
161 
162  RealmModel adminRealm = new RealmManager(session).getKeycloakAdminstrationRealm();
163  ClientModel realmAdminApp = realm.getMasterAdminClient();
164  for (String r : AdminRoles.ALL_REALM_ROLES) {
165  RoleModel role = realmAdminApp.getRole(r);
166  auth.getUser().grantRole(role);
167  }
168  }
UserModel getUser()
Definition: AdminAuth.java:48
AdminAuth auth
Definition: RealmsAdminResource.java:65
KeycloakSession session
Definition: RealmsAdminResource.java:69
boolean hasRealmRole(String role)
Definition: AdminAuth.java:61

◆ importRealm()

Response org.keycloak.services.resources.admin.RealmsAdminResource.importRealm ( final RealmRepresentation  rep)
inline

Import a realm

Imports a realm from a full representation of that realm. Realm name must be unique.

引数
repJSON representation of the realm
戻り値
132  {
133  RealmManager realmManager = new RealmManager(session);
134  realmManager.setContextPath(keycloak.getContextPath());
135  AdminPermissions.realms(session, auth).requireCreateRealm();
136 
137  logger.debugv("importRealm: {0}", rep.getRealm());
138 
139  try {
140  RealmModel realm = realmManager.importRealm(rep);
142 
143  URI location = AdminRoot.realmsUrl(session.getContext().getUri()).path(realm.getName()).build();
144  logger.debugv("imported realm success, sending back: {0}", location.toString());
145 
146  return Response.created(location).build();
147  } catch (ModelDuplicateException e) {
148  logger.error("Conflict detected", e);
149  return ErrorResponse.exists("Conflict detected. See logs for details");
150  } catch (PasswordPolicyNotMetException e) {
151  logger.error("Password policy not met for user " + e.getUsername(), e);
152  if (session.getTransactionManager().isActive()) session.getTransactionManager().setRollbackOnly();
153  return ErrorResponse.error("Password policy not met. See logs for details", Response.Status.BAD_REQUEST);
154  }
155  }
static final Logger logger
Definition: RealmsAdminResource.java:64
String getContextPath()
Definition: KeycloakApplication.java:255
AdminAuth auth
Definition: RealmsAdminResource.java:65
void grantPermissionsToRealmCreator(RealmModel realm)
Definition: RealmsAdminResource.java:157
KeycloakSession session
Definition: RealmsAdminResource.java:69
KeycloakApplication keycloak
Definition: RealmsAdminResource.java:72

メンバ詳解

◆ auth

AdminAuth org.keycloak.services.resources.admin.RealmsAdminResource.auth
protected

◆ clientConnection

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

◆ keycloak

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

◆ logger

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

◆ noCache

final CacheControl org.keycloak.services.resources.admin.RealmsAdminResource.noCache = new CacheControl()
static

◆ session

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

◆ tokenManager

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

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