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

公開メンバ関数

UmaPCT updateClaims (UmaPCT pct, Jwt idToken, String clientId, List< UmaPermission > permissions)
 
UmaPCT getByCode (String pctCode)
 
UmaPCT createPct (String clientId)
 
UmaPCT createPctAndPersist (String clientId)
 
int pctLifetime ()
 
void persist (UmaPCT pct)
 
void remove (UmaPCT umaPCT)
 
void remove (String pctCode)
 
void remove (List< UmaPCT > pctList)
 
void addBranch ()
 
String dn (String pctCode)
 
String branchBaseDn ()
 
void cleanup (final Date now)
 
void merge (UmaPCT pct)
 

静的公開変数類

static final int DEFAULT_PCT_LIFETIME = 2592000
 

非公開メンバ関数

void prepareBranch ()
 
Filter gethExpiredUmaPctFilter (Date date)
 

非公開変数類

Logger log
 
PersistenceEntryManager ldapEntryManager
 
StaticConfiguration staticConfiguration
 
AppConfiguration appConfiguration
 

詳解

著者
yuriyz on 05/31/2017.

関数詳解

◆ addBranch()

void org.xdi.oxauth.uma.service.UmaPctService.addBranch ( )
inline
161  {
162  SimpleBranch branch = new SimpleBranch();
163  branch.setOrganizationalUnitName("pct");
164  branch.setDn(branchBaseDn());
165 
166  ldapEntryManager.persist(branch);
167  }
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41
String branchBaseDn()
Definition: UmaPctService.java:176

◆ branchBaseDn()

String org.xdi.oxauth.uma.service.UmaPctService.branchBaseDn ( )
inline
176  {
177  final String umaBaseDn = staticConfiguration.getBaseDn().getUmaBase(); // "ou=uma,o=@!1111,o=gluu"
178  return String.format("ou=pct,%s", umaBaseDn);
179  }
String getUmaBase()
Definition: BaseDnConfiguration.java:53
StaticConfiguration staticConfiguration
Definition: UmaPctService.java:44
BaseDnConfiguration getBaseDn()
Definition: StaticConfiguration.java:32

◆ cleanup()

void org.xdi.oxauth.uma.service.UmaPctService.cleanup ( final Date  now)
inline
181  {
182  prepareBranch();
183 
184  BatchOperation<UmaPCT> batchService = new ProcessBatchOperation<UmaPCT>() {
185  @Override
186  public void performAction(List<UmaPCT> entries) {
187  for (UmaPCT p : entries) {
188  try {
189  remove(p);
190  } catch (Exception e) {
191  log.error("Failed to remove entry", e);
192  }
193  }
194  }
195 
196  };
197  ldapEntryManager.findEntries(branchBaseDn(), UmaPCT.class, gethExpiredUmaPctFilter(now), SearchScope.SUB, new String[] { "" }, batchService, 0, 0, CleanerTimer.BATCH_SIZE);
198  }
Filter gethExpiredUmaPctFilter(Date date)
Definition: UmaPctService.java:200
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41
void prepareBranch()
Definition: UmaPctService.java:155
String branchBaseDn()
Definition: UmaPctService.java:176
Logger log
Definition: UmaPctService.java:38

◆ createPct()

UmaPCT org.xdi.oxauth.uma.service.UmaPctService.createPct ( String  clientId)
inline
106  {
107  String code = UUID.randomUUID().toString() + "_" + INumGenerator.generate(8);
108 
109  UmaPCT pct = new UmaPCT(pctLifetime());
110  pct.setCode(code);
111  pct.setDn(dn(pct.getCode()));
112  pct.setClientId(clientId);
113  return pct;
114  }
int pctLifetime()
Definition: UmaPctService.java:122
String dn(String pctCode)
Definition: UmaPctService.java:169

◆ createPctAndPersist()

UmaPCT org.xdi.oxauth.uma.service.UmaPctService.createPctAndPersist ( String  clientId)
inline
116  {
117  UmaPCT pct = createPct(clientId);
118  persist(pct);
119  return pct;
120  }
void persist(UmaPCT pct)
Definition: UmaPctService.java:130
UmaPCT createPct(String clientId)
Definition: UmaPctService.java:106

◆ dn()

String org.xdi.oxauth.uma.service.UmaPctService.dn ( String  pctCode)
inline
169  {
170  if (StringUtils.isBlank(pctCode)) {
171  throw new IllegalArgumentException("PCT code is null or blank.");
172  }
173  return String.format("oxAuthTokenCode=%s,%s", pctCode, branchBaseDn());
174  }
String branchBaseDn()
Definition: UmaPctService.java:176

◆ getByCode()

UmaPCT org.xdi.oxauth.uma.service.UmaPctService.getByCode ( String  pctCode)
inline
91  {
92  try {
93  final Filter filter = Filter.create(String.format("&(oxAuthTokenCode=%s)", pctCode));
94  final List<UmaPCT> entries = ldapEntryManager.findEntries(branchBaseDn(), UmaPCT.class, filter);
95  if (entries != null && !entries.isEmpty()) {
96  return entries.get(0);
97  } else {
98  log.error("Failed to find PCT by code: " + pctCode);
99  }
100  } catch (Exception e) {
101  log.error(e.getMessage(), e);
102  }
103  return null;
104  }
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41
String branchBaseDn()
Definition: UmaPctService.java:176
Logger log
Definition: UmaPctService.java:38

