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

公開メンバ関数

void initTimer ()
 
void process (@Observes @Scheduled CleanerEvent cleanerEvent)
 

静的公開変数類

static final int BATCH_SIZE = 100
 

非公開メンバ関数

void processCache (Date now)
 
void processAuthorizationGrantList ()
 
void processRegisteredClients ()
 
void processU2fRequests ()
 
void processU2fDeviceRegistrations ()
 
void processMetricEntries ()
 

非公開変数類

Logger log
 
PersistenceEntryManager ldapEntryManager
 
AuthorizationGrantList authorizationGrantList
 
ClientService clientService
 
GrantService grantService
 
UmaRptService umaRptService
 
UmaPctService umaPctService
 
UmaPermissionService umaPermissionService
 
UmaResourceService umaResourceService
 
SessionIdService sessionIdService
 
CacheService cacheService
 
RequestService u2fRequestService
 
MetricService metricService
 
DeviceRegistrationService deviceRegistrationService
 
AppConfiguration appConfiguration
 
Event< TimerEvent > cleanerEvent
 
AtomicBoolean isActive
 

静的非公開変数類

static final int DEFAULT_INTERVAL = 600
 

詳解

著者
Yuriy Zabrovarnyy
Javier Rojas Blum
バージョン
August 9, 2017

関数詳解

◆ initTimer()

void org.xdi.oxauth.service.CleanerTimer.initTimer ( )
inline
112  {
113  log.debug("Initializing Cleaner Timer");
114  this.isActive = new AtomicBoolean(false);
115 
116  int interval = appConfiguration.getCleanServiceInterval();
117  if (interval <= 0) {
118  interval = DEFAULT_INTERVAL;
119  }
120 
121  cleanerEvent.fire(new TimerEvent(new TimerSchedule(interval, interval), new CleanerEvent(), Scheduled.Literal.INSTANCE));
122  }
Logger log
Definition: CleanerTimer.java:62
int getCleanServiceInterval()
Definition: AppConfiguration.java:832
static final int DEFAULT_INTERVAL
Definition: CleanerTimer.java:59
AppConfiguration appConfiguration
Definition: CleanerTimer.java:105
AtomicBoolean isActive
Definition: CleanerTimer.java:110
Event< TimerEvent > cleanerEvent
Definition: CleanerTimer.java:108

◆ process()

void org.xdi.oxauth.service.CleanerTimer.process ( @Observes @Scheduled CleanerEvent  cleanerEvent)
inline
125  {
126  if (this.isActive.get()) {
127  return;
128  }
129 
130  if (!this.isActive.compareAndSet(false, true)) {
131  return;
132  }
133 
134  try {
135  Date now = new Date();
136 
137  processCache(now);
140 
141  this.umaRptService.cleanup(now);
142  this.umaPermissionService.cleanup(now);
143  this.umaPctService.cleanup(now);
144  this.umaResourceService.cleanup(now);
145 
148 
150  } finally {
151  this.isActive.set(false);
152  }
153  }
UmaPermissionService umaPermissionService
Definition: CleanerTimer.java:83
void cleanup(Date now)
Definition: UmaResourceService.java:273
void processRegisteredClients()
Definition: CleanerTimer.java:171
void cleanup(final Date now)
Definition: UmaRptService.java:129
void processMetricEntries()
Definition: CleanerTimer.java:257
UmaRptService umaRptService
Definition: CleanerTimer.java:77
void processU2fRequests()
Definition: CleanerTimer.java:203
void processCache(Date now)
Definition: CleanerTimer.java:155
AtomicBoolean isActive
Definition: CleanerTimer.java:110
void cleanup(final Date now)
Definition: UmaPctService.java:181
void processAuthorizationGrantList()
Definition: CleanerTimer.java:165
void processU2fDeviceRegistrations()
Definition: CleanerTimer.java:230
UmaPctService umaPctService
Definition: CleanerTimer.java:80
UmaResourceService umaResourceService
Definition: CleanerTimer.java:86
void cleanup(final Date now)
Definition: UmaPermissionService.java:179

◆ processAuthorizationGrantList()

void org.xdi.oxauth.service.CleanerTimer.processAuthorizationGrantList ( )
inlineprivate
165  {
166  log.debug("Start AuthorizationGrant clean up");
168  log.debug("End AuthorizationGrant clean up");
169  }
Logger log
Definition: CleanerTimer.java:62
void cleanUp()
Definition: GrantService.java:378
GrantService grantService
Definition: CleanerTimer.java:74

◆ processCache()

