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

公開メンバ関数

 UsersResource (RealmModel realm, AdminPermissionEvaluator auth, AdminEventBuilder adminEvent)
 
Response createUser (final UserRepresentation rep)
 
UserResource user (final @PathParam("id") String id)
 
List< UserRepresentation > getUsers (@QueryParam("search") String search, @QueryParam("lastName") String last, @QueryParam("firstName") String first, @QueryParam("email") String email, @QueryParam("username") String username, @QueryParam("first") Integer firstResult, @QueryParam("max") Integer maxResults, @QueryParam("briefRepresentation") Boolean briefRepresentation)
 
Integer getUsersCount ()
 

限定公開変数類

RealmModel realm
 
ClientConnection clientConnection
 
KeycloakSession session
 
HttpHeaders headers
 

非公開変数類

AdminPermissionEvaluator auth
 
AdminEventBuilder adminEvent
 

静的非公開変数類

static final Logger logger = Logger.getLogger(UsersResource.class)
 
static final String SEARCH_ID_PARAMETER = "id:"
 

詳解

Base resource for managing users

Users

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ UsersResource()

org.keycloak.services.resources.admin.UsersResource.UsersResource ( RealmModel  realm,
AdminPermissionEvaluator  auth,
AdminEventBuilder  adminEvent 
)
inline
86  {
87  this.auth = auth;
88  this.realm = realm;
89  this.adminEvent = adminEvent.resource(ResourceType.USER);
90  }
RealmModel realm
Definition: UsersResource.java:71
AdminEventBuilder adminEvent
Definition: UsersResource.java:75
AdminEventBuilder resource(ResourceType resourceType)
Definition: AdminEventBuilder.java:118
AdminPermissionEvaluator auth
Definition: UsersResource.java:73

関数詳解

◆ createUser()

Response org.keycloak.services.resources.admin.UsersResource.createUser ( final UserRepresentation  rep)
inline

Create a new user

Username must be unique.

引数
rep
戻り値
102  {
104 
105  // Double-check duplicated username and email here due to federation
106  if (session.users().getUserByUsername(rep.getUsername(), realm) != null) {
107  return ErrorResponse.exists("User exists with same username");
108  }
109  if (rep.getEmail() != null && !realm.isDuplicateEmailsAllowed() && session.users().getUserByEmail(rep.getEmail(), realm) != null) {
110  return ErrorResponse.exists("User exists with same email");
111  }
112 
113  try {
114  UserModel user = session.users().addUser(realm, rep.getUsername());
115  Set<String> emptySet = Collections.emptySet();
116 
117  UserResource.updateUserFromRep(user, rep, emptySet, realm, session, false);
118  RepresentationToModel.createCredentials(rep, session, realm, user, true);
119  adminEvent.operation(OperationType.CREATE).resourcePath(session.getContext().getUri(), user.getId()).representation(rep).success();
120 
121  if (session.getTransactionManager().isActive()) {
122  session.getTransactionManager().commit();
123  }
124 
125  return Response.created(session.getContext().getUri().getAbsolutePathBuilder().path(user.getId()).build()).build();
126  } catch (ModelDuplicateException e) {
127  if (session.getTransactionManager().isActive()) {
128  session.getTransactionManager().setRollbackOnly();
129  }
130  return ErrorResponse.exists("User exists with same username or email");
131  } catch (ModelException me){
132  if (session.getTransactionManager().isActive()) {
133  session.getTransactionManager().setRollbackOnly();
134  }
135  logger.warn("Could not create user", me);
136  return ErrorResponse.exists("Could not create user");
137  }
138  }
RealmModel realm
Definition: UsersResource.java:71
KeycloakSession session
Definition: UsersResource.java:81
UserResource user(final @PathParam("id") String id)
Definition: UsersResource.java:146
AdminEventBuilder adminEvent
Definition: UsersResource.java:75
AdminEventBuilder operation(OperationType operationType)
Definition: AdminEventBuilder.java:113
void success()
Definition: AdminEventBuilder.java:226
AdminEventBuilder resourcePath(String... pathElements)
Definition: AdminEventBuilder.java:171
AdminPermissionEvaluator auth
Definition: UsersResource.java:73
static final Logger logger
Definition: UsersResource.java:68

◆ getUsers()

List<UserRepresentation> org.keycloak.services.resources.admin.UsersResource.getUsers ( @QueryParam("search") String  search,
@QueryParam("lastName") String  last,
@QueryParam("firstName") String  first,
@QueryParam("email") String  email,
@QueryParam("username") String  username,
@QueryParam("first") Integer  firstResult,
@QueryParam("max") Integer  maxResults,
@QueryParam("briefRepresentation") Boolean  briefRepresentation 
)
inline

Get users

