gluu
公開メンバ関数 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.gluu.credmanager.service.TrustedDevicesSweeper クラス
org.gluu.credmanager.service.TrustedDevicesSweeper の継承関係図
Inheritance graph
org.gluu.credmanager.service.TrustedDevicesSweeper 連携図
Collaboration graph

公開メンバ関数

void activate (long locationExpiration, long deviceExpiration)
 
String getName ()
 
void jobToBeExecuted (JobExecutionContext context)
 

非公開メンバ関数

void inited ()
 
boolean removeExpiredData (List< TrustedDevice > list, long time) throws Exception
 
List< PersonPreferencesgetPeopleTrustedDevices ()
 
void updateTrustedDevices (PersonPreferences person, String jsonDevices) throws Exception
 

非公開変数類

Logger logger
 
String quartzJobName
 
long locationExpiration
 
long deviceExpiration
 
ObjectMapper mapper
 
TimerService timerService
 
LdapService ldapService
 

詳解

著者
jgomer

関数詳解

◆ activate()

void org.gluu.credmanager.service.TrustedDevicesSweeper.activate ( long  locationExpiration,
long  deviceExpiration 
)
inline
53  {
54 
57  try {
58  int oneDay = (int) TimeUnit.DAYS.toSeconds(1);
60  //Start in one second and repeat indefinitely once every day
61  timerService.schedule(quartzJobName, 1, -1, oneDay);
62  } catch (Exception e) {
63  logger.error(e.getMessage(), e);
64  }
65 
66  }
TimerService timerService
Definition: TrustedDevicesSweeper.java:42
long locationExpiration
Definition: TrustedDevicesSweeper.java:36
Logger logger
Definition: TrustedDevicesSweeper.java:33
void addListener(JobListener jobListener, String jobName)
Definition: TimerService.java:66
JobKey schedule(String name, int count, int sleepTime)
Definition: TimerService.java:48
long deviceExpiration
Definition: TrustedDevicesSweeper.java:37
String quartzJobName
Definition: TrustedDevicesSweeper.java:35

◆ getName()

String org.gluu.credmanager.service.TrustedDevicesSweeper.getName ( )
inline
69  {
70  return quartzJobName;
71  }
String quartzJobName
Definition: TrustedDevicesSweeper.java:35

◆ getPeopleTrustedDevices()

List<PersonPreferences> org.gluu.credmanager.service.TrustedDevicesSweeper.getPeopleTrustedDevices ( )
inlineprivate
133  {
134 
135  List<PersonPreferences> list = new ArrayList<>();
136  try {
137  String filther = Filter.createPresenceFilter("oxTrustedDevicesInfo").toString();
138  list = ldapService.find(PersonPreferences.class, ldapService.getPeopleDn(), filther);
139  } catch (Exception e) {
140  logger.error(e.getMessage(), e);
141  }
142  return list;
143 
144  }
LdapService ldapService
Definition: TrustedDevicesSweeper.java:45
public< T > List< T > find(Class< T > clazz, String parentDn, String filter)
Definition: LdapService.java:222
String getPeopleDn()
Definition: LdapService.java:171
Logger logger
Definition: TrustedDevicesSweeper.java:33

◆ inited()

void org.gluu.credmanager.service.TrustedDevicesSweeper.inited ( )
inlineprivate
48  {
49  mapper = new ObjectMapper();
50  quartzJobName = getClass().getSimpleName() + "_sweep";
51  }
ObjectMapper mapper
Definition: TrustedDevicesSweeper.java:39
String quartzJobName
Definition: TrustedDevicesSweeper.java:35

◆ jobToBeExecuted()

