gluu
公開メンバ関数 | 静的公開変数類 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.gluu.credmanager.core.UserService クラス
org.gluu.credmanager.core.UserService 連携図
Collaboration graph

公開メンバ関数

User getUserFromClaims (Map< String, List< String >> claims) throws AttributeNotFoundException
 
boolean passwordMatch (String userName, String password)
 
boolean changePassword (String userId, String newPassword)
 
List< AuthnMethodgetLiveAuthnMethods ()
 
List< AuthnMethodget2FARequisiteMethods ()
 
List< Pair< AuthnMethod, Integer > > getUserMethodsCount (String userId, Set< String > retainMethods)
 
boolean setPreferredMethod (User user, String method)
 
int resetPreference (List< String > userInums)
 
List< PersonsearchUsers (String searchString)
 
boolean zeroPreferences (String acr)
 
Pair< Set< String >, List< TrustedDevice > > get2FAPolicyData (String userId)
 
boolean update2FAPolicies (String userId, Set< String > policies)
 
boolean deleteTrustedDevice (String userId, List< TrustedDevice > devices, int index)
 
String generateRandEnrollmentCode (String userId)
 
boolean cleanRandEnrollmentCode (String userId)
 

静的公開変数類

static final String [] OPEN_ID_SCOPES = new String[]{ "openid", "profile", "user_name", "clientinfo" }
 

非公開メンバ関数

boolean setPreferredMethod (String id, String method)
 
List< AuthnMethodgetLiveAuthnMethods (boolean sorted)
 
String getClaim (Map< String, List< String >> claims, String claimName)
 
PersonPreferences personPreferencesInstance (String id)
 

非公開変数類

Logger logger
 
LdapService ldapService
 
ExtensionsManager extManager
 
ConfigurationHandler confHandler
 
ObjectMapper mapper = new ObjectMapper()
 

静的非公開変数類

static final String PREFERRED_METHOD_ATTR = "oxPreferredMethod"
 

詳解

An app. scoped bean that encapsulates logic related to users manipulation (CRUD) at memory level (no LDAP storage)

著者
jgomer

関数詳解

◆ changePassword()

boolean org.gluu.credmanager.core.UserService.changePassword ( String  userId,
String  newPassword 
)
inline
106  {
107 
108  boolean success = false;
109  try {
110  if (Utils.isNotEmpty(newPassword)) {
111  PersonPreferences person = personPreferencesInstance(userId);
112  person.setPassword(newPassword);
113  success = ldapService.modify(person, PersonPreferences.class);
114  }
115  } catch (Exception e) {
116  logger.error(e.getMessage(), e);
117  }
118  return success;
119 
120  }
Logger logger
Definition: UserService.java:49
PersonPreferences personPreferencesInstance(String id)
Definition: UserService.java:323
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
LdapService ldapService
Definition: UserService.java:52

◆ cleanRandEnrollmentCode()

boolean org.gluu.credmanager.core.UserService.cleanRandEnrollmentCode ( String  userId)
inline
291  {
292  logger.trace("Removing enrollment code for {}", userId);
293  Person person = ldapService.get(Person.class, ldapService.getPersonDn(userId));
294  person.setOxEnrollmentCode();
295  return ldapService.modify(person, Person.class);
296  }
Logger logger
Definition: UserService.java:49
public< T > T get(Class< T > clazz, String dn)
Definition: LdapService.java:209
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
LdapService ldapService
Definition: UserService.java:52
String getPersonDn(String id)
Definition: LdapService.java:167

◆ deleteTrustedDevice()

boolean org.gluu.credmanager.core.UserService.deleteTrustedDevice ( String  userId,
List< TrustedDevice devices,
int  index 
)
inline
260  {
261 
262  boolean updated = false;
263  List<TrustedDevice> copyOfDevices = new ArrayList<>(devices);
264  try {
265  copyOfDevices.remove(index);
266  String updatedJson = ldapService.getEncryptedString(mapper.writeValueAsString(copyOfDevices));
267 
268  PersonPreferences person = personPreferencesInstance(userId);
269  person.setTrustedDevices(updatedJson);
270  if (ldapService.modify(person, PersonPreferences.class)) {
271  devices.remove(index);
272  updated = true;
273  }
274  } catch (Exception e) {
275  logger.error(e.getMessage(), e);
276  }
277  return updated;
278 
279  }
Logger logger
Definition: UserService.java:49
PersonPreferences personPreferencesInstance(String id)
Definition: UserService.java:323
ObjectMapper mapper
Definition: UserService.java:60
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
String getEncryptedString(String str)
Definition: LdapService.java:90
LdapService ldapService
Definition: UserService.java:52

◆ generateRandEnrollmentCode()

