gluu
公開メンバ関数 | 限定公開メンバ関数 | 関数 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.xdi.oxd.server.op.RegisterSiteOperation クラス
org.xdi.oxd.server.op.RegisterSiteOperation の継承関係図
Inheritance graph
org.xdi.oxd.server.op.RegisterSiteOperation 連携図
Collaboration graph

公開メンバ関数

RegisterSiteResponse execute_ (RegisterSiteParams params)
 
CommandResponse execute (RegisterSiteParams params)
 
Class< T > getParameterClass ()
 
getParams ()
 
Injector getInjector ()
 
HttpService getHttpService ()
 
IntrospectionService getIntrospectionService ()
 
PublicOpKeyService getKeyService ()
 
StateService getStateService ()
 
LicenseService getLicenseService ()
 
DiscoveryService getDiscoveryService ()
 
UmaTokenService getUmaTokenService ()
 
RpService getRpService ()
 
ConfigurationService getConfigurationService ()
 
OxAuthCryptoProvider getCryptoProvider () throws Exception
 
Rp getRp ()
 
ValidationService getValidationService ()
 
Command getCommand ()
 
CommandResponse okResponse (IOpResponse p_data)
 

限定公開メンバ関数

 RegisterSiteOperation (Command command, final Injector injector)
 

関数

public< T > T getInstance (Class< T > type)
 

非公開メンバ関数

void validateAccessToken (String oxdId, RegisterSiteParams params)
 
void validateParametersAndFallbackIfNeeded (RegisterSiteParams params)
 
void persistRp (String siteId, RegisterSiteParams params)
 
boolean hasClient (RegisterSiteParams params)
 
RegisterResponse registerClient (RegisterSiteParams params)
 
RegisterRequest createRegisterClientRequest (RegisterSiteParams params)
 
Rp createRp (String siteId, RegisterSiteParams params)
 

非公開変数類

Rp rp
 

静的非公開変数類

static final Logger LOG = LoggerFactory.getLogger(RegisterSiteOperation.class)
 

詳解

著者
Yuriy Zabrovarnyy
バージョン
0.9, 24/09/2015

構築子と解体子

◆ RegisterSiteOperation()

org.xdi.oxd.server.op.RegisterSiteOperation.RegisterSiteOperation ( Command  command,
final Injector  injector 
)
inlineprotected

Base constructor

引数
commandcommand
54  {
55  super(command, injector, RegisterSiteParams.class);
56  }
final Command command
Definition: BaseOperation.java:37
final Injector injector
Definition: BaseOperation.java:38

関数詳解

◆ createRegisterClientRequest()