void org.gluu.credmanager.service.TrustedDevicesSweeper.jobToBeExecuted ( JobExecutionContext  context)
inline
74  {
75 
76  logger.info("TrustedDevicesSweeper. Running timer job");
77  long now = System.currentTimeMillis();
78  List<PersonPreferences> people = getPeopleTrustedDevices();
79 
80  for (PersonPreferences person : people) {
81  try {
82  String trustedDevicesInfo = ldapService.getDecryptedString(person.getTrustedDevicesInfo());
83  List<TrustedDevice> list = mapper.readValue(trustedDevicesInfo, new TypeReference<List<TrustedDevice>>() { });
84 
85  if (removeExpiredData(list, now)) {
86  //update list
87  String jsonStr = mapper.writeValueAsString(list);
88  updateTrustedDevices(person, jsonStr);
89  }
90  } catch (Exception e) {
91  //TODO: if fails, should the trusted dvicesinfo be cleared (e.g. migration of gluu version may change salt?)
92  logger.error(e.getMessage(), e);
93  }
94  }
95 
96  }
LdapService ldapService
Definition: TrustedDevicesSweeper.java:45
List< PersonPreferences > getPeopleTrustedDevices()
Definition: TrustedDevicesSweeper.java:133
boolean removeExpiredData(List< TrustedDevice > list, long time)
Definition: TrustedDevicesSweeper.java:98
void updateTrustedDevices(PersonPreferences person, String jsonDevices)
Definition: TrustedDevicesSweeper.java:146
Logger logger
Definition: TrustedDevicesSweeper.java:33
String getDecryptedString(String str)
Definition: LdapService.java:94
ObjectMapper mapper
Definition: TrustedDevicesSweeper.java:39

◆ removeExpiredData()

boolean org.gluu.credmanager.service.TrustedDevicesSweeper.removeExpiredData ( List< TrustedDevice list,
long  time 
) throws Exception
inlineprivate
98  {
99 
100  boolean changed = false;
101 
102  for (int i = 0; i < list.size(); i++) {
103  TrustedDevice device = list.get(i);
104  List<TrustedOrigin> origins = device.getOrigins();
105 
106  if (origins != null) {
107  long oldest = Long.MAX_VALUE;
108 
109  for (int j = 0; j < origins.size(); j++) {
110 
111  TrustedOrigin origin = origins.get(j);
112  if (origin.getTimestamp() < oldest) {
113  oldest = origin.getTimestamp();
114  }
115  if (time - origin.getTimestamp() > locationExpiration) {
116  origins.remove(j);
117  j--;
118  changed = true;
119  }
120  }
121 
122  if (time - oldest > deviceExpiration) {
123  list.remove(i);
124  i--;
125  changed = true;
126  }
127  }
128  }
129  return changed;
130 
131  }
long locationExpiration
Definition: TrustedDevicesSweeper.java:36
long deviceExpiration
Definition: TrustedDevicesSweeper.java:37

◆ updateTrustedDevices()

void org.gluu.credmanager.service.TrustedDevicesSweeper.updateTrustedDevices ( PersonPreferences  person,
String  jsonDevices 
) throws Exception
inlineprivate
146  {
147  String rdn = person.getInum();
148  logger.trace("TrustedDevicesSweeper. Cleaning expired trusted devices for user '{}'", rdn);
149  person.setTrustedDevices(ldapService.getEncryptedString(jsonDevices));
150  ldapService.modify(person, PersonPreferences.class);
151 
152  }
LdapService ldapService
Definition: TrustedDevicesSweeper.java:45
public< T > boolean modify(T object, Class< T > clazz)
Definition: LdapService.java:264
String getEncryptedString(String str)
Definition: LdapService.java:90
Logger logger
Definition: TrustedDevicesSweeper.java:33

メンバ詳解

◆ deviceExpiration

long org.gluu.credmanager.service.TrustedDevicesSweeper.deviceExpiration
private

◆ ldapService

LdapService org.gluu.credmanager.service.TrustedDevicesSweeper.ldapService
private

◆ locationExpiration

long org.gluu.credmanager.service.TrustedDevicesSweeper.locationExpiration
private

◆ logger

Logger org.gluu.credmanager.service.TrustedDevicesSweeper.logger
private

◆ mapper

ObjectMapper org.gluu.credmanager.service.TrustedDevicesSweeper.mapper
private

◆ quartzJobName

String org.gluu.credmanager.service.TrustedDevicesSweeper.quartzJobName
private

◆ timerService

TimerService org.gluu.credmanager.service.TrustedDevicesSweeper.timerService
private

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