void org.xdi.oxauth.service.CleanerTimer.processCache ( Date  now)
inlineprivate
155  {
156  try {
157  if (cacheService.getCacheProvider() instanceof NativePersistenceCacheProvider) {
158  ((NativePersistenceCacheProvider) cacheService.getCacheProvider()).cleanup(now, BATCH_SIZE);
159  }
160  } catch (Exception e) {
161  log.error("Failed to clean up cache.", e);
162  }
163  }
Logger log
Definition: CleanerTimer.java:62
CacheService cacheService
Definition: CleanerTimer.java:92
static final int BATCH_SIZE
Definition: CleanerTimer.java:58

◆ processMetricEntries()

void org.xdi.oxauth.service.CleanerTimer.processMetricEntries ( )
inlineprivate
257  {
258  log.debug("Start metric entries clean up");
259 
260  int keepDataDays = appConfiguration.getMetricReporterKeepDataDays();
261 
262  Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
263  calendar.add(Calendar.DATE, -keepDataDays);
264  Date expirationDate = calendar.getTime();
265 
266  metricService.removeExpiredMetricEntries(expirationDate, ApplicationType.OX_AUTH, metricService.applianceInum(), 0, BATCH_SIZE);
267 
268  log.debug("End metric entries clean up");
269  }
Logger log
Definition: CleanerTimer.java:62
int getMetricReporterKeepDataDays()
Definition: AppConfiguration.java:1097
AppConfiguration appConfiguration
Definition: CleanerTimer.java:105
static final int BATCH_SIZE
Definition: CleanerTimer.java:58
MetricService metricService
Definition: CleanerTimer.java:99
String applianceInum()
Definition: MetricService.java:57

◆ processRegisteredClients()

void org.xdi.oxauth.service.CleanerTimer.processRegisteredClients ( )
inlineprivate
171  {
172  log.debug("Start Client clean up");
173 
174  BatchOperation<Client> clientBatchService = new ProcessBatchOperation<Client>() {
175  @Override
176  public void performAction(List<Client> entries) {
177  for (Client client : entries) {
178  try {
179  GregorianCalendar now = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
180  GregorianCalendar expirationDate = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
181  expirationDate.setTime(client.getClientSecretExpiresAt());
182  if (expirationDate.before(now)) {
183  List<AuthorizationGrant> toRemove = authorizationGrantList.getAuthorizationGrant(client.getClientId());
185 
186  log.debug("Removing Client: {}, Expiration date: {}",
187  client.getClientId(),
188  client.getClientSecretExpiresAt());
189  clientService.remove(client);
190  }
191  } catch (Exception e) {
192  log.error("Failed to remove entry", e);
193  }
194  }
195  }
196  };
197 
198  clientService.getClientsWithExpirationDate(clientBatchService, new String[] {"inum", "oxAuthClientSecretExpiresAt"}, 0, BATCH_SIZE);
199 
200  log.debug("End Client clean up");
201  }
void removeAuthorizationGrants(List< AuthorizationGrant > authorizationGrants)
Definition: AuthorizationGrantList.java:68
Logger log
Definition: CleanerTimer.java:62
List< AuthorizationGrant > getAuthorizationGrant(String clientId)
Definition: AuthorizationGrantList.java:146
static final int BATCH_SIZE
Definition: CleanerTimer.java:58
ClientService clientService
Definition: CleanerTimer.java:71
void remove(Client client)
Definition: ClientService.java:285
AuthorizationGrantList authorizationGrantList
Definition: CleanerTimer.java:68
List< Client > getClientsWithExpirationDate(BatchOperation< Client > batchOperation, String[] returnAttributes, int sizeLimit, int chunkSize)
Definition: ClientService.java:272

◆ processU2fDeviceRegistrations()

