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

公開メンバ関数

CommandResponse execute (final RsProtectParams params) throws Exception
 
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)
 

限定公開メンバ関数

 RsProtectOperation (Command p_command, final Injector injector)
 

関数

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

非公開メンバ関数

void persist (ResourceRegistrar registrar, Rp site) throws IOException
 
void validate (RsProtectParams params)
 

静的非公開変数類

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

詳解

著者
Yuriy Zabrovarnyy
バージョン
0.9, 31/05/2016

構築子と解体子

◆ RsProtectOperation()

org.xdi.oxd.server.op.RsProtectOperation.RsProtectOperation ( Command  p_command,
final Injector  injector 
)
inlineprotected
44  {
45  super(p_command, injector, RsProtectParams.class);
46  }
final Injector injector
Definition: BaseOperation.java:38

関数詳解

◆ execute()

CommandResponse org.xdi.oxd.server.op.RsProtectOperation.execute ( final RsProtectParams  params) throws Exception
inline
49  {
51 
52  Rp site = getRp();
53 
54  PatProvider patProvider = new PatProvider() {
55  @Override
56  public String getPatToken() {
57  return getUmaTokenService().getPat(params.getOxdId()).getToken();
58  }
59 
60  @Override
61  public void clearPat() {
62  // do nothing
63  }
64  };
65 
66  ResourceRegistrar registrar = new ResourceRegistrar(patProvider, new ServiceProvider(site.getOpHost()));
67  try {
68  registrar.register(params.getResources());
69  } catch (ClientResponseFailure e) {
70  LOG.debug("Failed to register resource. Entity: " + e.getResponse().getEntity(String.class) + ", status: " + e.getResponse().getStatus(), e);
71  if (e.getResponse().getStatus() == 400 || e.getResponse().getStatus() == 401) {
72  LOG.debug("Try maybe PAT is lost on AS, force refresh PAT and re-try ...");
73  getUmaTokenService().obtainPat(params.getOxdId()); // force to refresh PAT
74  registrar.register(params.getResources());
75  } else {
76  throw e;
77  }
78  }
79 
80  persist(registrar, site);
81 
82  return okResponse(new RsProtectResponse(site.getOxdId()));
83  }
UmaTokenService getUmaTokenService()
Definition: BaseOperation.java:100
CommandResponse okResponse(IOpResponse p_data)
Definition: BaseOperation.java:145
void validate(RsProtectParams params)
Definition: RsProtectOperation.java:124
void persist(ResourceRegistrar registrar, Rp site)
Definition: RsProtectOperation.java:85
static final Logger LOG
Definition: RsProtectOperation.java:42
Rp getRp()
Definition: BaseOperation.java:117
final T params
Definition: BaseOperation.java:40

◆ 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

◆ 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  }

◆ persist()

void org.xdi.oxd.server.op.RsProtectOperation.persist ( ResourceRegistrar  registrar,
Rp  site 
) throws IOException
inlineprivate
85  {
86  Map<Key, RsResource> resourceMapCopy = registrar.getResourceMapCopy();
87 
88  for (Map.Entry<Key, String> entry : registrar.getIdMapCopy().entrySet()) {
89  UmaResource resource = new UmaResource();
90  resource.setId(entry.getValue());
91  resource.setPath(entry.getKey().getPath());
92  resource.setHttpMethods(entry.getKey().getHttpMethods());
93 
94  Set<String> scopes = Sets.newHashSet();
95  Set<String> scopesForTicket = Sets.newHashSet();
96  Set<String> scopeExpressions = Sets.newHashSet();
97 
98  RsResource rsResource = resourceMapCopy.get(entry.getKey());
99 
100  for (String httpMethod : entry.getKey().getHttpMethods()) {
101 
102  List<String> rsScopes = rsResource.scopes(httpMethod);
103  if (rsScopes != null) {
104  scopes.addAll(rsScopes);
105  }
106  scopesForTicket.addAll(rsResource.getScopesForTicket(httpMethod));
107 
108  JsonNode scopeExpression = rsResource.getScopeExpression(httpMethod);
109  if (scopeExpression != null) {
110  scopeExpressions.add(scopeExpression.toString());
111  }
112  }
113 
114  resource.setScopes(Lists.newArrayList(scopes));
115  resource.setTicketScopes(Lists.newArrayList(scopesForTicket));
116  resource.setScopeExpressions(Lists.newArrayList(scopeExpressions));
117 
118  site.getUmaProtectedResources().add(resource);
119  }
120 
121  getRpService().update(site);
122  }
RpService getRpService()
Definition: BaseOperation.java:104
void update(Rp rp)
Definition: RpService.java:121

