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

公開メンバ関数

void addBranch ()
 
void addResource (UmaResource resource)
 
void validate (UmaResource resource)
 
void updateResource (UmaResource resource)
 
void remove (UmaResource resource)
 
void remove (String rsid)
 
void remove (List< UmaResource > resources)
 
List< UmaResourcegetResourcesByAssociatedClient (String associatedClientDn)
 
boolean containsResource (UmaResource resource)
 
Set< UmaResourcegetResources (Set< String > ids)
 
UmaResource getResourceById (String id)
 
UmaResource getResourceByDn (String dn)
 
String getDnForResource (String oxId)
 
String getBaseDnForResource ()
 
boolean removeFromCache (UmaResource resource)
 
void cleanup (Date now)
 

非公開メンバ関数

List< UmaResourcefindResources (UmaResource resource)
 
void prepareBranch ()
 
void putInCache (UmaResource resource)
 
UmaResource fromCache (String dn)
 

非公開変数類

Logger log
 
PersistenceEntryManager ldapEntryManager
 
ErrorResponseFactory errorResponseFactory
 
StaticConfiguration staticConfiguration
 
CacheService cacheService
 

静的非公開変数類

static final int RESOURCE_CACHE_EXPIRATION_IN_SECONDS = 120
 

詳解

Provides operations with resource set descriptions

著者
Yuriy Movchan
Yuriy Zabrovarnyy Date: 10.05.2012

関数詳解

◆ addBranch()

void org.xdi.oxauth.uma.service.UmaResourceService.addBranch ( )
inline
65  {
66  SimpleBranch branch = new SimpleBranch();
67  branch.setOrganizationalUnitName("resources");
68  branch.setDn(getDnForResource(null));
69 
70  ldapEntryManager.persist(branch);
71  }
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54
String getDnForResource(String oxId)
Definition: UmaResourceService.java:229

◆ addResource()

void org.xdi.oxauth.uma.service.UmaResourceService.addResource ( UmaResource  resource)
inline

Add new resource description entry

引数
resourceresource
78  {
79  validate(resource);
80  ldapEntryManager.persist(resource);
81  putInCache(resource);
82  }
void validate(UmaResource resource)
Definition: UmaResourceService.java:84
void putInCache(UmaResource resource)
Definition: UmaResourceService.java:241
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ cleanup()

void org.xdi.oxauth.uma.service.UmaResourceService.cleanup ( Date  now)
inline
273  {
274  prepareBranch();
275 
276  BatchOperation<UmaResource> batchService = new ProcessBatchOperation<UmaResource>() {
277  @Override
278  public void performAction(List<UmaResource> entries) {
279  for (UmaResource p : entries) {
280  try {
281  remove(p);
282  } catch (Exception e) {
283  log.error("Failed to remove entry", e);
284  }
285  }
286  }
287 
288  };
289  ldapEntryManager.findEntries(getBaseDnForResource(), UmaResource.class, Filter.createLessOrEqualFilter("oxAuthExpiration", ldapEntryManager.encodeTime(now)), SearchScope.SUB, new String[]{""}, batchService, 0, 0, CleanerTimer.BATCH_SIZE);
290  }
String getBaseDnForResource()
Definition: UmaResourceService.java:236
void prepareBranch()
Definition: UmaResourceService.java:205
Logger log
Definition: UmaResourceService.java:51
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ containsResource()

boolean org.xdi.oxauth.uma.service.UmaResourceService.containsResource ( UmaResource  resource)
inline

Check if LDAP server contains resource description with specified attributes

戻り値
True if resource description with specified attributes exist
161  {
162  return ldapEntryManager.contains(resource);
163  }
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ findResources()

List<UmaResource> org.xdi.oxauth.uma.service.UmaResourceService.findResources ( UmaResource  resource)
inlineprivate

Get resource descriptions by example.

Do not expose it outside because we want to involve cache where possible.

引数
resourceResource
戻り値
Resource which conform example
152  {
153  return ldapEntryManager.findEntries(resource);
154  }
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ fromCache()

UmaResource org.xdi.oxauth.uma.service.UmaResourceService.fromCache ( String  dn)
inlineprivate
253  {
254  try {
255  return (UmaResource) cacheService.get(null, dn);
256  } catch (Exception e) {
257  log.error("Failed to fetch client from cache, dn: " + dn, e);
258  return null;
259  }
260  }
Logger log
Definition: UmaResourceService.java:51
CacheService cacheService
Definition: UmaResourceService.java:63

◆ getBaseDnForResource()

