package com.malk.filter;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 豁免 {@link AuthInterceptor} 签名校验
 *
 * <p>方法级或类级均可。签名校验与 Nonce 去重都会跳过，但 TraceId 与日志照常执行。</p>
 *
 * <p>使用示例：</p>
 * <pre>
 * &#064;NoAuth
 * &#064;GetMapping("/public/ping")
 * public McR&lt;String&gt; ping() { return McR.success("pong"); }
 * </pre>
 *
 * <p>豁免优先级：全局 {@code enabled=false} &gt; {@code exempt-paths} &gt; {@code @NoAuth}</p>
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface NoAuth {
}