◆ validate()

void org.xdi.oxd.server.op.RsProtectOperation.validate ( RsProtectParams  params)
inlineprivate
124  {
125  if (params.getResources() == null || params.getResources().isEmpty()) {
126  throw new ErrorResponseException(ErrorResponseCode.NO_UMA_RESOURCES_TO_PROTECT);
127  }
128  if (!org.xdi.oxd.rs.protect.ResourceValidator.isHttpMethodUniqueInPath(params.getResources())) {
129  throw new ErrorResponseException(ErrorResponseCode.UMA_HTTP_METHOD_NOT_UNIQUE);
130  }
131  if (params.getResources() != null){
132  for (RsResource resource : params.getResources()) {
133  if (resource.getConditions() != null) {
134  for (Condition condition : resource.getConditions()) {
135  if (condition.getScopeExpression() != null) {
136  String json = condition.getScopeExpression().toString();
137  if (StringUtils.isNotBlank(json)) {
138  boolean nodeValid = JsonLogicNodeParser.isNodeValid(json);
139  LOG.trace("Scope expression validator - Valid: " + nodeValid + ", expression: " + json);
140  if (!nodeValid) {
141  throw new ErrorResponseException(ErrorResponseCode.UMA_FAILED_TO_VALIDATE_SCOPE_EXPRESSION);
142  }
143  }
144  }
145  }
146  }
147  }
148  }
149 
150  Rp rp = getRp();
151  List<UmaResource> existingUmaResources = rp.getUmaProtectedResources();
152  if (existingUmaResources != null && !existingUmaResources.isEmpty()) {
153  if (params.getOverwrite() == null || !params.getOverwrite()) {
154  throw new ErrorResponseException(ErrorResponseCode.UMA_PROTECTION_FAILED_BECAUSE_RESOURCES_ALREADY_EXISTS);
155  } else {
156  // remove existing resources, overwrite=true
157  UmaMetadata discovery = getDiscoveryService().getUmaDiscoveryByOxdId(params.getOxdId());
158  UmaResourceService resourceService = UmaClientFactory.instance().createResourceService(discovery, getHttpService().getClientExecutor());
159  String pat = getUmaTokenService().getPat(params.getOxdId()).getToken();
160 
161  for (UmaResource resource : existingUmaResources) {
162  LOG.trace("Removing existing resource " + resource.getId() + " ...");
163  resourceService.deleteResource("Bearer " + pat, resource.getId());
164  LOG.trace("Removed existing resource " + resource.getId() + ".");
165  }
166  rp.getUmaProtectedResources().clear();
168  }
169  }
170  }
HttpService getHttpService()
Definition: BaseOperation.java:72
UmaTokenService getUmaTokenService()
Definition: BaseOperation.java:100
void updateSilently(Rp rp)
Definition: RpService.java:126
DiscoveryService getDiscoveryService()
Definition: BaseOperation.java:96
RpService getRpService()
Definition: BaseOperation.java:104
static final Logger LOG
Definition: RsProtectOperation.java:42
Rp getRp()
Definition: BaseOperation.java:117
final T params
Definition: BaseOperation.java:40

メンバ詳解

◆ LOG

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

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