mitreid-connect
公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.mitre.oauth2.service.impl.DefaultDeviceCodeService クラス
org.mitre.oauth2.service.impl.DefaultDeviceCodeService の継承関係図
Inheritance graph
org.mitre.oauth2.service.impl.DefaultDeviceCodeService 連携図
Collaboration graph

公開メンバ関数

DeviceCode createNewDeviceCode (Set< String > requestedScopes, ClientDetailsEntity client, Map< String, String > parameters)
 
DeviceCode lookUpByUserCode (String userCode)
 
DeviceCode approveDeviceCode (DeviceCode dc, OAuth2Authentication auth)
 
DeviceCode findDeviceCode (String deviceCode, ClientDetails client)
 
void clearExpiredDeviceCodes ()
 
void clearDeviceCode (String deviceCode, ClientDetails client)
 

非公開変数類

DeviceCodeRepository repository
 
RandomValueStringGenerator randomGenerator = new RandomValueStringGenerator()
 

詳解

著者
jricher

関数詳解

◆ approveDeviceCode()

DeviceCode org.mitre.oauth2.service.impl.DefaultDeviceCodeService.approveDeviceCode ( DeviceCode  dc,
OAuth2Authentication  auth 
)
inline

org.mitre.oauth2.service.DeviceCodeServiceを実装しています。

86  {
87  DeviceCode found = repository.getById(dc.getId());
88 
89  found.setApproved(true);
90 
91  AuthenticationHolderEntity authHolder = new AuthenticationHolderEntity();
92  authHolder.setAuthentication(auth);
93 
94  found.setAuthenticationHolder(authHolder);
95 
96  return repository.save(found);
97  }
DeviceCodeRepository repository
Definition: DefaultDeviceCodeService.java:46
void setApproved(boolean approved)
Definition: DeviceCode.java:212

◆ clearDeviceCode()

void org.mitre.oauth2.service.impl.DefaultDeviceCodeService.clearDeviceCode ( String  deviceCode,
ClientDetails  client 
)
inline

org.mitre.oauth2.service.DeviceCodeServiceを実装しています。

147  {
148  DeviceCode found = findDeviceCode(deviceCode, client);
149 
150  if (found != null) {
151  // make sure it's not used twice
152  repository.remove(found);
153  }
154 
155  }
DeviceCodeRepository repository
Definition: DefaultDeviceCodeService.java:46
DeviceCode findDeviceCode(String deviceCode, ClientDetails client)
Definition: DefaultDeviceCodeService.java:103

◆ clearExpiredDeviceCodes()

void org.mitre.oauth2.service.impl.DefaultDeviceCodeService.clearExpiredDeviceCodes ( )
inline

org.mitre.oauth2.service.DeviceCodeServiceを実装しています。

128  {
129 
130  new AbstractPageOperationTemplate<DeviceCode>("clearExpiredDeviceCodes"){
131  @Override
132  public Collection<DeviceCode> fetchPage() {
133  return repository.getExpiredCodes();
134  }
135 
136  @Override
137  protected void doOperation(DeviceCode item) {
138  repository.remove(item);
139  }
140  }.execute();
141  }
DeviceCodeRepository repository
Definition: DefaultDeviceCodeService.java:46

◆ createNewDeviceCode()

DeviceCode org.mitre.oauth2.service.impl.DefaultDeviceCodeService.createNewDeviceCode ( Set< String >  requestedScopes,
ClientDetailsEntity  client,
Map< String, String >  parameters 
)
inline

org.mitre.oauth2.service.DeviceCodeServiceを実装しています。

54  {
55 
56  // create a device code, should be big and random
57  String deviceCode = UUID.randomUUID().toString();
58 
59  // create a user code, should be random but small and typable, and always uppercase (lookup is case insensitive)
60  String userCode = randomGenerator.generate().toUpperCase();
61 
62  DeviceCode dc = new DeviceCode(deviceCode, userCode, requestedScopes, client.getClientId(), parameters);
63 
64  if (client.getDeviceCodeValiditySeconds() != null) {
65  dc.setExpiration(new Date(System.currentTimeMillis() + client.getDeviceCodeValiditySeconds() * 1000L));
66  }
67 
68  dc.setApproved(false);
69 
70  return repository.save(dc);
71  }
DeviceCodeRepository repository
Definition: DefaultDeviceCodeService.java:46
RandomValueStringGenerator randomGenerator
Definition: DefaultDeviceCodeService.java:48

◆ findDeviceCode()

DeviceCode org.mitre.oauth2.service.impl.DefaultDeviceCodeService.findDeviceCode ( String  deviceCode,
ClientDetails  client 
)
inline

org.mitre.oauth2.service.DeviceCodeServiceを実装しています。

103  {
104  DeviceCode found = repository.getByDeviceCode(deviceCode);
105 
106  if (found != null) {
107  if (found.getClientId().equals(client.getClientId())) {
108  // make sure the client matches, if so, we're good
109  return found;
110  } else {
111  // if the clients don't match, pretend the code wasn't found
112  return null;
113  }
114  } else {
115  // didn't find the code, return null
116  return null;
117  }
118 
119  }
DeviceCodeRepository repository
Definition: DefaultDeviceCodeService.java:46

◆ lookUpByUserCode()

DeviceCode org.mitre.oauth2.service.impl.DefaultDeviceCodeService.lookUpByUserCode ( String  userCode)
inline

org.mitre.oauth2.service.DeviceCodeServiceを実装しています。

77  {
78  // always up-case the code for lookup
79  return repository.getByUserCode(userCode.toUpperCase());
80  }
DeviceCodeRepository repository
Definition: DefaultDeviceCodeService.java:46

メンバ詳解

◆ randomGenerator

RandomValueStringGenerator org.mitre.oauth2.service.impl.DefaultDeviceCodeService.randomGenerator = new RandomValueStringGenerator()
private

◆ repository

DeviceCodeRepository org.mitre.oauth2.service.impl.DefaultDeviceCodeService.repository
private

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