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

公開メンバ関数

void persist (UmaRPT rpt)
 
UmaRPT getRPTByCode (String rptCode)
 
void deleteByCode (String rptCode)
 
void cleanup (final Date now)
 
void addPermissionToRPT (UmaRPT rpt, Collection< UmaPermission > permissions)
 
void addPermissionToRPT (UmaRPT rpt, UmaPermission... permission)
 
List< UmaPermissiongetRptPermissions (UmaRPT p_rpt)
 
UmaRPT createRPT (String clientId)
 
Date rptExpirationDate ()
 
UmaRPT createRPTAndPersist (String clientId)
 
UmaPermission getPermissionFromRPTByResourceId (UmaRPT rpt, String resourceId)
 
void addBranch (String clientDn)
 
void addBranchIfNeeded (String clientDn)
 
boolean containsBranch (String clientDn)
 

静的公開メンバ関数

static String getDn (String clientDn, String uniqueIdentifier)
 
static String branchDn (String clientDn)
 

静的公開変数類

static final int DEFAULT_RPT_LIFETIME = 3600
 

非公開メンバ関数

Filter getExpiredUmaRptFilter (Date date)
 

非公開変数類

Logger log
 
PersistenceEntryManager ldapEntryManager
 
TokenService tokenService
 
AuthorizationGrantList authorizationGrantList
 
AppConfiguration appConfiguration
 
StaticConfiguration staticConfiguration
 
ClientService clientService
 

静的非公開変数類

static final String ORGUNIT_OF_RPT = "uma_rpt"
 

詳解

RPT manager component

著者
Yuriy Zabrovarnyy
Javier Rojas Blum
バージョン
June 28, 2017

関数詳解

◆ addBranch()

void org.xdi.oxauth.uma.service.UmaRptService.addBranch ( String  clientDn)
inline
237  {
238  final SimpleBranch branch = new SimpleBranch();
239  branch.setOrganizationalUnitName(ORGUNIT_OF_RPT);
240  branch.setDn(branchDn(clientDn));
241  ldapEntryManager.persist(branch);
242  }
static String branchDn(String clientDn)
Definition: UmaRptService.java:82
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61
static final String ORGUNIT_OF_RPT
Definition: UmaRptService.java:53

◆ addBranchIfNeeded()

void org.xdi.oxauth.uma.service.UmaRptService.addBranchIfNeeded ( String  clientDn)
inline
244  {
245  if (!containsBranch(clientDn)) {
246  addBranch(clientDn);
247  }
248  }
void addBranch(String clientDn)
Definition: UmaRptService.java:237
boolean containsBranch(String clientDn)
Definition: UmaRptService.java:250

◆ addPermissionToRPT() [1/2]

void org.xdi.oxauth.uma.service.UmaRptService.addPermissionToRPT ( UmaRPT  rpt,
Collection< UmaPermission permissions 
)
inline
149  {
150  addPermissionToRPT(rpt, permissions.toArray(new UmaPermission[permissions.size()]));
151  }
void addPermissionToRPT(UmaRPT rpt, Collection< UmaPermission > permissions)
Definition: UmaRptService.java:149

◆ addPermissionToRPT() [2/2]

void org.xdi.oxauth.uma.service.UmaRptService.addPermissionToRPT ( UmaRPT  rpt,
UmaPermission...  permission 
)
inline
153  {
154  if (ArrayUtils.isEmpty(permission)) {
155  return;
156  }
157 
158  final List<String> permissions = new ArrayList<String>();
159  if (rpt.getPermissions() != null) {
160  permissions.addAll(rpt.getPermissions());
161  }
162 
163  for (UmaPermission p : permission) {
164  permissions.add(p.getDn());
165  }
166 
167  rpt.setPermissions(permissions);
168 
169  try {
170  ldapEntryManager.merge(rpt);
171  log.trace("Persisted RPT: " + rpt);
172  } catch (Exception e) {
173  log.error(e.getMessage(), e);
174  }
175  }
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61
Logger log
Definition: UmaRptService.java:58

◆ branchDn()

static String org.xdi.oxauth.uma.service.UmaRptService.branchDn ( String  clientDn)
inlinestatic
82  {
83  return String.format("ou=%s,%s", ORGUNIT_OF_RPT, clientDn);
84  }
static final String ORGUNIT_OF_RPT
Definition: UmaRptService.java:53

◆ cleanup()