RegisterRequest org.xdi.oxd.server.op.RegisterSiteOperation.createRegisterClientRequest ( RegisterSiteParams  params)
inlineprivate
285  {
286  List<ResponseType> responseTypes = Lists.newArrayList();
287  for (String type : params.getResponseTypes()) {
288  responseTypes.add(ResponseType.fromString(type));
289  }
290 
291  String clientName = "oxD client for site: " + rp.getOxdId();
292  if (!Strings.isNullOrEmpty(params.getClientName())) {
293  clientName = params.getClientName();
294  rp.setClientName(clientName);
295  }
296 
297  final RegisterRequest request = new RegisterRequest(ApplicationType.WEB, clientName, params.getRedirectUris());
298  request.setResponseTypes(responseTypes);
299  request.setJwksUri(params.getClientJwksUri());
300  request.setClaimsRedirectUris(params.getClaimsRedirectUri() != null ? params.getClaimsRedirectUri() : new ArrayList<String>());
301  request.setPostLogoutRedirectUris(params.getPost_logout_redirect_uri() != null ? Lists.newArrayList(params.getPost_logout_redirect_uri()) : Lists.<String>newArrayList());
302  request.setContacts(params.getContacts());
303  request.setScopes(params.getScope());
304  request.setDefaultAcrValues(params.getAcrValues());
305 
306  if (params.getTrustedClient() != null && params.getTrustedClient()) {
307  request.addCustomAttribute("oxAuthTrustedClient", "true");
308  }
309 
310  List<GrantType> grantTypes = Lists.newArrayList();
311  for (String grantType : params.getGrantType()) {
312  grantTypes.add(GrantType.fromString(grantType));
313  }
314  request.setGrantTypes(grantTypes);
315 
316  if (params.getClientFrontchannelLogoutUri() != null) {
317  rp.setFrontChannelLogoutUri(params.getClientFrontchannelLogoutUri());
318  request.setFrontChannelLogoutUris(Lists.newArrayList(params.getClientFrontchannelLogoutUri()));
319  } else {
320  if (rp.getFrontChannelLogoutUri() != null) {
321  request.setFrontChannelLogoutUris(rp.getFrontChannelLogoutUri());
322  }
323  }
324 
325  if (StringUtils.isNotBlank(params.getClientTokenEndpointAuthMethod())) {
326  final AuthenticationMethod authenticationMethod = AuthenticationMethod.fromString(params.getClientTokenEndpointAuthMethod());
327  if (authenticationMethod != null) {
328  request.setTokenEndpointAuthMethod(authenticationMethod);
329  }
330  }
331 
332  if (params.getClientRequestUris() != null && !params.getClientRequestUris().isEmpty()) {
333  request.setRequestUris(params.getClientRequestUris());
334  }
335 
336  if (!Strings.isNullOrEmpty(params.getClientSectorIdentifierUri())) {
337  request.setSectorIdentifierUri(params.getClientSectorIdentifierUri());
338  }
339 
340  rp.setResponseTypes(params.getResponseTypes());
341  rp.setPostLogoutRedirectUri(params.getPost_logout_redirect_uri());
342  rp.setContacts(params.getContacts());
343  rp.setRedirectUris(Lists.newArrayList(params.getRedirectUris()));
344  return request;
345  }
String getOxdId()
Definition: Rp.java:381
List< String > getFrontChannelLogoutUri()
Definition: Rp.java:181
void setResponseTypes(List< String > responseTypes)
Definition: Rp.java:432
void setPostLogoutRedirectUri(String postLogoutRedirectUri)
Definition: Rp.java:273
Rp rp
Definition: RegisterSiteOperation.java:47
void setContacts(List< String > contacts)
Definition: Rp.java:337
void setRedirectUris(List< String > redirectUris)
Definition: Rp.java:424
void setFrontChannelLogoutUri(List< String > frontChannelLogoutUri)
Definition: Rp.java:185
void setClientName(String clientName)
Definition: Rp.java:281
final T params
Definition: BaseOperation.java:40

◆ createRp()

Rp org.xdi.oxd.server.op.RegisterSiteOperation.createRp ( String  siteId,
RegisterSiteParams  params 
)
inlineprivate
347  {
348 
349  Preconditions.checkState(!Strings.isNullOrEmpty(params.getOpHost()), "op_host contains blank value. Please specify valid OP public address.");
350 
351  final Rp rp = new Rp(getConfigurationService().defaultRp());
352  rp.setOxdId(siteId);
353  rp.setOpHost(params.getOpHost());
354  rp.setOpDiscoveryPath(params.getOpDiscoveryPath());
355  rp.setAuthorizationRedirectUri(params.getAuthorizationRedirectUri());
356  rp.setRedirectUris(params.getRedirectUris());
357  rp.setClaimsRedirectUri(params.getClaimsRedirectUri());
358  rp.setApplicationType("web");
359  rp.setOxdRpProgrammingLanguage(params.getOxdRpProgrammingLanguage());
360  rp.setUmaProtectedResources(new ArrayList<UmaResource>());
361  rp.setFrontChannelLogoutUri(params.getClientFrontchannelLogoutUri());
362 
363  if (!Strings.isNullOrEmpty(params.getPost_logout_redirect_uri())) {
364  rp.setPostLogoutRedirectUri(params.getPost_logout_redirect_uri());
365  }
366 
367  if (params.getAcrValues() != null && !params.getAcrValues().isEmpty()) {
368  rp.setAcrValues(params.getAcrValues());
369  }
370 
371  if (params.getClaimsLocales() != null && !params.getClaimsLocales().isEmpty()) {
372  rp.setClaimsLocales(params.getClaimsLocales());
373  }
374 
375  if (!Strings.isNullOrEmpty(params.getClientId()) && !Strings.isNullOrEmpty(params.getClientSecret())) {
376  rp.setClientId(params.getClientId());
377  rp.setClientSecret(params.getClientSecret());
378  rp.setClientRegistrationAccessToken(params.getClientRegistrationAccessToken());
379  rp.setClientRegistrationClientUri(params.getClientRegistrationClientUri());
380  }
381 
382  if (params.getContacts() != null && !params.getContacts().isEmpty()) {
383  rp.setContacts(params.getContacts());
384  }
385 
386  rp.setGrantType(params.getGrantType());
387  rp.setResponseTypes(params.getResponseTypes());
388 
389  if (params.getScope() != null && !params.getScope().isEmpty()) {
390  rp.setScope(params.getScope());
391  }
392 
393  if (params.getUiLocales() != null && !params.getUiLocales().isEmpty()) {
394  rp.setUiLocales(params.getUiLocales());
395  }
396 
397  return rp;
398  }
ConfigurationService getConfigurationService()
Definition: BaseOperation.java:108
Rp rp
Definition: RegisterSiteOperation.java:47
final T params
Definition: BaseOperation.java:40

