gluu
公開メンバ関数 | 静的公開変数類 | 非公開メンバ関数 | 静的非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxauth.service.ClientService クラス
org.xdi.oxauth.service.ClientService 連携図
Collaboration graph

公開メンバ関数

void persist (Client client)
 
void merge (Client client)
 
boolean authenticate (String clientId, String password)
 
Set< ClientgetClient (Collection< String > clientIds, boolean silent)
 
Client getClient (String clientId)
 
Client getClient (String clientId, String registrationAccessToken)
 
Set< ClientgetClientsByDns (Collection< String > dnList)
 
Set< ClientgetClientsByDns (Collection< String > dnList, boolean silently)
 
Client getClientByDn (String dn)
 
org.gluu.persist.model.base.CustomAttribute getCustomAttribute (Client client, String attributeName)
 
void setCustomAttribute (Client client, String attributeName, String attributeValue)
 
List< ClientgetAllClients (String[] returnAttributes)
 
List< ClientgetAllClients (String[] returnAttributes, int size)
 
List< ClientgetClientsWithExpirationDate (BatchOperation< Client > batchOperation, String[] returnAttributes, int sizeLimit, int chunkSize)
 
String buildClientDn (String p_clientId)
 
void remove (Client client)
 
void updatAccessTime (Client client, boolean isUpdateLogonTime)
 
Object getAttribute (Client client, String clientAttribute) throws InvalidClaimException
 
String decryptSecret (String encryptedClientSecret) throws EncryptionException
 
String encryptSecret (String clientSecret) throws EncryptionException
 

静的公開変数類

static final String [] CLIENT_OBJECT_CLASSES = new String[] { "oxAuthClient" }
 

非公開メンバ関数

void putInCache (Client client)
 
Client fromCache (String dn)
 
void removeFromCache (Client client)
 

静的非公開メンバ関数

static String getClientIdCacheKey (String clientId)
 
static String getClientDnCacheKey (String dn)
 

非公開変数類

Logger log
 
PersistenceEntryManager ldapEntryManager
 
CacheService cacheService
 
ScopeService scopeService
 
ClientFilterService clientFilterService
 
EncryptionService encryptionService
 
AppConfiguration appConfiguration
 
StaticConfiguration staticConfiguration
 

静的非公開変数類

static final String CACHE_CLIENT_NAME = "ClientCache"
 
static final String CACHE_CLIENT_FILTER_NAME = "ClientFilterCache"
 

詳解

Provides operations with clients.

著者
Javier Rojas Blum
Yuriy Movchan Date: 04/15/2014
バージョン
October 22, 2016

関数詳解

◆ authenticate()

boolean org.xdi.oxauth.service.ClientService.authenticate ( String  clientId,
String  password 
)
inline

Authenticate client.

引数
clientIdClient inum.
passwordClient password.
戻り値
true if success, otherwise false.
107  {
108  log.debug("Authenticating Client with LDAP: clientId = {}", clientId);
109  boolean authenticated = false;
110 
111  try {
112  Client client = getClient(clientId);
113  String decryptedClientSecret = decryptSecret(client.getClientSecret());
114  authenticated = client != null && decryptedClientSecret != null
115  && decryptedClientSecret.equals(password);
116  } catch (StringEncrypter.EncryptionException e) {
117  log.error(e.getMessage(), e);
118  }
119 
120  return authenticated;
121  }
Set< Client > getClient(Collection< String > clientIds, boolean silent)
Definition: ClientService.java:123
String decryptSecret(String encryptedClientSecret)
Definition: ClientService.java:390
Logger log
Definition: ClientService.java:60

◆ buildClientDn()

String org.xdi.oxauth.service.ClientService.buildClientDn ( String  p_clientId)
inline
278  {
279  final StringBuilder dn = new StringBuilder();
280  dn.append(String.format("inum=%s,", p_clientId));
281  dn.append(staticConfiguration.getBaseDn().getClients()); // ou=clients,o=@!1111,o=gluu
282  return dn.toString();
283  }
String getClients()
Definition: BaseDnConfiguration.java:93
StaticConfiguration staticConfiguration
Definition: ClientService.java:81
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ decryptSecret()