String org.xdi.oxauth.uma.service.UmaResourceService.getBaseDnForResource ( )
inline
236  {
237  final String umaBaseDn = staticConfiguration.getBaseDn().getUmaBase(); // "ou=uma,o=@!1111,o=gluu"
238  return String.format("ou=resources,%s", umaBaseDn);
239  }
StaticConfiguration staticConfiguration
Definition: UmaResourceService.java:60
String getUmaBase()
Definition: BaseDnConfiguration.java:53
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getDnForResource()

String org.xdi.oxauth.uma.service.UmaResourceService.getDnForResource ( String  oxId)
inline

Build DN string for resource description

229  {
230  if (StringHelper.isEmpty(oxId)) {
231  return getBaseDnForResource();
232  }
233  return String.format("oxId=%s,%s", oxId, getBaseDnForResource());
234  }
String getBaseDnForResource()
Definition: UmaResourceService.java:236

◆ getResourceByDn()

UmaResource org.xdi.oxauth.uma.service.UmaResourceService.getResourceByDn ( String  dn)
inline

Get resource description by DN

引数
dnResource description DN
戻り値
Resource description
218  {
219  UmaResource fromCache = fromCache(dn);
220  if (fromCache != null) {
221  return fromCache;
222  }
223  return ldapEntryManager.find(UmaResource.class, dn);
224  }
UmaResource fromCache(String dn)
Definition: UmaResourceService.java:253
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ getResourceById()

UmaResource org.xdi.oxauth.uma.service.UmaResourceService.getResourceById ( String  id)
inline
180  {
181 
182  UmaResource fromCache = fromCache(getDnForResource(id));
183  if (fromCache != null) {
184  log.trace("UMA Resource from cache, id: " + id);
185  return fromCache;
186  }
187 
188  prepareBranch();
189 
190  UmaResource ldapResource = new UmaResource();
191  ldapResource.setDn(getBaseDnForResource());
192  ldapResource.setId(id);
193 
194  final List<UmaResource> result = findResources(ldapResource);
195  if (result.size() == 0) {
196  log.error("Failed to find resource set with id: " + id);
198  } else if (result.size() > 1) {
199  log.error("Multiple resource sets found with given id: " + id);
201  }
202  return result.get(0);
203  }
String getBaseDnForResource()
Definition: UmaResourceService.java:236
void throwUmaNotFoundException()
Definition: ErrorResponseFactory.java:109
UmaResource fromCache(String dn)
Definition: UmaResourceService.java:253
void prepareBranch()
Definition: UmaResourceService.java:205
void throwUmaInternalErrorException()
Definition: ErrorResponseFactory.java:113
Logger log
Definition: UmaResourceService.java:51
List< UmaResource > findResources(UmaResource resource)
Definition: UmaResourceService.java:152
String getDnForResource(String oxId)
Definition: UmaResourceService.java:229
ErrorResponseFactory errorResponseFactory
Definition: UmaResourceService.java:57

◆ getResources()

Set<UmaResource> org.xdi.oxauth.uma.service.UmaResourceService.getResources ( Set< String >  ids)
inline
165  {
166  Set<UmaResource> result = new HashSet<UmaResource>();
167  if (ids != null) {
168  for (String id : ids) {
169  UmaResource resource = getResourceById(id);
170  if (resource != null) {
171  result.add(resource);
172  } else {
173  log.error("Failed to find resource by id: " + id);
174  }
175  }
176  }
177  return result;
178  }
Logger log
Definition: UmaResourceService.java:51
UmaResource getResourceById(String id)
Definition: UmaResourceService.java:180

◆ getResourcesByAssociatedClient()

List<UmaResource> org.xdi.oxauth.uma.service.UmaResourceService.getResourcesByAssociatedClient ( String  associatedClientDn)
inline

Get all resource descriptions

戻り値
List of resource descriptions
130  {
131  try {
132  prepareBranch();
133 
134  if (StringUtils.isNotBlank(associatedClientDn)) {
135  final Filter filter = Filter.create(String.format("&(oxAssociatedClient=%s)", associatedClientDn));
136  return ldapEntryManager.findEntries(getBaseDnForResource(), UmaResource.class, filter);
137  }
138  } catch (Exception e) {
139  log.error(e.getMessage(), e);
140  }
141  return Collections.emptyList();
142  }
String getBaseDnForResource()
Definition: UmaResourceService.java:236
void prepareBranch()
Definition: UmaResourceService.java:205
Logger log
Definition: UmaResourceService.java:51
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ prepareBranch()