◆ execute()

CommandResponse org.xdi.oxd.server.op.RegisterSiteOperation.execute ( RegisterSiteParams  params)
inline
97  {
98  try {
99  return okResponse(execute_(params));
100  } catch (ErrorResponseException e) {
101  throw e;
102  } catch (Exception e) {
103  LOG.error(e.getMessage(), e);
104  }
105  return CommandResponse.INTERNAL_ERROR_RESPONSE;
106  }
static final Logger LOG
Definition: RegisterSiteOperation.java:45
CommandResponse okResponse(IOpResponse p_data)
Definition: BaseOperation.java:145
RegisterSiteResponse execute_(RegisterSiteParams params)
Definition: RegisterSiteOperation.java:58
final T params
Definition: BaseOperation.java:40

◆ execute_()

RegisterSiteResponse org.xdi.oxd.server.op.RegisterSiteOperation.execute_ ( RegisterSiteParams  params)
inline
58  {
60 
61  String oxdId = UUID.randomUUID().toString();
62 
63  LOG.info("Creating RP ...");
64  persistRp(oxdId, params);
66 
67  LOG.info("RP created: " + rp);
68 
69  RegisterSiteResponse opResponse = new RegisterSiteResponse();
70  opResponse.setOxdId(oxdId);
71  opResponse.setOpHost(params.getOpHost());
72  return opResponse;
73  }
static final Logger LOG
Definition: RegisterSiteOperation.java:45
void persistRp(String siteId, RegisterSiteParams params)
Definition: RegisterSiteOperation.java:230
Rp rp
Definition: RegisterSiteOperation.java:47
void validateParametersAndFallbackIfNeeded(RegisterSiteParams params)
Definition: RegisterSiteOperation.java:108
final T params
Definition: BaseOperation.java:40
void validateAccessToken(String oxdId, RegisterSiteParams params)
Definition: RegisterSiteOperation.java:75

◆ getCommand()

Command org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getCommand ( )
inlineinherited

Returns command

戻り値
command
135  {
136  return command;
137  }
final Command command
Definition: BaseOperation.java:37

◆ getConfigurationService()

ConfigurationService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getConfigurationService ( )
inlineinherited
108  {
109  return getInstance(ConfigurationService.class);
110  }
Definition: ConfigurationService.java:17
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getCryptoProvider()

OxAuthCryptoProvider org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getCryptoProvider ( ) throws Exception
inlineinherited
112  {
114  return new OxAuthCryptoProvider(conf.getCryptProviderKeyStorePath(), conf.getCryptProviderKeyStorePassword(), conf.getCryptProviderDnName());
115  }
Definition: OxdServerConfiguration.java:9
ConfigurationService getConfigurationService()
Definition: BaseOperation.java:108
String getCryptProviderDnName()
Definition: OxdServerConfiguration.java:94
String getCryptProviderKeyStorePassword()
Definition: OxdServerConfiguration.java:86
String getCryptProviderKeyStorePath()
Definition: OxdServerConfiguration.java:78
OxdServerConfiguration get()
Definition: ConfigurationService.java:54

◆ getDiscoveryService()

DiscoveryService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getDiscoveryService ( )
inlineinherited
96  {
97  return getInstance(DiscoveryService.class);
98  }
Definition: DiscoveryService.java:24
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getHttpService()

HttpService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getHttpService ( )
inlineinherited
72  {
73  return getInstance(HttpService.class);
74  }
Definition: HttpService.java:23
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getInjector()

