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

import com.qmth.boot.tools.signature.SignatureType;
import org.springframework.stereotype.Component;

import java.lang.annotation.*;

/**
 * 自定义鉴权服务，可以省略Component注解，bean需要实现AuthorizationService接口
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE })
@Documented
@Component
public @interface AuthorizationComponent {

    /**
     * 匹配路径前缀，空白表示默认鉴权服务
     *
     * @return
     */
    String[] prefix() default {};

    /**
     * 匹配签名类型，可以为空
     *
     * @return
     */
    SignatureType[] type() default {};
}