void org.xdi.oxauth.uma.service.UmaRptService.cleanup ( final Date  now)
inline
129  {
130  BatchOperation<UmaRPT> rptBatchService = new ProcessBatchOperation<UmaRPT>() {
131  @Override
132  public void performAction(List<UmaRPT> entries) {
133  for (UmaRPT p : entries) {
134  try {
135  ldapEntryManager.remove(p);
136  } catch (Exception e) {
137  log.error("Failed to remove entry", e);
138  }
139  }
140  }
141  };
142  ldapEntryManager.findEntries(staticConfiguration.getBaseDn().getClients(), UmaRPT.class, getExpiredUmaRptFilter(now), SearchScope.SUB, new String[] { "" }, rptBatchService, 0, 0, CleanerTimer.BATCH_SIZE);
143  }
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61
Logger log
Definition: UmaRptService.java:58
String getClients()
Definition: BaseDnConfiguration.java:93
StaticConfiguration staticConfiguration
Definition: UmaRptService.java:73
Filter getExpiredUmaRptFilter(Date date)
Definition: UmaRptService.java:145
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ containsBranch()

boolean org.xdi.oxauth.uma.service.UmaRptService.containsBranch ( String  clientDn)
inline
250  {
251  return ldapEntryManager.contains(SimpleBranch.class, branchDn(clientDn));
252  }
static String branchDn(String clientDn)
Definition: UmaRptService.java:82
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61

◆ createRPT()

UmaRPT org.xdi.oxauth.uma.service.UmaRptService.createRPT ( String  clientId)
inline
195  {
196  try {
197  String code = UUID.randomUUID().toString() + "_" + INumGenerator.generate(8);
198  return new UmaRPT(code, new Date(), rptExpirationDate(), null, clientId);
199  } catch (Exception e) {
200  log.error(e.getMessage(), e);
201  throw new RuntimeException("Failed to generate RPT, clientId: " + clientId, e);
202  }
203  }
Date rptExpirationDate()
Definition: UmaRptService.java:205
Logger log
Definition: UmaRptService.java:58

◆ createRPTAndPersist()

UmaRPT org.xdi.oxauth.uma.service.UmaRptService.createRPTAndPersist ( String  clientId)
inline
216  {
217  UmaRPT rpt = createRPT(clientId);
218  persist(rpt);
219  return rpt;
220  }
void persist(UmaRPT rpt)
Definition: UmaRptService.java:86
UmaRPT createRPT(String clientId)
Definition: UmaRptService.java:195

◆ deleteByCode()

void org.xdi.oxauth.uma.service.UmaRptService.deleteByCode ( String  rptCode)
inline
118  {
119  try {
120  final UmaRPT t = getRPTByCode(rptCode);
121  if (t != null) {
122  ldapEntryManager.remove(t);
123  }
124  } catch (Exception e) {
125  log.error(e.getMessage(), e);
126  }
127  }
UmaRPT getRPTByCode(String rptCode)
Definition: UmaRptService.java:102
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61
Logger log
Definition: UmaRptService.java:58

◆ getDn()

static String org.xdi.oxauth.uma.service.UmaRptService.getDn ( String  clientDn,
String  uniqueIdentifier 
)
inlinestatic
78  {
79  return String.format("uniqueIdentifier=%s,%s", uniqueIdentifier, branchDn(clientDn));
80  }
static String branchDn(String clientDn)
Definition: UmaRptService.java:82

◆ getExpiredUmaRptFilter()

Filter org.xdi.oxauth.uma.service.UmaRptService.getExpiredUmaRptFilter ( Date  date)
inlineprivate
145  {
146  return Filter.createLessOrEqualFilter("oxAuthExpiration", ldapEntryManager.encodeTime(date));
147  }
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61

◆ getPermissionFromRPTByResourceId()

UmaPermission org.xdi.oxauth.uma.service.UmaRptService.getPermissionFromRPTByResourceId ( UmaRPT  rpt,
String  resourceId 
)
inline
222  {
223  try {
224  if (Util.allNotBlank(resourceId)) {
225  for (UmaPermission permission : getRptPermissions(rpt)) {
226  if (resourceId.equals(permission.getResourceId())) {
227  return permission;
228  }
229  }
230  }
231  } catch (Exception e) {
232  log.error(e.getMessage(), e);
233  }
234  return null;
235  }
List< UmaPermission > getRptPermissions(UmaRPT p_rpt)
Definition: UmaRptService.java:177
Logger log
Definition: UmaRptService.java:58

◆ getRPTByCode()

