package com.qmth.boot.core.security.service;

import com.qmth.boot.core.security.exception.AuthorizationException;
import com.qmth.boot.core.security.model.AccessEntity;
import com.qmth.boot.tools.signature.SignatureType;

/**
 * 鉴权处理接口
 */
public interface AuthorizationSupport {

    /**
     * 签名鉴权方法
     *
     * @param signature
     * @param method
     * @param uri
     * @param timestamp
     * @param signTypes
     * @return
     * @throws AuthorizationException
     */
    AccessEntity validateSignature(String signature, String method, String uri, String timestamp,
            SignatureType... signTypes) throws AuthorizationException;
}