String org.xdi.oxauth.service.ClientService.decryptSecret ( String  encryptedClientSecret) throws EncryptionException
inline
390  {
391  return encryptionService.decrypt(encryptedClientSecret);
392  }
EncryptionService encryptionService
Definition: ClientService.java:75
String decrypt(String encryptedString)
Definition: EncryptionService.java:36

◆ encryptSecret()

String org.xdi.oxauth.service.ClientService.encryptSecret ( String  clientSecret) throws EncryptionException
inline
394  {
395  return encryptionService.encrypt(clientSecret);
396  }
String encrypt(String unencryptedString)
Definition: EncryptionService.java:67
EncryptionService encryptionService
Definition: ClientService.java:75

◆ fromCache()

Client org.xdi.oxauth.service.ClientService.fromCache ( String  dn)
inlineprivate
225  {
226  try {
227  String key = getClientDnCacheKey(dn);
228  return (Client) cacheService.get(CACHE_CLIENT_NAME, key);
229  } catch (Exception e) {
230  log.error("Failed to fetch client from cache, dn: " + dn, e);
231  return null;
232  }
233  }
CacheService cacheService
Definition: ClientService.java:66
static String getClientDnCacheKey(String dn)
Definition: ClientService.java:87
static final String CACHE_CLIENT_NAME
Definition: ClientService.java:56
Logger log
Definition: ClientService.java:60

◆ getAllClients() [1/2]