UmaRPT org.xdi.oxauth.uma.service.UmaRptService.getRPTByCode ( String  rptCode)
inline
102  {
103  try {
104  final Filter filter = Filter.create(String.format("&(oxAuthTokenCode=%s)", rptCode));
105  final String baseDn = staticConfiguration.getBaseDn().getClients();
106  final List<UmaRPT> entries = ldapEntryManager.findEntries(baseDn, UmaRPT.class, filter);
107  if (entries != null && !entries.isEmpty()) {
108  return entries.get(0);
109  } else {
110  log.error("Failed to find RPT by code: " + rptCode);
111  }
112  } catch (Exception e) {
113  log.error(e.getMessage(), e);
114  }
115  return null;
116  }
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61
Logger log
Definition: UmaRptService.java:58
String getClients()
Definition: BaseDnConfiguration.java:93
StaticConfiguration staticConfiguration
Definition: UmaRptService.java:73
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ getRptPermissions()

List<UmaPermission> org.xdi.oxauth.uma.service.UmaRptService.getRptPermissions ( UmaRPT  p_rpt)
inline
177  {
178  final List<UmaPermission> result = new ArrayList<UmaPermission>();
179  try {
180  if (p_rpt != null && p_rpt.getPermissions() != null) {
181  final List<String> permissionDns = p_rpt.getPermissions();
182  for (String permissionDn : permissionDns) {
183  final UmaPermission permissionObject = ldapEntryManager.find(UmaPermission.class, permissionDn);
184  if (permissionObject != null) {
185  result.add(permissionObject);
186  }
187  }
188  }
189  } catch (Exception e) {
190  log.error(e.getMessage(), e);
191  }
192  return result;
193  }
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61
Logger log
Definition: UmaRptService.java:58

◆ persist()

void org.xdi.oxauth.uma.service.UmaRptService.persist ( UmaRPT  rpt)
inline
86  {
87  try {
88  Preconditions.checkNotNull(rpt.getClientId());
89 
90  Client client = clientService.getClient(rpt.getClientId());
91 
92  addBranchIfNeeded(client.getDn());
93  String id = UUID.randomUUID().toString();
94  rpt.setId(id);
95  rpt.setDn(getDn(client.getDn(), id));
96  ldapEntryManager.persist(rpt);
97  } catch (Exception e) {
98  log.error(e.getMessage(), e);
99  }
100  }
PersistenceEntryManager ldapEntryManager
Definition: UmaRptService.java:61
Logger log
Definition: UmaRptService.java:58
static String getDn(String clientDn, String uniqueIdentifier)
Definition: UmaRptService.java:78
ClientService clientService
Definition: UmaRptService.java:76
Set< Client > getClient(Collection< String > clientIds, boolean silent)
Definition: ClientService.java:123
void addBranchIfNeeded(String clientDn)
Definition: UmaRptService.java:244

◆ rptExpirationDate()

Date org.xdi.oxauth.uma.service.UmaRptService.rptExpirationDate ( )
inline
205  {
206  int lifeTime = appConfiguration.getUmaRptLifetime();
207  if (lifeTime <= 0) {
208  lifeTime = DEFAULT_RPT_LIFETIME;
209  }
210 
211  final Calendar calendar = Calendar.getInstance();
212  calendar.add(Calendar.SECOND, lifeTime);
213  return calendar.getTime();
214  }
AppConfiguration appConfiguration
Definition: UmaRptService.java:70
static final int DEFAULT_RPT_LIFETIME
Definition: UmaRptService.java:55
int getUmaRptLifetime()
Definition: AppConfiguration.java:800

メンバ詳解

◆ appConfiguration

AppConfiguration org.xdi.oxauth.uma.service.UmaRptService.appConfiguration
private

◆ authorizationGrantList

AuthorizationGrantList org.xdi.oxauth.uma.service.UmaRptService.authorizationGrantList
private

◆ clientService

ClientService org.xdi.oxauth.uma.service.UmaRptService.clientService
private

◆ DEFAULT_RPT_LIFETIME

final int org.xdi.oxauth.uma.service.UmaRptService.DEFAULT_RPT_LIFETIME = 3600
static

◆ ldapEntryManager

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

◆ log

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

◆ ORGUNIT_OF_RPT

final String org.xdi.oxauth.uma.service.UmaRptService.ORGUNIT_OF_RPT = "uma_rpt"
staticprivate

◆ staticConfiguration

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

◆ tokenService

TokenService org.xdi.oxauth.uma.service.UmaRptService.tokenService
private

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