String org.gluu.credmanager.core.UserService.generateRandEnrollmentCode ( String  userId)
inline
281  {
282 
283  logger.debug("Writing random enrollment code for {}", userId);
284  String code = UUID.randomUUID().toString();
285  Person person = ldapService.get(Person.class, ldapService.getPersonDn(userId));
286  person.setOxEnrollmentCode(code);
287  return ldapService.modify(person, Person.class) ? code : null;
288 
289  }
Logger logger
Definition: UserService.java:49
public< T > T get(Class< T > clazz, String dn)
Definition: LdapService.java:209
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
LdapService ldapService
Definition: UserService.java:52
String getPersonDn(String id)
Definition: LdapService.java:167

◆ get2FAPolicyData()

Pair<Set<String>, List<TrustedDevice> > org.gluu.credmanager.core.UserService.get2FAPolicyData ( String  userId)
inline
212  {
213 
214  Set<String> list = new HashSet<>();
215  List<TrustedDevice> trustedDevices = new ArrayList<>();
216  try {
217  PersonPreferences person = personPreferencesInstance(userId);
218  String policy = person.getStrongAuthPolicy();
219 
220  if (Utils.isNotEmpty(policy)) {
221  Stream.of(policy.split(",\\s*")).forEach(str -> {
222  try {
223  list.add(EnforcementPolicy.valueOf(str.toUpperCase()).toString());
224  } catch (Exception e) {
225  logger.error("The policy '{}' is not recognized", str);
226  }
227  });
228  }
229 
230  String trustedDevicesInfo = ldapService.getDecryptedString(person.getTrustedDevicesInfo());
231  if (Utils.isNotEmpty(trustedDevicesInfo)) {
232  trustedDevices = mapper.readValue(trustedDevicesInfo, new TypeReference<List<TrustedDevice>>() { });
233  trustedDevices.forEach(TrustedDevice::sortOriginsDescending);
234 
235  TrustedDeviceComparator comparator = new TrustedDeviceComparator(true);
236  trustedDevices.sort((first, second) -> comparator.compare(second, first));
237  }
238  } catch (Exception e) {
239  logger.error(e.getMessage(), e);
240  }
241  return new Pair<>(list, trustedDevices);
242 
243  }
Logger logger
Definition: UserService.java:49
PersonPreferences personPreferencesInstance(String id)
Definition: UserService.java:323
void sortOriginsDescending()
Definition: TrustedDevice.java:46
ObjectMapper mapper
Definition: UserService.java:60
LdapService ldapService
Definition: UserService.java:52
String getDecryptedString(String str)
Definition: LdapService.java:94

◆ get2FARequisiteMethods()

List<AuthnMethod> org.gluu.credmanager.core.UserService.get2FARequisiteMethods ( )
inline
126  {
127  return getLiveAuthnMethods(false).stream().filter(AuthnMethod::mayBe2faActivationRequisite).collect(Collectors.toList());
128  }
List< AuthnMethod > getLiveAuthnMethods()
Definition: UserService.java:122

◆ getClaim()

String org.gluu.credmanager.core.UserService.getClaim ( Map< String, List< String >>  claims,
String  claimName 
)
inlineprivate

From a collection of claims, it extracts the first value found for a claim whose name is passed. If claim is not found or has an empty list associated, it returns null

引数
claimsMap with claims (as gathered via oxd)
claimNameClaim to inspect
戻り値
First value of claim or null
318  {
319  List<String> values = claims.get(claimName);
320  return Utils.isEmpty(values) ? null : values.get(0);
321  }

◆ getLiveAuthnMethods() [1/2]

List<AuthnMethod> org.gluu.credmanager.core.UserService.getLiveAuthnMethods ( )
inline
122  {
123  return getLiveAuthnMethods(true);
124  }
List< AuthnMethod > getLiveAuthnMethods()
Definition: UserService.java:122

◆ getLiveAuthnMethods() [2/2]

List<AuthnMethod> org.gluu.credmanager.core.UserService.getLiveAuthnMethods ( boolean  sorted)
inlineprivate
299  {
300 
301  Map<String, Integer> authnMethodLevels = confHandler.getAcrLevelMapping();
302  Set<String> mappedAcrs = confHandler.getSettings().getAcrPluginMap().keySet();
303  Stream<AuthnMethod> stream = extManager.getAuthnMethodExts().stream().filter(aMethod -> mappedAcrs.contains(aMethod.getAcr()));
304  if (sorted) {
305  stream = stream.sorted(Comparator.comparing(aMethod -> -authnMethodLevels.get(aMethod.getAcr())));
306  }
307  return stream.collect(Collectors.toList());
308 
309  }
List< AuthnMethod > getAuthnMethodExts()
Definition: ExtensionsManager.java:180
ConfigurationHandler confHandler
Definition: UserService.java:58
Map< String, Integer > getAcrLevelMapping()
Definition: ConfigurationHandler.java:222
ExtensionsManager extManager
Definition: UserService.java:55
MainSettings getSettings()
Definition: ConfigurationHandler.java:126
Map< String, String > getAcrPluginMap()
Definition: MainSettings.java:110

