Interface ILcdWCSCapabilitiesProvider

public interface ILcdWCSCapabilitiesProvider

Provides the WCS capabilities, or parts of it. The capabilities describe what this server has to offer, that is, which coverage offerings it has. This is a core extension point when implementing your own server. Alternatively, you can use the Fusion Platform, where the capabilities are configured through the Studio web application.

As the capabilities are retrieved for every request, it for example allows to easily add or remove coverage offerings without having to restart the server. Furthermore, the request that is being handled is provided as a parameter, which allows for tailor-made capabilities based on that information. It could for example be used to implement access control: grant certain users access to more coverage offerings than others (see below).

As this interface is called for every request, the implementation must be fast and efficient. It could for example apply caching, to avoid any work if no changes to the capabilities are needed. The simplest implementation would ignore the provided request parameter and always provide the same coverage offerings.

The methods getCoverageOfferings(ILcdRequest) and getCoverageOfferings(List, ILcdRequest) allow to differentiate access to coverages based on the user's authorization information. The user's authorization information can be extracted from the request using the getUserPrincipal or isUserInRole methods. Use the following exception codes for handling access control:

  • NOT_AUTHORIZED: to indicate the user has requested a coverage he does not have access to.
  • AUTHENTICATION_REQUIRED: to indicate the user has request a coverage for which authentication is required but no authentication has been provided yet.

The resulting exception is translated in a proper response to the client application.