void org.xdi.oxauth.uma.service.UmaResourceService.prepareBranch ( )
inlineprivate
205  {
206  // Create resource description branch if needed
207  if (!ldapEntryManager.contains(SimpleBranch.class, getDnForResource(null))) {
208  addBranch();
209  }
210  }
void addBranch()
Definition: UmaResourceService.java:65
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54
String getDnForResource(String oxId)
Definition: UmaResourceService.java:229

◆ putInCache()

void org.xdi.oxauth.uma.service.UmaResourceService.putInCache ( UmaResource  resource)
inlineprivate
241  {
242  if (resource == null) {
243  return;
244  }
245 
246  try {
247  cacheService.put(Integer.toString(RESOURCE_CACHE_EXPIRATION_IN_SECONDS), resource.getDn(), resource, Constants.SKIP_CACHE_PUT_FOR_NATIVE_PERSISTENCE);
248  } catch (Exception e) {
249  log.error("Failed to put client in cache, client:" + resource, e);
250  }
251  }
static final int RESOURCE_CACHE_EXPIRATION_IN_SECONDS
Definition: UmaResourceService.java:48
Logger log
Definition: UmaResourceService.java:51
CacheService cacheService
Definition: UmaResourceService.java:63

◆ remove() [1/3]

void org.xdi.oxauth.uma.service.UmaResourceService.remove ( UmaResource  resource)
inline

Remove resource description entry

引数
resourceresource
106  {
107  ldapEntryManager.remove(resource);
108  }
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ remove() [2/3]

void org.xdi.oxauth.uma.service.UmaResourceService.remove ( String  rsid)
inline

Remove resource description entry by ID.

引数
rsidresource ID
115  {
116  ldapEntryManager.remove(getResourceById(rsid));
117  }
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54
UmaResource getResourceById(String id)
Definition: UmaResourceService.java:180

◆ remove() [3/3]

void org.xdi.oxauth.uma.service.UmaResourceService.remove ( List< UmaResource resources)
inline
119  {
120  for (UmaResource resource : resources) {
121  remove(resource);
122  }
123  }

◆ removeFromCache()

boolean org.xdi.oxauth.uma.service.UmaResourceService.removeFromCache ( UmaResource  resource)
inline
262  {
263  try {
264  cacheService.remove(null, resource.getDn());
265  } catch (Exception e) {
266  log.error(e.getMessage(), e);
267 
268  return false;
269  }
270  return true;
271  }
Logger log
Definition: UmaResourceService.java:51
CacheService cacheService
Definition: UmaResourceService.java:63

◆ updateResource()

void org.xdi.oxauth.uma.service.UmaResourceService.updateResource ( UmaResource  resource)
inline

Update resource description entry

引数
resourceresource
96  {
97  validate(resource);
98  ldapEntryManager.merge(resource);
99  }
void validate(UmaResource resource)
Definition: UmaResourceService.java:84
PersistenceEntryManager ldapEntryManager
Definition: UmaResourceService.java:54

◆ validate()

void org.xdi.oxauth.uma.service.UmaResourceService.validate ( UmaResource  resource)
inline
84  {
85  Preconditions.checkArgument(StringUtils.isNotBlank(resource.getName()), "Name is required for resource.");
86  Preconditions.checkArgument(((resource.getScopes() != null && !resource.getScopes().isEmpty()) || StringUtils.isNotBlank(resource.getScopeExpression())), "Scope must be specified for resource.");
87  Preconditions.checkState(!resource.isExpired(), "UMA Resource expired. It must not be expired.");
88  prepareBranch();
89  }
void prepareBranch()
Definition: UmaResourceService.java:205

メンバ詳解

◆ cacheService

CacheService org.xdi.oxauth.uma.service.UmaResourceService.cacheService
private

◆ errorResponseFactory

ErrorResponseFactory org.xdi.oxauth.uma.service.UmaResourceService.errorResponseFactory
private

◆ ldapEntryManager

PersistenceEntryManager org.xdi.oxauth.uma.service.UmaResourceService.ldapEntryManager
private

◆ log

Logger org.xdi.oxauth.uma.service.UmaResourceService.log
private

◆ RESOURCE_CACHE_EXPIRATION_IN_SECONDS

final int org.xdi.oxauth.uma.service.UmaResourceService.RESOURCE_CACHE_EXPIRATION_IN_SECONDS = 120
staticprivate

◆ staticConfiguration

StaticConfiguration org.xdi.oxauth.uma.service.UmaResourceService.staticConfiguration
private

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