◆ getUserFromClaims()

User org.gluu.credmanager.core.UserService.getUserFromClaims ( Map< String, List< String >>  claims) throws AttributeNotFoundException
inline
62  {
63 
64  User u = new User();
65  u.setUserName(getClaim(claims, "user_name"));
66  logger.trace("Creating a user instance from claims. Username is {}", u.getUserName());
67 
68  u.setGivenName(getClaim(claims, "given_name"));
69  String inum = getClaim(claims, "inum");
70 
71  if (inum != null) {
72  u.setId(inum);
73  }
74  if (u.getId() == null || u.getUserName() == null) {
75  logger.error("Could not obtain minimal user claims!");
76  throw new AttributeNotFoundException("Cannot retrieve claims for logged user");
77  }
78  PersonPreferences person = personPreferencesInstance(inum);
79  if (person == null) {
80  throw new AttributeNotFoundException("Cannot retrieve user's info from LDAP");
81  }
82 
83  u.setPreferredMethod(person.getPreferredMethod());
84  u.setAdmin(ldapService.isAdmin(inum));
86  if (confHandler.getSettings().getAcrPluginMap().keySet().stream()
87  .anyMatch(acr -> acr.equals(SecurityKeyExtension.ACR) || acr.equals(SuperGluuExtension.ACR))) {
89  }
90  return u;
91 
92  }
Logger logger
Definition: UserService.java:49
PersonPreferences personPreferencesInstance(String id)
Definition: UserService.java:323
void prepareFidoBranch(String userInum)
Definition: LdapService.java:327
boolean isAdmin(String userId)
Definition: LdapService.java:199
ConfigurationHandler confHandler
Definition: UserService.java:58
MainSettings getSettings()
Definition: ConfigurationHandler.java:126
LdapService ldapService
Definition: UserService.java:52
Map< String, String > getAcrPluginMap()
Definition: MainSettings.java:110
String getClaim(Map< String, List< String >> claims, String claimName)
Definition: UserService.java:318
boolean cleanRandEnrollmentCode(String userId)
Definition: UserService.java:291

◆ getUserMethodsCount()

List<Pair<AuthnMethod, Integer> > org.gluu.credmanager.core.UserService.getUserMethodsCount ( String  userId,
Set< String >  retainMethods 
)
inline
130  {
131  return extManager.getAuthnMethodExts().stream().filter(aMethod -> retainMethods.contains(aMethod.getAcr()))
132  .map(aMethod -> new Pair<>(aMethod, aMethod.getTotalUserCreds(userId, true)))
133  .filter(pair -> pair.getY() > 0).collect(Collectors.toList());
134  }
List< AuthnMethod > getAuthnMethodExts()
Definition: ExtensionsManager.java:180
ExtensionsManager extManager
Definition: UserService.java:55

◆ passwordMatch()

boolean org.gluu.credmanager.core.UserService.passwordMatch ( String  userName,
String  password 
)
inline
94  {
95 
96  boolean match = false;
97  try {
98  match = ldapService.authenticate(userName, password);
99  } catch (Exception e) {
100  logger.error(e.getMessage(), e);
101  }
102  return match;
103 
104  }
boolean authenticate(String uid, String pass)
Definition: LdapService.java:319
Logger logger
Definition: UserService.java:49
LdapService ldapService
Definition: UserService.java:52

◆ personPreferencesInstance()

PersonPreferences org.gluu.credmanager.core.UserService.personPreferencesInstance ( String  id)
inlineprivate
323  {
324  return ldapService.get(PersonPreferences.class, ldapService.getPersonDn(id));
325  }
public< T > T get(Class< T > clazz, String dn)
Definition: LdapService.java:209
LdapService ldapService
Definition: UserService.java:52
String getPersonDn(String id)
Definition: LdapService.java:167

◆ resetPreference()

int org.gluu.credmanager.core.UserService.resetPreference ( List< String >  userInums)
inline

Resets the preferred method of authentication for the users referenced by LDAP dn

引数
userInumsA List containing user DNs
戻り値
The number of modified entries in LDAP
151  {
152 
153  int modified = 0;
154  try {
155  for (String inum : userInums) {
156  if (setPreferredMethod(inum, null)) {
157  modified++;
158  logger.info("Reset preferred method for user '{}'", inum);
159  }
160  }
161  } catch (Exception e) {
162  logger.error(e.getMessage(), e);
163  }
164  return modified;
165 
166  }
Logger logger
Definition: UserService.java:49
boolean setPreferredMethod(User user, String method)
Definition: UserService.java:136

