public abstract class ProxiedResource extends RestResource
| Modifier and Type | Class and Description |
|---|---|
protected static class |
ProxiedResource.MasterResponse<ResponseType> |
| Modifier and Type | Field and Description |
|---|---|
protected String |
authenticationToken |
protected NodeService |
nodeService |
protected RemoteInterfaceProvider |
remoteInterfaceProvider |
userService| Modifier | Constructor and Description |
|---|---|
protected |
ProxiedResource(javax.ws.rs.core.HttpHeaders httpHeaders,
NodeService nodeService,
RemoteInterfaceProvider remoteInterfaceProvider,
ExecutorService executorService) |
| Modifier and Type | Method and Description |
|---|---|
protected <RemoteInterfaceType> |
createRemoteInterfaceProvider(Class<RemoteInterfaceType> interfaceClass) |
protected <RemoteInterfaceType,RemoteCallResponseType> |
getForAllNodes(Function<RemoteInterfaceType,retrofit2.Call<RemoteCallResponseType>> fn,
Function<String,Optional<RemoteInterfaceType>> interfaceProvider) |
protected <RemoteInterfaceType,FinalResponseType,RemoteCallResponseType> |
getForAllNodes(Function<RemoteInterfaceType,retrofit2.Call<RemoteCallResponseType>> fn,
Function<String,Optional<RemoteInterfaceType>> interfaceProvider,
Function<RemoteCallResponseType,FinalResponseType> transformer) |
protected <RemoteInterfaceType,RemoteCallResponseType> |
requestOnMaster(Function<RemoteInterfaceType,retrofit2.Call<RemoteCallResponseType>> remoteInterfaceFunction,
Function<String,Optional<RemoteInterfaceType>> remoteInterfaceProvider)
Execute the given remote interface function on the master node.
|
checkAnyPermission, checkPermission, checkPermission, getCurrentUser, getIndexSet, getSubject, getUriBuilderToSelf, isAnyPermitted, isAnyPermitted, isPermitted, isPermitted, setPrettyPrintprotected final String authenticationToken
protected final NodeService nodeService
protected final RemoteInterfaceProvider remoteInterfaceProvider
protected ProxiedResource(@Context
javax.ws.rs.core.HttpHeaders httpHeaders,
NodeService nodeService,
RemoteInterfaceProvider remoteInterfaceProvider,
ExecutorService executorService)
protected <RemoteInterfaceType,RemoteCallResponseType> Map<String,Optional<RemoteCallResponseType>> getForAllNodes(Function<RemoteInterfaceType,retrofit2.Call<RemoteCallResponseType>> fn, Function<String,Optional<RemoteInterfaceType>> interfaceProvider)
protected <RemoteInterfaceType,FinalResponseType,RemoteCallResponseType> Map<String,Optional<FinalResponseType>> getForAllNodes(Function<RemoteInterfaceType,retrofit2.Call<RemoteCallResponseType>> fn, Function<String,Optional<RemoteInterfaceType>> interfaceProvider, Function<RemoteCallResponseType,FinalResponseType> transformer)
protected <RemoteInterfaceType> Function<String,Optional<RemoteInterfaceType>> createRemoteInterfaceProvider(Class<RemoteInterfaceType> interfaceClass)
protected <RemoteInterfaceType,RemoteCallResponseType> ProxiedResource.MasterResponse<RemoteCallResponseType> requestOnMaster(Function<RemoteInterfaceType,retrofit2.Call<RemoteCallResponseType>> remoteInterfaceFunction, Function<String,Optional<RemoteInterfaceType>> remoteInterfaceProvider) throws IOException
This is used to forward an API request to the master node. It is useful in situations where an API call can only be executed on the master node.
The returned ProxiedResource.MasterResponse object is constructed from the remote response's status code and body.
IOExceptionCopyright © 2012–2020 Graylog, Inc.. All rights reserved.