func New(authCfg *resthandler.Config, s spi.Store, verifier signatureVerifier, casClient casapi.Client) *WebCAS {
	h := &WebCAS{
		casClient: casClient,
		logger:    log.New("webcas"),
	}
	h.AuthHandler = resthandler.NewAuthHandler(authCfg, "/cas/{%s}", http.MethodGet, s, verifier,
		func(actorIRI *url.URL) (bool, error) {
			h.logger.Debugf("[%s] Authorized actor [%s]", h.Path(), actorIRI)
			return true, nil
		})
	return h
}
New returns a new WebCAS, which contains a REST handler that implements WebCAS as defined in
https://trustbloc.github.io/did-method-orb/#webcas.
package webcas
import (
	"errors"
	"fmt"
	"net/http"
	"net/url"
	"github.com/gorilla/mux"
	"github.com/trustbloc/edge-core/pkg/log"
	casapi "github.com/trustbloc/sidetree-core-go/pkg/api/cas"
	"github.com/trustbloc/sidetree-core-go/pkg/restapi/common"
	"github.com/trustbloc/orb/pkg/activitypub/resthandler"
	"github.com/trustbloc/orb/pkg/activitypub/store/spi"
	orberrors "github.com/trustbloc/orb/pkg/errors"
)
const cidPathVariable = "cid"
type logger interface {
	Errorf(msg string, args ...interface{})
	Infof(msg string, args ...interface{})
	Debugf(msg string, args ...interface{})
}
type signatureVerifier interface {
	VerifyRequest(req *http.Request) (bool, *url.URL, error)
}
type WebCAS struct {
	*resthandler.AuthHandler
	casClient casapi.Client
	logger    logger
}
func (w *WebCAS) Path() string {
	return fmt.Sprintf("/cas/{%s}", cidPathVariable)
}
func (w *WebCAS) Method() string {
	return http.MethodGet
}
func (w *WebCAS) Handler() common.HTTPRequestHandler {
	return w.handler
}