◆ searchUsers()

List<Person> org.gluu.credmanager.core.UserService.searchUsers ( String  searchString)
inline

Builds a list of users whose username, first or last name matches the pattern passed, and at the same time have a preferred authentication method other than password

引数
searchStringPattern for search
戻り値
A collection of SimpleUser instances. Null if an error occurred to compute the list
174  {
175 
176  Stream<Filter> stream = Stream.of("uid", "givenName", "sn")
177  .map(attr -> Filter.createSubstringFilter(attr, null, new String[]{ searchString }, null));
178 
179  Filter filter = Filter.createANDFilter(
180  Filter.createORFilter(stream.collect(Collectors.toList())),
181  Filter.createPresenceFilter(PREFERRED_METHOD_ATTR)
182  );
183  return ldapService.find(Person.class, ldapService.getPeopleDn(), filter.toString());
184 
185  }
static final String PREFERRED_METHOD_ATTR
Definition: UserService.java:46
public< T > List< T > find(Class< T > clazz, String parentDn, String filter)
Definition: LdapService.java:222
String getPeopleDn()
Definition: LdapService.java:171
LdapService ldapService
Definition: UserService.java:52

◆ setPreferredMethod() [1/2]

boolean org.gluu.credmanager.core.UserService.setPreferredMethod ( User  user,
String  method 
)
inline
136  {
137 
138  boolean success = setPreferredMethod(user.getId(), method);
139  if (success) {
140  user.setPreferredMethod(method);
141  }
142  return success;
143 
144  }
boolean setPreferredMethod(User user, String method)
Definition: UserService.java:136

◆ setPreferredMethod() [2/2]

boolean org.gluu.credmanager.core.UserService.setPreferredMethod ( String  id,
String  method 
)
inlineprivate
187  {
188 
189  boolean success = false;
190  try {
191  PersonPreferences person = personPreferencesInstance(id);
192  person.setPreferredMethod(method);
193  success = ldapService.modify(person, PersonPreferences.class);
194  } catch (Exception e) {
195  logger.error(e.getMessage(), e);
196  }
197  return success;
198 
199  }
Logger logger
Definition: UserService.java:49
PersonPreferences personPreferencesInstance(String id)
Definition: UserService.java:323
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
LdapService ldapService
Definition: UserService.java:52

◆ update2FAPolicies()

boolean org.gluu.credmanager.core.UserService.update2FAPolicies ( String  userId,
Set< String >  policies 
)
inline
245  {
246 
247  boolean updated = false;
248  String str = policies.stream().map(String::toLowerCase).reduce("", (partial, next) -> partial + ", " + next);
249  try {
250  PersonPreferences person = personPreferencesInstance(userId);
251  person.setStrongAuthPolicy(str.substring(2));
252  updated = ldapService.modify(person, PersonPreferences.class);
253  } catch (Exception e) {
254  logger.error(e.getMessage(), e);
255  }
256  return updated;
257 
258  }
Logger logger
Definition: UserService.java:49
PersonPreferences personPreferencesInstance(String id)
Definition: UserService.java:323
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
LdapService ldapService
Definition: UserService.java:52

◆ zeroPreferences()

boolean org.gluu.credmanager.core.UserService.zeroPreferences ( String  acr)
inline

Determines if there are no users with this type of method as preferred in LDAP

引数
acr
戻り値
False if any user has type as his preferred. True otherwise
206  {
207  PersonPreferences ppfs = new PersonPreferences();
208  ppfs.setPreferredMethod(acr);
209  return ldapService.find(ppfs, PersonPreferences.class, ldapService.getPeopleDn()).size() == 0;
210  }
public< T > List< T > find(Class< T > clazz, String parentDn, String filter)
Definition: LdapService.java:222
String getPeopleDn()
Definition: LdapService.java:171
LdapService ldapService
Definition: UserService.java:52

メンバ詳解

◆ confHandler

ConfigurationHandler org.gluu.credmanager.core.UserService.confHandler
private

◆ extManager

ExtensionsManager org.gluu.credmanager.core.UserService.extManager
private

◆ ldapService

LdapService org.gluu.credmanager.core.UserService.ldapService
private

◆ logger

Logger org.gluu.credmanager.core.UserService.logger
private

◆ mapper

ObjectMapper org.gluu.credmanager.core.UserService.mapper = new ObjectMapper()
private

◆ OPEN_ID_SCOPES

final String [] org.gluu.credmanager.core.UserService.OPEN_ID_SCOPES = new String[]{ "openid", "profile", "user_name", "clientinfo" }
static

◆ PREFERRED_METHOD_ATTR

final String org.gluu.credmanager.core.UserService.PREFERRED_METHOD_ATTR = "oxPreferredMethod"
staticprivate

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