Class ETagHandler
- java.lang.Object
-
- de.captaingoldfish.scim.sdk.server.etag.ETagHandler
-
public class ETagHandler extends Object
author Pascal Knueppel
created at: 21.11.2019 - 08:28
this class is used for handling entity tags
-
-
Constructor Summary
Constructors Constructor Description ETagHandler()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static Optional<ETag>getETagFromHeader(Map<String,String> httpHeaders, boolean ifNot)will extract either the If-Match header from the request or the If-None-Match header if one of these do exist.static Optional<ETag>getResourceVersion(ServiceProvider serviceProvider, ResourceNode resourceNode)if the service provider has its support vor eTag set to true this method will return either the already set version from the meta-attribute of the resource node or will generate a version value by generating a base64 encoded SHA-1 hash of the resourcestatic voidvalidateVersion(ServiceProvider serviceProvider, Supplier<ResourceNode> currentState, Map<String,String> httpHeaders)will validate if the given httpHeaders do contain an entity tag within the request and if this entity tag matches the state of the current resource
-
-
-
Method Detail
-
getResourceVersion
public static Optional<ETag> getResourceVersion(ServiceProvider serviceProvider, ResourceNode resourceNode)
if the service provider has its support vor eTag set to true this method will return either the already set version from the meta-attribute of the resource node or will generate a version value by generating a base64 encoded SHA-1 hash of the resource- Parameters:
serviceProvider- the service provider configurationresourceNode- the current resource node- Returns:
- the version set by the developer or a base64 encoded SHA-1 hash. An empty if etag is not supported
-
validateVersion
public static void validateVersion(ServiceProvider serviceProvider, Supplier<ResourceNode> currentState, Map<String,String> httpHeaders)
will validate if the given httpHeaders do contain an entity tag within the request and if this entity tag matches the state of the current resource- Parameters:
serviceProvider- the service provider configurationcurrentState- supplier that gives access to the resource that should be checkedhttpHeaders- the http headers that might contain the corresponding http request headers
-
getETagFromHeader
protected static Optional<ETag> getETagFromHeader(Map<String,String> httpHeaders, boolean ifNot)
will extract either the If-Match header from the request or the If-None-Match header if one of these do exist. If both headers exist an exception is thrown since these headers are mutually exclusive- Parameters:
httpHeaders- the http headers from the request that optionally have one of the entity tag headersifNot- if set to true the If-None-Match header is extracted, the If-Match header if set to false- Returns:
- an empty of the specified entity tag
-
-