◆ gethExpiredUmaPctFilter()

Filter org.xdi.oxauth.uma.service.UmaPctService.gethExpiredUmaPctFilter ( Date  date)
inlineprivate
200  {
201  return Filter.createLessOrEqualFilter("oxAuthExpiration", ldapEntryManager.encodeTime(date));
202  }
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41

◆ merge()

void org.xdi.oxauth.uma.service.UmaPctService.merge ( UmaPCT  pct)
inline
204  {
205  try {
206  ldapEntryManager.merge(pct);
207  } catch (Exception e) {
208  log.error("Failed to merge PCT, code: " + pct.getCode() + ". " + e.getMessage(), e);
209  }
210  }
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41
Logger log
Definition: UmaPctService.java:38

◆ pctLifetime()

int org.xdi.oxauth.uma.service.UmaPctService.pctLifetime ( )
inline
122  {
123  int lifeTime = appConfiguration.getUmaPctLifetime();
124  if (lifeTime <= 0) {
125  lifeTime = DEFAULT_PCT_LIFETIME;
126  }
127  return lifeTime;
128  }
static final int DEFAULT_PCT_LIFETIME
Definition: UmaPctService.java:35
int getUmaPctLifetime()
Definition: AppConfiguration.java:824
AppConfiguration appConfiguration
Definition: UmaPctService.java:47

◆ persist()

void org.xdi.oxauth.uma.service.UmaPctService.persist ( UmaPCT  pct)
inline
130  {
131  try {
132  prepareBranch();
133 
134  pct.setDn(dn(pct.getCode()));
135  ldapEntryManager.persist(pct);
136  } catch (Exception e) {
137  log.error("Failed to persist PCT, code: " + pct.getCode() + ". " + e.getMessage(), e);
138  }
139  }
String dn(String pctCode)
Definition: UmaPctService.java:169
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41
void prepareBranch()
Definition: UmaPctService.java:155
Logger log
Definition: UmaPctService.java:38

◆ prepareBranch()

void org.xdi.oxauth.uma.service.UmaPctService.prepareBranch ( )
inlineprivate
155  {
156  if (!ldapEntryManager.contains(SimpleBranch.class, branchBaseDn())) {
157  addBranch();
158  }
159  }
void addBranch()
Definition: UmaPctService.java:161
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41
String branchBaseDn()
Definition: UmaPctService.java:176

◆ remove() [1/3]

void org.xdi.oxauth.uma.service.UmaPctService.remove ( UmaPCT  umaPCT)
inline
141  {
142  ldapEntryManager.remove(umaPCT);
143  }
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41

◆ remove() [2/3]

void org.xdi.oxauth.uma.service.UmaPctService.remove ( String  pctCode)
inline
145  {
146  remove(getByCode(pctCode));
147  }
UmaPCT getByCode(String pctCode)
Definition: UmaPctService.java:91

◆ remove() [3/3]

void org.xdi.oxauth.uma.service.UmaPctService.remove ( List< UmaPCT pctList)
inline
149  {
150  for (UmaPCT pct : pctList) {
151  remove(pct);
152  }
153  }

◆ updateClaims()

UmaPCT org.xdi.oxauth.uma.service.UmaPctService.updateClaims ( UmaPCT  pct,
Jwt  idToken,
String  clientId,
List< UmaPermission permissions 
)
inline
49  {
50  try {
51  String ticketPctCode = permissions.get(0).getAttributes().get("pct");
52  UmaPCT ticketPct = StringUtils.isNotBlank(ticketPctCode) ? getByCode(ticketPctCode) : null;
53 
54  boolean hasPct = pct != null;
55 
56  if (!hasPct) {
57  if (ticketPct != null) {
58  pct = ticketPct;
59  } else {
60  pct = createPctAndPersist(clientId);
61  }
62  }
63 
64  // copy claims from pctTicket into normal pct
65  JwtClaims pctClaims = pct.getClaims();
66  if (ticketPct != null && hasPct) {
67  JwtClaims ticketClaims = ticketPct.getClaims();
68  for (String key : ticketClaims.keys()) {
69  pctClaims.setClaimObject(key, ticketClaims.getClaim(key), false);
70  }
71  pct = ticketPct;
72  }
73 
74  if (idToken != null && idToken.getClaims() != null) {
75  for (String key : idToken.getClaims().keys()) {
76  pctClaims.setClaimObject(key, idToken.getClaims().getClaim(key), false);
77  }
78  }
79 
80  pct.setClaims(pctClaims);
81  log.trace("PCT code: " + pct.getCode() + ", claims: " + pct.getClaimValuesAsJson());
82 
83  return ldapEntryManager.merge(pct);
84  } catch (Exception e) {
85  log.error("Failed to update PCT claims. " + e.getMessage(), e);
86  }
87 
88  return pct;
89  }
UmaPCT createPctAndPersist(String clientId)
Definition: UmaPctService.java:116
PersistenceEntryManager ldapEntryManager
Definition: UmaPctService.java:41
Logger log
Definition: UmaPctService.java:38
UmaPCT getByCode(String pctCode)
Definition: UmaPctService.java:91

メンバ詳解

◆ appConfiguration

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

◆ DEFAULT_PCT_LIFETIME

final int org.xdi.oxauth.uma.service.UmaPctService.DEFAULT_PCT_LIFETIME = 2592000
static

◆ ldapEntryManager

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

◆ log

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

◆ staticConfiguration

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

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