Returns a list of users, filtered according to query parameters

引数
searchA String contained in username, first or last name, or email
last
first
email
username
firstPagination offset
maxResultsMaximum results size (defaults to 100)
戻り値
183  {
184  auth.users().requireQuery();
185 
186  firstResult = firstResult != null ? firstResult : -1;
187  maxResults = maxResults != null ? maxResults : Constants.DEFAULT_MAX_RESULTS;
188 
189  List<UserRepresentation> results = new ArrayList<UserRepresentation>();
190  List<UserModel> userModels = Collections.emptyList();
191  if (search != null) {
192  if (search.startsWith(SEARCH_ID_PARAMETER)) {
193  UserModel userModel = session.users().getUserById(search.substring(SEARCH_ID_PARAMETER.length()).trim(), realm);
194  if (userModel != null) {
195  userModels = Arrays.asList(userModel);
196  }
197  } else {
198  userModels = session.users().searchForUser(search.trim(), realm, firstResult, maxResults);
199  }
200  } else if (last != null || first != null || email != null || username != null) {
201  Map<String, String> attributes = new HashMap<String, String>();
202  if (last != null) {
203  attributes.put(UserModel.LAST_NAME, last);
204  }
205  if (first != null) {
206  attributes.put(UserModel.FIRST_NAME, first);
207  }
208  if (email != null) {
209  attributes.put(UserModel.EMAIL, email);
210  }
211  if (username != null) {
212  attributes.put(UserModel.USERNAME, username);
213  }
214  userModels = session.users().searchForUser(attributes, realm, firstResult, maxResults);
215  } else {
216  userModels = session.users().getUsers(realm, firstResult, maxResults, false);
217  }
218 
219  boolean canViewGlobal = auth.users().canView();
220  boolean briefRepresentationB = briefRepresentation != null && briefRepresentation;
221  for (UserModel user : userModels) {
222  if (!canViewGlobal && !auth.users().canView(user)) continue;
223  UserRepresentation userRep = briefRepresentationB
224  ? ModelToRepresentation.toBriefRepresentation(user)
225  : ModelToRepresentation.toRepresentation(session, realm, user);
226  userRep.setAccess(auth.users().getAccess(user));
227  results.add(userRep);
228  }
229  return results;
230  }
RealmModel realm
Definition: UsersResource.java:71
KeycloakSession session
Definition: UsersResource.java:81
UserResource user(final @PathParam("id") String id)
Definition: UsersResource.java:146
AdminPermissionEvaluator auth
Definition: UsersResource.java:73
static final String SEARCH_ID_PARAMETER
Definition: UsersResource.java:69

◆ getUsersCount()

Integer org.keycloak.services.resources.admin.UsersResource.getUsersCount ( )
inline
236  {
237  auth.users().requireView();
238 
239  return session.users().getUsersCount(realm);
240  }
RealmModel realm
Definition: UsersResource.java:71
KeycloakSession session
Definition: UsersResource.java:81
AdminPermissionEvaluator auth
Definition: UsersResource.java:73

◆ user()

UserResource org.keycloak.services.resources.admin.UsersResource.user ( final @PathParam("id") String  id)
inline

Get representation of the user

引数
idUser id
戻り値
146  {
147  UserModel user = session.users().getUserById(id, realm);
148  if (user == null) {
149  // we do this to make sure somebody can't phish ids
150  if (auth.users().canQuery()) throw new NotFoundException("User not found");
151  else throw new ForbiddenException();
152  }
153  UserResource resource = new UserResource(realm, user, auth, adminEvent);
154  ResteasyProviderFactory.getInstance().injectProperties(resource);
155  //resourceContext.initResource(users);
156  return resource;
157  }
RealmModel realm
Definition: UsersResource.java:71
KeycloakSession session
Definition: UsersResource.java:81
UserResource user(final @PathParam("id") String id)
Definition: UsersResource.java:146
AdminEventBuilder adminEvent
Definition: UsersResource.java:75
AdminPermissionEvaluator auth
Definition: UsersResource.java:73

メンバ詳解

◆ adminEvent

AdminEventBuilder org.keycloak.services.resources.admin.UsersResource.adminEvent
private

◆ auth

AdminPermissionEvaluator org.keycloak.services.resources.admin.UsersResource.auth
private

◆ clientConnection

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

◆ headers

HttpHeaders org.keycloak.services.resources.admin.UsersResource.headers
protected

◆ logger

final Logger org.keycloak.services.resources.admin.UsersResource.logger = Logger.getLogger(UsersResource.class)
staticprivate

◆ realm

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

◆ SEARCH_ID_PARAMETER

final String org.keycloak.services.resources.admin.UsersResource.SEARCH_ID_PARAMETER = "id:"
staticprivate

◆ session

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

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