Injector org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getInjector ( )
inlineinherited

Gets injector.

戻り値
injector
68  {
69  return injector;
70  }
final Injector injector
Definition: BaseOperation.java:38

◆ getInstance()

public<T> T org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getInstance ( Class< T >  type)
inlinepackageinherited
84  {
85  return injector.getInstance(type);
86  }
final Injector injector
Definition: BaseOperation.java:38

◆ getIntrospectionService()

IntrospectionService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getIntrospectionService ( )
inlineinherited
76  {
77  return getInstance(IntrospectionService.class);
78  }
Definition: IntrospectionService.java:22
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getKeyService()

PublicOpKeyService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getKeyService ( )
inlineinherited
80  {
81  return getInstance(PublicOpKeyService.class);
82  }
Definition: PublicOpKeyService.java:22
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getLicenseService()

LicenseService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getLicenseService ( )
inlineinherited
92  {
93  return getInstance(LicenseService.class);
94  }
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getParameterClass()

Class<T> org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getParameterClass ( )
inlineinherited
55  {
56  return parameterClass;
57  }
final Class< T > parameterClass
Definition: BaseOperation.java:39

◆ getParams()

T org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getParams ( )
inlineinherited
59  {
60  return params;
61  }
final T params
Definition: BaseOperation.java:40

◆ getRp()

Rp org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getRp ( )
inlineinherited
117  {
118  if (params instanceof HasOxdIdParams) {
119  getValidationService().validate((HasOxdIdParams) params);
120  HasOxdIdParams hasOxdId = (HasOxdIdParams) params;
121  return getRpService().getRp(hasOxdId.getOxdId());
122  }
124  }
Definition: ErrorResponseException.java:8
ValidationService getValidationService()
Definition: BaseOperation.java:126
Pair< Rp, Boolean > validate(IParams params)
Definition: ValidationService.java:41
RpService getRpService()
Definition: BaseOperation.java:104
Definition: ErrorResponseCode.java:18
Rp getRp(String oxdId)
Definition: RpService.java:55
final T params
Definition: BaseOperation.java:40
BAD_REQUEST_NO_OXD_ID
Definition: ErrorResponseCode.java:22

◆ getRpService()

RpService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getRpService ( )
inlineinherited
104  {
105  return getInstance(RpService.class);
106  }
Definition: RpService.java:23
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getStateService()

StateService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getStateService ( )
inlineinherited
88  {
89  return getInstance(StateService.class);
90  }
Definition: StateService.java:19
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getUmaTokenService()

UmaTokenService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getUmaTokenService ( )
inlineinherited
100  {
101  return getInstance(UmaTokenService.class);
102  }
Definition: UmaTokenService.java:42
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ getValidationService()

ValidationService org.xdi.oxd.server.op.BaseOperation< T extends IParams >.getValidationService ( )
inlineinherited
126  {
127  return getInstance(ValidationService.class);
128  }
Definition: ValidationService.java:19
public< T > T getInstance(Class< T > type)
Definition: BaseOperation.java:84

◆ hasClient()

boolean org.xdi.oxd.server.op.RegisterSiteOperation.hasClient ( RegisterSiteParams  params)
inlineprivate
252  {
253  return !Strings.isNullOrEmpty(params.getClientId()) && !Strings.isNullOrEmpty(params.getClientSecret());
254  }
final T params
Definition: BaseOperation.java:40

◆ okResponse()

CommandResponse org.xdi.oxd.server.op.BaseOperation< T extends IParams >.okResponse ( IOpResponse  p_data)
inlineinherited

Ok response for operation

引数
p_dataresponse
戻り値
ok response with data
145  {
146  if (p_data == null) {
147  return CommandResponse.createInternalError();
148  }
149  return CommandResponse.ok().setData(new POJONode(p_data));
150  }

◆ persistRp()