void org.xdi.oxauth.service.CleanerTimer.processU2fDeviceRegistrations ( )
inlineprivate
230  {
231  log.debug("Start U2F request clean up");
232 
233  Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
234  calendar.add(Calendar.SECOND, -90);
235  final Date expirationDate = calendar.getTime();
236 
237  BatchOperation<DeviceRegistration> deviceRegistrationBatchService = new ProcessBatchOperation<DeviceRegistration>() {
238  @Override
239  public void performAction(List<DeviceRegistration> entries) {
240  for (DeviceRegistration deviceRegistration : entries) {
241  try {
242  log.debug("Removing DeviceRegistration: {}, Creation date: {}",
243  deviceRegistration.getId(),
244  deviceRegistration.getCreationDate());
246  } catch (Exception e) {
247  log.error("Failed to remove entry", e);
248  }
249  }
250  }
251  };
252  deviceRegistrationService.getExpiredDeviceRegistrations(deviceRegistrationBatchService, expirationDate, new String[] {"oxId", "creationDate"}, 0, BATCH_SIZE);
253 
254  log.debug("End U2F request clean up");
255  }
Logger log
Definition: CleanerTimer.java:62
DeviceRegistrationService deviceRegistrationService
Definition: CleanerTimer.java:102
void removeUserDeviceRegistration(DeviceRegistration deviceRegistration)
Definition: DeviceRegistrationService.java:155
List< DeviceRegistration > getExpiredDeviceRegistrations(BatchOperation< DeviceRegistration > batchOperation, Date expirationDate, String[] returnAttributes, int sizeLimit, int chunkSize)
Definition: DeviceRegistrationService.java:159
static final int BATCH_SIZE
Definition: CleanerTimer.java:58

◆ processU2fRequests()

void org.xdi.oxauth.service.CleanerTimer.processU2fRequests ( )
inlineprivate
203  {
204  log.debug("Start U2F request clean up");
205 
206  Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC"));
207  calendar.add(Calendar.SECOND, -90);
208  final Date expirationDate = calendar.getTime();
209 
210  BatchOperation<RequestMessageLdap> requestMessageLdapBatchService = new ProcessBatchOperation<RequestMessageLdap>() {
211  @Override
212  public void performAction(List<RequestMessageLdap> entries) {
213  for (RequestMessageLdap requestMessageLdap : entries) {
214  try {
215  log.debug("Removing RequestMessageLdap: {}, Creation date: {}",
216  requestMessageLdap.getRequestId(),
217  requestMessageLdap.getCreationDate());
218  u2fRequestService.removeRequestMessage(requestMessageLdap);
219  } catch (Exception e) {
220  log.error("Failed to remove entry", e);
221  }
222  }
223  }
224  };
225 
226  u2fRequestService.getExpiredRequestMessages(requestMessageLdapBatchService, expirationDate, new String[] {"oxRequestId", "creationDate"}, 0, BATCH_SIZE);
227  log.debug("End U2F request clean up");
228  }
RequestService u2fRequestService
Definition: CleanerTimer.java:96
List< RequestMessageLdap > getExpiredRequestMessages(BatchOperation< RequestMessageLdap > batchOperation, Date expirationDate, String[] returnAttributes, int sizeLimit, int chunkSize)
Definition: RequestService.java:42
Logger log
Definition: CleanerTimer.java:62
static final int BATCH_SIZE
Definition: CleanerTimer.java:58
void removeRequestMessage(RequestMessageLdap requestMessageLdap)
Definition: RequestService.java:51

メンバ詳解

◆ appConfiguration

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

◆ authorizationGrantList

AuthorizationGrantList org.xdi.oxauth.service.CleanerTimer.authorizationGrantList
private

◆ BATCH_SIZE

final int org.xdi.oxauth.service.CleanerTimer.BATCH_SIZE = 100
static

◆ cacheService

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

◆ cleanerEvent

Event<TimerEvent> org.xdi.oxauth.service.CleanerTimer.cleanerEvent
private

◆ clientService

ClientService org.xdi.oxauth.service.CleanerTimer.clientService
private

◆ DEFAULT_INTERVAL

final int org.xdi.oxauth.service.CleanerTimer.DEFAULT_INTERVAL = 600
staticprivate

◆ deviceRegistrationService

DeviceRegistrationService org.xdi.oxauth.service.CleanerTimer.deviceRegistrationService
private

◆ grantService

GrantService org.xdi.oxauth.service.CleanerTimer.grantService
private

◆ isActive

AtomicBoolean org.xdi.oxauth.service.CleanerTimer.isActive
private

◆ ldapEntryManager

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

◆ log

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

◆ metricService

MetricService org.xdi.oxauth.service.CleanerTimer.metricService
private

◆ sessionIdService

SessionIdService org.xdi.oxauth.service.CleanerTimer.sessionIdService
private

◆ u2fRequestService

RequestService org.xdi.oxauth.service.CleanerTimer.u2fRequestService
private

◆ umaPctService

UmaPctService org.xdi.oxauth.service.CleanerTimer.umaPctService
private

◆ umaPermissionService

UmaPermissionService org.xdi.oxauth.service.CleanerTimer.umaPermissionService
private

◆ umaResourceService

UmaResourceService org.xdi.oxauth.service.CleanerTimer.umaResourceService
private

◆ umaRptService

UmaRptService org.xdi.oxauth.service.CleanerTimer.umaRptService
private

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