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

import java.util.Collection;

/**
 * 鉴权模块对请求访问的抽象描述
 */
public interface AccessEntity {

    /**
     * 请求携带的身份标识
     *
     * @return
     */
    String getIdentity();

    /**
     * 鉴权所需的保密信息
     *
     * @return
     */
    String getSecret();

    /**
     * 记录到日志中的访问者信息，默认取identity内容
     *
     * @return
     */
    default String getLogName() {
        return getIdentity();
    }

    /**
     * 允许访问的IP
     *
     * @return
     */
    default Collection<String> getAllowIP() {
        return null;
    }

    /**
     * 禁止访问的IP
     *
     * @return
     */
    default Collection<String> getDenyIP() {
        return null;
    }

}