void org.xdi.oxd.server.op.RegisterSiteOperation.persistRp ( String  siteId,
RegisterSiteParams  params 
)
inlineprivate
230  {
231 
232  try {
233  rp = createRp(siteId, params);
234 
235  if (!hasClient(params)) {
236  final RegisterResponse registerResponse = registerClient(params);
237  rp.setClientId(registerResponse.getClientId());
238  rp.setClientSecret(registerResponse.getClientSecret());
239  rp.setClientRegistrationAccessToken(registerResponse.getRegistrationAccessToken());
240  rp.setClientRegistrationClientUri(registerResponse.getRegistrationClientUri());
241  rp.setClientIdIssuedAt(registerResponse.getClientIdIssuedAt());
242  rp.setClientSecretExpiresAt(registerResponse.getClientSecretExpiresAt());
243  }
244 
246  } catch (IOException e) {
247  LOG.error("Failed to persist site configuration, params: " + params, e);
248  throw new RuntimeException(e);
249  }
250  }
static final Logger LOG
Definition: RegisterSiteOperation.java:45
void setClientSecretExpiresAt(Date clientSecretExpiresAt)
Definition: Rp.java:313
void setClientRegistrationAccessToken(String clientRegistrationAccessToken)
Definition: Rp.java:297
Rp rp
Definition: RegisterSiteOperation.java:47
void setClientId(String clientId)
Definition: Rp.java:361
void setClientSecret(String clientSecret)
Definition: Rp.java:369
void setClientIdIssuedAt(Date clientIdIssuedAt)
Definition: Rp.java:289
RpService getRpService()
Definition: BaseOperation.java:104
Rp createRp(String siteId, RegisterSiteParams params)
Definition: RegisterSiteOperation.java:347
RegisterResponse registerClient(RegisterSiteParams params)
Definition: RegisterSiteOperation.java:256
boolean hasClient(RegisterSiteParams params)
Definition: RegisterSiteOperation.java:252
void create(Rp rp)
Definition: RpService.java:134
final T params
Definition: BaseOperation.java:40
void setClientRegistrationClientUri(String clientRegistrationClientUri)
Definition: Rp.java:305

◆ registerClient()

RegisterResponse org.xdi.oxd.server.op.RegisterSiteOperation.registerClient ( RegisterSiteParams  params)
inlineprivate
256  {
257  final String registrationEndpoint = getDiscoveryService().getConnectDiscoveryResponse(params.getOpHost(), params.getOpDiscoveryPath()).getRegistrationEndpoint();
258  if (Strings.isNullOrEmpty(registrationEndpoint)) {
259  LOG.error("This OP (" + params.getOpHost() + ") does not provide registration_endpoint. It means that oxd is not able dynamically register client. " +
260  "Therefore it is required to obtain/register client manually on OP site and provide client_id and client_secret to oxd register_site command.");
261  throw new ErrorResponseException(ErrorResponseCode.NO_UMA_RESOURCES_TO_PROTECT);
262  }
263 
264  final RegisterClient registerClient = new RegisterClient(registrationEndpoint);
265  registerClient.setRequest(createRegisterClientRequest(params));
266  registerClient.setExecutor(getHttpService().getClientExecutor());
267  final RegisterResponse response = registerClient.exec();
268  if (response != null) {
269  if (!Strings.isNullOrEmpty(response.getClientId()) && !Strings.isNullOrEmpty(response.getClientSecret())) {
270  LOG.trace("Registered client for site - client_id: " + response.getClientId() + ", claims: " + response.getClaims() + ", registration_client_uri:" + response.getRegistrationClientUri());
271  return response;
272  } else {
273  LOG.error("ClientId: " + response.getClientId() + ", clientSecret: " + response.getClientSecret());
274  }
275  } else {
276  LOG.error("RegisterClient response is null.");
277  }
278  if (response != null && !Strings.isNullOrEmpty(response.getErrorDescription())) {
279  LOG.error(response.getErrorDescription());
280  }
281 
282  throw new RuntimeException("Failed to register client for site. Details: " + (response != null ? response.getEntity() : "response is null"));
283  }
static final Logger LOG
Definition: RegisterSiteOperation.java:45
HttpService getHttpService()
Definition: BaseOperation.java:72
DiscoveryService getDiscoveryService()
Definition: BaseOperation.java:96
RegisterResponse registerClient(RegisterSiteParams params)
Definition: RegisterSiteOperation.java:256
RegisterRequest createRegisterClientRequest(RegisterSiteParams params)
Definition: RegisterSiteOperation.java:285
final T params
Definition: BaseOperation.java:40

◆ validateAccessToken()