List<Client> org.xdi.oxauth.service.ClientService.getAllClients ( String []  returnAttributes)
inline
256  {
257  String baseDn = staticConfiguration.getBaseDn().getClients();
258 
259  List<Client> result = ldapEntryManager.findEntries(baseDn, Client.class, null, returnAttributes);
260 
261  return result;
262  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
String getClients()
Definition: BaseDnConfiguration.java:93
StaticConfiguration staticConfiguration
Definition: ClientService.java:81
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getAllClients() [2/2]

List<Client> org.xdi.oxauth.service.ClientService.getAllClients ( String []  returnAttributes,
int  size 
)
inline
264  {
265  String baseDn = staticConfiguration.getBaseDn().getClients();
266 
267  List<Client> result = ldapEntryManager.findEntries(baseDn, Client.class, null, returnAttributes, size);
268 
269  return result;
270  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
String getClients()
Definition: BaseDnConfiguration.java:93
StaticConfiguration staticConfiguration
Definition: ClientService.java:81
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getAttribute()

Object org.xdi.oxauth.service.ClientService.getAttribute ( Client  client,
String  clientAttribute 
) throws InvalidClaimException
inline
337  {
338  Object attribute = null;
339 
340  if (clientAttribute != null) {
341  if (clientAttribute.equals("displayName")) {
342  attribute = client.getClientName();
343  } else if (clientAttribute.equals("inum")) {
344  attribute = client.getClientId();
345  } else if (clientAttribute.equals("oxAuthAppType")) {
346  attribute = client.getApplicationType();
347  } else if (clientAttribute.equals("oxAuthIdTokenSignedResponseAlg")) {
348  attribute = client.getIdTokenSignedResponseAlg();
349  } else if (clientAttribute.equals("oxAuthRedirectURI") && client.getRedirectUris() != null) {
350  JSONArray array = new JSONArray();
351  for (String redirectUri : client.getRedirectUris()) {
352  array.put(redirectUri);
353  }
354  attribute = array;
355  } else if (clientAttribute.equals("oxAuthScope") && client.getScopes() != null) {
356  JSONArray array = new JSONArray();
357  for (String scopeDN : client.getScopes()) {
358  Scope s = scopeService.getScopeByDn(scopeDN);
359  if (s != null) {
360  String scopeName = s.getDisplayName();
361  array.put(scopeName);
362  }
363  }
364  attribute = array;
365  } else {
366  for (CustomAttribute customAttribute : client.getCustomAttributes()) {
367  if (customAttribute.getName().equals(clientAttribute)) {
368  List<String> values = customAttribute.getValues();
369  if (values != null) {
370  if (values.size() == 1) {
371  attribute = values.get(0);
372  } else {
373  JSONArray array = new JSONArray();
374  for (String v : values) {
375  array.put(v);
376  }
377  attribute = array;
378  }
379  }
380 
381  break;
382  }
383  }
384  }
385  }
386 
387  return attribute;
388  }
org.xdi.oxauth.model.common.Scope getScopeByDn(String dn)
Definition: ScopeService.java:89
String getDisplayName()
Definition: Scope.java:72
ScopeService scopeService
Definition: ClientService.java:69

◆ getClient() [1/3]

Set<Client> org.xdi.oxauth.service.ClientService.getClient ( Collection< String >  clientIds,
boolean  silent 
)
inline
123  {
124  Set<Client> set = Sets.newHashSet();
125 
126  if (clientIds == null) {
127  return set;
128  }
129 
130  for (String clientId : clientIds) {
131  try {
132  Client client = getClient(clientId);
133  if (client != null) {
134  set.add(client);
135  }
136  } catch (RuntimeException e) {
137  if (!silent) {
138  throw e;
139  }
140  }
141  }
142  return set;
143  }
Set< Client > getClient(Collection< String > clientIds, boolean silent)
Definition: ClientService.java:123

◆ getClient() [2/3]

Client org.xdi.oxauth.service.ClientService.getClient ( String  clientId)
inline
145  {
146  if (clientId != null && !clientId.isEmpty()) {
147  Client result = getClientByDn(buildClientDn(clientId));
148  log.debug("Found {} entries for client id = {}", result != null ? 1 : 0, clientId);
149 
150  return result;
151  }
152  return null;
153  }
Logger log
Definition: ClientService.java:60
Client getClientByDn(String dn)
Definition: ClientService.java:196
String buildClientDn(String p_clientId)
Definition: ClientService.java:278

◆ getClient() [3/3]

Client org.xdi.oxauth.service.ClientService.getClient ( String  clientId,
String  registrationAccessToken 
)
inline
155  {
156  String baseDN = staticConfiguration.getBaseDn().getClients();
157 
158  Filter filterInum = Filter.createEqualityFilter("inum", clientId);
159  Filter registrationAccessTokenInum = Filter.createEqualityFilter("oxAuthRegistrationAccessToken", registrationAccessToken);
160  Filter filter = Filter.createANDFilter(filterInum, registrationAccessTokenInum);
161 
162  List<Client> clients = ldapEntryManager.findEntries(baseDN, Client.class, filter, null, 1);
163  if (clients != null && clients.size() > 0) {
164  return clients.get(0);
165  }
166 
167  return null;
168  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
String getClients()
Definition: BaseDnConfiguration.java:93
StaticConfiguration staticConfiguration
Definition: ClientService.java:81
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getClientByDn()

Client org.xdi.oxauth.service.ClientService.getClientByDn ( String  dn)
inline

Returns client by DN.

引数
dndn of client
戻り値
Client
196  {
197  Client client = fromCache(dn);
198  if (client == null) {
199  try {
200  client = ldapEntryManager.find(Client.class, dn);
201  putInCache(client);
202  } catch (Exception ex) {
203  log.debug(ex.getMessage());
204  }
205  } else {
206  log.trace("Get client from cache by Dn '{}'", dn);
207  }
208 
209  return client;
210  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
void putInCache(Client client)
Definition: ClientService.java:212
Client fromCache(String dn)
Definition: ClientService.java:225
Logger log
Definition: ClientService.java:60

◆ getClientDnCacheKey()

static String org.xdi.oxauth.service.ClientService.getClientDnCacheKey ( String  dn)
inlinestaticprivate
87  {
88  return "client_dn_" + StringHelper.toLowerCase(dn);
89  }

◆ getClientIdCacheKey()

static String org.xdi.oxauth.service.ClientService.getClientIdCacheKey ( String  clientId)
inlinestaticprivate
83  {
84  return "client_id_" + StringHelper.toLowerCase(clientId);
85  }

◆ getClientsByDns() [1/2]

Set<Client> org.xdi.oxauth.service.ClientService.getClientsByDns ( Collection< String >  dnList)
inline
170  {
171  return getClientsByDns(dnList, true);
172  }
Set< Client > getClientsByDns(Collection< String > dnList)
Definition: ClientService.java:170

◆ getClientsByDns() [2/2]

Set<Client> org.xdi.oxauth.service.ClientService.getClientsByDns ( Collection< String >  dnList,
boolean  silently 
)
inline
174  {
175  Preconditions.checkNotNull(dnList);
176 
177  final Set<Client> result = Sets.newHashSet();
178  for (String clientDn : dnList) {
179  try {
180  result.add(getClientByDn(clientDn));
181  } catch (RuntimeException e) {
182  if (!silently) {
183  throw e;
184  }
185  }
186  }
187  return result;
188  }
Client getClientByDn(String dn)
Definition: ClientService.java:196

◆ getClientsWithExpirationDate()

List<Client> org.xdi.oxauth.service.ClientService.getClientsWithExpirationDate ( BatchOperation< Client batchOperation,
String []  returnAttributes,
int  sizeLimit,
int  chunkSize 
)
inline
272  {
273  String baseDN = staticConfiguration.getBaseDn().getClients();
274  Filter filter = Filter.createPresenceFilter("oxAuthClientSecretExpiresAt");
275  return ldapEntryManager.findEntries(baseDN, Client.class, filter, SearchScope.SUB, returnAttributes, batchOperation, 0, sizeLimit, chunkSize);
276  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
String getClients()
Definition: BaseDnConfiguration.java:93
StaticConfiguration staticConfiguration
Definition: ClientService.java:81
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getCustomAttribute()

org.gluu.persist.model.base.CustomAttribute org.xdi.oxauth.service.ClientService.getCustomAttribute ( Client  client,
String  attributeName 
)
inline
235  {
236  for (org.gluu.persist.model.base.CustomAttribute customAttribute : client.getCustomAttributes()) {
237  if (StringHelper.equalsIgnoreCase(attributeName, customAttribute.getName())) {
238  return customAttribute;
239  }
240  }
241 
242  return null;
243  }

◆ merge()

void org.xdi.oxauth.service.ClientService.merge ( Client  client)
inline
95  {
96  ldapEntryManager.merge(client);
97  removeFromCache(client);
98  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
void removeFromCache(Client client)
Definition: ClientService.java:294

◆ persist()

void org.xdi.oxauth.service.ClientService.persist ( Client  client)
inline
91  {
92  ldapEntryManager.persist(client);
93  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63

◆ putInCache()

void org.xdi.oxauth.service.ClientService.putInCache ( Client  client)
inlineprivate
212  {
213  if (client == null) {
214  return;
215  }
216 
217  try {
218  cacheService.put(CACHE_CLIENT_FILTER_NAME, getClientIdCacheKey(client.getClientId()), client, Constants.SKIP_CACHE_PUT_FOR_NATIVE_PERSISTENCE);
219  cacheService.put(CACHE_CLIENT_NAME, getClientDnCacheKey(client.getDn()), client, Constants.SKIP_CACHE_PUT_FOR_NATIVE_PERSISTENCE);
220  } catch (Exception e) {
221  log.error("Failed to put client in cache, client:" + client, e);
222  }
223  }
CacheService cacheService
Definition: ClientService.java:66
static final String CACHE_CLIENT_FILTER_NAME
Definition: ClientService.java:57
static String getClientDnCacheKey(String dn)
Definition: ClientService.java:87
static final String CACHE_CLIENT_NAME
Definition: ClientService.java:56
Logger log
Definition: ClientService.java:60
static String getClientIdCacheKey(String clientId)
Definition: ClientService.java:83

◆ remove()

void org.xdi.oxauth.service.ClientService.remove ( Client  client)
inline
285  {
286  if (client != null) {
287  removeFromCache(client);
288 
289  String clientDn = client.getDn();
290  ldapEntryManager.removeRecursively(clientDn);
291  }
292  }
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
void removeFromCache(Client client)
Definition: ClientService.java:294

◆ removeFromCache()

void org.xdi.oxauth.service.ClientService.removeFromCache ( Client  client)
inlineprivate
294  {
295  try {
296  String clientId = client.getClientId();
297  String clientDn = client.getDn();
298 
301  } catch (Exception e) {
302  log.error("Failed to remove client from cache.", e);
303  }
304  }
CacheService cacheService
Definition: ClientService.java:66
static final String CACHE_CLIENT_FILTER_NAME
Definition: ClientService.java:57
static String getClientDnCacheKey(String dn)
Definition: ClientService.java:87
static final String CACHE_CLIENT_NAME
Definition: ClientService.java:56
Logger log
Definition: ClientService.java:60
static String getClientIdCacheKey(String clientId)
Definition: ClientService.java:83

◆ setCustomAttribute()

void org.xdi.oxauth.service.ClientService.setCustomAttribute ( Client  client,
String  attributeName,
String  attributeValue 
)
inline
245  {
246  org.gluu.persist.model.base.CustomAttribute customAttribute = getCustomAttribute(client, attributeName);
247 
248  if (customAttribute == null) {
249  customAttribute = new org.gluu.persist.model.base.CustomAttribute(attributeName);
250  client.getCustomAttributes().add(customAttribute);
251  }
252 
253  customAttribute.setValue(attributeValue);
254  }
org.gluu.persist.model.base.CustomAttribute getCustomAttribute(Client client, String attributeName)
Definition: ClientService.java:235

◆ updatAccessTime()

void org.xdi.oxauth.service.ClientService.updatAccessTime ( Client  client,
boolean  isUpdateLogonTime 
)
inline
306  {
308  return;
309  }
310 
311  String clientDn = client.getDn();
312 
313  CustomEntry customEntry = new CustomEntry();
314  customEntry.setDn(clientDn);
315  customEntry.setCustomObjectClasses(CLIENT_OBJECT_CLASSES);
316 
317  Date now = new GregorianCalendar(TimeZone.getTimeZone("UTC")).getTime();
318  String nowDateString = ldapEntryManager.encodeTime(now);
319 
320  CustomAttribute customAttributeLastAccessTime = new CustomAttribute("oxLastAccessTime", nowDateString);
321  customEntry.getCustomAttributes().add(customAttributeLastAccessTime);
322 
323  if (isUpdateLogonTime) {
324  CustomAttribute customAttributeLastLogonTime = new CustomAttribute("oxLastLogonTime", nowDateString);
325  customEntry.getCustomAttributes().add(customAttributeLastLogonTime);
326  }
327 
328  try {
329  ldapEntryManager.merge(customEntry);
330  } catch (EntryPersistenceException epe) {
331  log.error("Failed to update oxLastAccessTime and oxLastLogonTime of client '{}'", clientDn);
332  }
333 
334  removeFromCache(client);
335  }
Boolean getUpdateClientAccessTime()
Definition: AppConfiguration.java:1293
static final String [] CLIENT_OBJECT_CLASSES
Definition: ClientService.java:54
PersistenceEntryManager ldapEntryManager
Definition: ClientService.java:63
void removeFromCache(Client client)
Definition: ClientService.java:294
Logger log
Definition: ClientService.java:60
AppConfiguration appConfiguration
Definition: ClientService.java:78

メンバ詳解

◆ appConfiguration

AppConfiguration org.xdi.oxauth.service.ClientService.appConfiguration
private

◆ CACHE_CLIENT_FILTER_NAME

final String org.xdi.oxauth.service.ClientService.CACHE_CLIENT_FILTER_NAME = "ClientFilterCache"
staticprivate

◆ CACHE_CLIENT_NAME

final String org.xdi.oxauth.service.ClientService.CACHE_CLIENT_NAME = "ClientCache"
staticprivate

◆ cacheService

CacheService org.xdi.oxauth.service.ClientService.cacheService
private

◆ CLIENT_OBJECT_CLASSES

final String [] org.xdi.oxauth.service.ClientService.CLIENT_OBJECT_CLASSES = new String[] { "oxAuthClient" }
static

◆ clientFilterService

ClientFilterService org.xdi.oxauth.service.ClientService.clientFilterService
private

◆ encryptionService

EncryptionService org.xdi.oxauth.service.ClientService.encryptionService
private

◆ ldapEntryManager

PersistenceEntryManager org.xdi.oxauth.service.ClientService.ldapEntryManager
private

◆ log

Logger org.xdi.oxauth.service.ClientService.log
private

◆ scopeService

ScopeService org.xdi.oxauth.service.ClientService.scopeService
private

◆ staticConfiguration

StaticConfiguration org.xdi.oxauth.service.ClientService.staticConfiguration
private

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