
package com.tmerclub.cloud.common.security.adapter;

import java.util.List;
import java.util.Set;

/**
 * 实现该接口之后，修改需要授权登陆的路径，不需要授权登陆的路径
 *
 * @author tmerclub
 * @date 2020/7/4
 */
public interface AuthConfigAdapter {


    /**
     * 外部直接调用接口，无需登录权限 unwanted auth
     */
    String EXTERNAL_URI = "/**/ua/**";

    /**
     * 也许需要登录才可用的url
     */
    String MAYBE_AUTH_URI = "/**/ma/**";

    /**
     * 平台端uri
     */
    String PLATFORM_URI = "/p/**";

    /**
     * 商家端uri
     */
    String MULTISHOP_URI = "/m/**";

    /**
     * 商家端uri
     */
    String SUPPLIER_URI = "/s/**";

    /**
     * 平台端和商家端都可用的uri
     */
    String MULTISHOP_PLATFORM_URI = "/mp/**";

    /**
     * 商家开店时可用的uri
     */
    String MULTSHOP_APPLY_URI = "/**/applyShop/**";
    /**
     * 商家开店时可用的uri
     */
    String SUPPLIER_APPLY_URI = "/**/applySupplier/**";

    /**
     * swagger
     */
    String DOC_URI = "/v3/api-docs/default";

    /**
     * 退出登录uri
     */
    String LOGIN_OUT_URI = "/ma/loginOut";

    /**
     * 需要授权登陆的路径
     *
     * @return 需要授权登陆的路径列表
     */
    List<String> pathPatterns();

    /**
     * 不需要授权登陆的路径
     *
     * @param paths
     * @return 不需要授权登陆的路径列表
     */
    Set<String> excludePathPatterns(String... paths);

}