void org.xdi.oxd.server.op.RegisterSiteOperation.validateAccessToken ( String  oxdId,
RegisterSiteParams  params 
)
inlineprivate
75  {
76  final OxdServerConfiguration conf = getConfigurationService().getConfiguration();
77  if (conf.getProtectCommandsWithAccessToken() != null && !conf.getProtectCommandsWithAccessToken()) {
78  if (StringUtils.isBlank(params.getProtectionAccessToken())) {
79  return; // skip validation since protectCommandsWithAccessToken=false
80  } // otherwise if token is not blank then let it validate it
81  }
82  if (params instanceof SetupClientParams) {
83  return;
84  }
85 
86  final IntrospectionResponse response = getValidationService().introspect(params.getProtectionAccessToken(), oxdId);
87 
88  Rp setupRp = getRpService().getRpByClientId(response.getClientId());
89  LOG.trace("introspection: " + response + ", setupRp: " + rp);
90 
91  rp.setSetupClientId(response.getClientId());
92  rp.setSetupOxdId(setupRp != null ? setupRp.getOxdId() : oxdId);
94  }
static final Logger LOG
Definition: RegisterSiteOperation.java:45
Rp getRpByClientId(String clientId)
Definition: RpService.java:84
IntrospectionResponse introspect(String accessToken, String oxdId)
Definition: ValidationService.java:131
ConfigurationService getConfigurationService()
Definition: BaseOperation.java:108
void updateSilently(Rp rp)
Definition: RpService.java:126
Rp rp
Definition: RegisterSiteOperation.java:47
void setSetupOxdId(String setupOxdId)
Definition: Rp.java:547
ValidationService getValidationService()
Definition: BaseOperation.java:126
RpService getRpService()
Definition: BaseOperation.java:104
final T params
Definition: BaseOperation.java:40
void setSetupClientId(String setupClientId)
Definition: Rp.java:555
OxdServerConfiguration getConfiguration()
Definition: ConfigurationService.java:49

◆ validateParametersAndFallbackIfNeeded()

void org.xdi.oxd.server.op.RegisterSiteOperation.validateParametersAndFallbackIfNeeded ( RegisterSiteParams  params)
inlineprivate
108  {
109  Rp fallback = getConfigurationService().defaultRp();
110 
111  // op_host
112  if (Strings.isNullOrEmpty(params.getOpHost())) {
113  LOG.warn("'op_host' is not set for parameter: " + params + ". Look up at configuration file for fallback of 'op_host'");
114  String fallbackOpHost = fallback.getOpHost();
115  if (Strings.isNullOrEmpty(fallbackOpHost)) {
116  throw new ErrorResponseException(ErrorResponseCode.INVALID_OP_HOST);
117  }
118  LOG.warn("Fallback to op_host: " + fallbackOpHost + ", from configuration file.");
119  params.setOpHost(fallbackOpHost);
120  }
121 
122  // grant_type
123  List<String> grantTypes = Lists.newArrayList();
124 
125  if (params.getGrantType() != null && !params.getGrantType().isEmpty()) {
126  grantTypes.addAll(params.getGrantType());
127  }
128 
129  if (grantTypes.isEmpty() && fallback.getGrantType() != null && !fallback.getGrantType().isEmpty()) {
130  grantTypes.addAll(fallback.getGrantType());
131  }
132 
133  if (grantTypes.isEmpty()) {
134  grantTypes.add(GrantType.AUTHORIZATION_CODE.getValue());
135  }
136 
137  params.setGrantType(grantTypes);
138 
139  // authorization_redirect_uri
140  if (Strings.isNullOrEmpty(params.getAuthorizationRedirectUri())) {
141  params.setAuthorizationRedirectUri(fallback.getAuthorizationRedirectUri());
142  }
143  if (!Utils.isValidUrl(params.getAuthorizationRedirectUri())) {
144  throw new ErrorResponseException(ErrorResponseCode.INVALID_AUTHORIZATION_REDIRECT_URI);
145  }
146 
147  //post_logout_redirect_uri
148  if (Strings.isNullOrEmpty(params.getPost_logout_redirect_uri()) && !Strings.isNullOrEmpty(fallback.getPostLogoutRedirectUri())) {
149  params.setPost_logout_redirect_uri(fallback.getPostLogoutRedirectUri());
150  }
151 
152  // response_type
153  List<String> responseTypes = Lists.newArrayList();
154  if (params.getResponseTypes() != null && !params.getResponseTypes().isEmpty()) {
155  responseTypes.addAll(params.getResponseTypes());
156  }
157  if (responseTypes.isEmpty() && fallback.getResponseTypes() != null && !fallback.getResponseTypes().isEmpty()) {
158  responseTypes.addAll(fallback.getResponseTypes());
159  }
160  if (responseTypes.isEmpty()) {
161  responseTypes.add("code");
162  }
163  params.setResponseTypes(responseTypes);
164 
165  // redirect_uris
166  Set<String> redirectUris = Sets.newHashSet();
167  redirectUris.add(params.getAuthorizationRedirectUri());
168  if (params.getRedirectUris() != null && !params.getRedirectUris().isEmpty()) {
169  redirectUris.addAll(params.getRedirectUris());
170  if (!Strings.isNullOrEmpty(params.getPost_logout_redirect_uri())) {
171  redirectUris.add(params.getPost_logout_redirect_uri());
172  }
173  }
175  if (autoRegister != null && autoRegister && !redirectUris.isEmpty()) {
176  String first = redirectUris.iterator().next();
177  if (first.contains(params.getOpHost())) {
178  final UmaMetadata discovery = getDiscoveryService().getUmaDiscovery(params.getOpHost(), params.getOpDiscoveryPath());
179  String autoRedirectUri = discovery.getClaimsInteractionEndpoint() + "?authentication=true";
180 
181  LOG.trace("Register claims interaction endpoint as redirect_uri: " + autoRedirectUri);
182  redirectUris.add(autoRedirectUri);
183  } else {
184  LOG.trace("Skip auto registration of claims interaction endpoint as redirect_uri because OP host for different uri's is different which will not pass AS redirect_uri's validation (same host must be present).");
185  }
186  }
187  params.setRedirectUris(Lists.newArrayList(redirectUris));
188 
189  // claims_redirect_uri
190  Set<String> claimsRedirectUris = Sets.newHashSet();
191  if (params.getClaimsRedirectUri() != null && !params.getClaimsRedirectUri().isEmpty()) {
192  claimsRedirectUris.addAll(params.getClaimsRedirectUri());
193  }
194  params.setClaimsRedirectUri(Lists.newArrayList(claimsRedirectUris));
195 
196  // scope
197  if (params.getScope() == null || params.getScope().isEmpty()) {
198  params.setScope(fallback.getScope());
199  }
200  if (params.getScope() == null || params.getScope().isEmpty()) {
201  throw new ErrorResponseException(ErrorResponseCode.INVALID_SCOPE);
202  }
203 
204  // acr_values
205  if (params.getAcrValues() == null || params.getAcrValues().isEmpty()) {
206  params.setAcrValues(fallback.getAcrValues());
207  }
208 
209  // client_jwks_uri
210  if (Strings.isNullOrEmpty(params.getClientJwksUri()) && !Strings.isNullOrEmpty(fallback.getClientJwksUri())) {
211  params.setClientJwksUri(fallback.getClientJwksUri());
212  }
213 
214  // contacts
215  if (params.getContacts() == null || params.getContacts().isEmpty()) {
216  params.setContacts(fallback.getContacts());
217  }
218 
219  // ui_locales
220  if (params.getUiLocales() == null || params.getUiLocales().isEmpty()) {
221  params.setUiLocales(fallback.getUiLocales());
222  }
223 
224  // claims_locales
225  if (params.getClaimsLocales() == null || params.getClaimsLocales().isEmpty()) {
226  params.setClaimsLocales(fallback.getClaimsLocales());
227  }
228  }
static final Logger LOG
Definition: RegisterSiteOperation.java:45
ConfigurationService getConfigurationService()
Definition: BaseOperation.java:108
DiscoveryService getDiscoveryService()
Definition: BaseOperation.java:96
Rp defaultRp()
Definition: ConfigurationService.java:40
final T params
Definition: BaseOperation.java:40
Boolean getUma2AuthRegisterClaimsGatheringEndpointAsRedirectUriOfClient()
Definition: OxdServerConfiguration.java:118
OxdServerConfiguration getConfiguration()
Definition: ConfigurationService.java:49

メンバ詳解

◆ LOG

final Logger org.xdi.oxd.server.op.RegisterSiteOperation.LOG = LoggerFactory.getLogger(RegisterSiteOperation.class)
staticprivate

◆ rp

Rp org.xdi.oxd.server.op.RegisterSiteOperation.rp
private

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