All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.houkunlin.system.common.aop.AllowIP Maven / Gradle / Ivy

The newest version!
package com.houkunlin.system.common.aop;

import java.lang.annotation.*;

/**
 * 允许指定IP访问接口
 *
 * @author HouKunLin
 */
@Inherited
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AllowIP {
    String INNER_IP = "INNER-IP";
    String INNER_IP_A = "INNER-IP-A";
    String INNER_IP_B = "INNER-IP-B";
    String INNER_IP_C = "INNER-IP-C";
    String INNER_IP_LOCAL = "INNER-IP-LOCAL";

    /**
     * 

IP配置分类key。除了预设的KEY之外,将从配置文件读取,{@link AllowIPConfigurationProperties#getAllowIp()} system.common.allow-ip

*

* 内置预设了如下KEY: *

    *
  1. INNER-IP 内网IP地址: *
      *
    • A类地址 10.0.0.0/8 10.0.0.0-10.255.255.255
    • *
    • B类地址 172.16.0.0/12 172.16.0.0-172.31.255.255
    • *
    • C类地址 192.168.0.0/16 192.168.0.0-192.168.255.255
    • *
    • 本机回环地址 127.0.0.0/8 127.0.0.0-127.255.255.255
    • *
    *
  2. *
  3. INNER-IP-A 内网A类IP地址: *
      *
    • A类地址 10.0.0.0/8 10.0.0.0-10.255.255.255
    • *
    *
  4. *
  5. INNER-IP-B 内网B类IP地址: *
      *
    • B类地址 172.16.0.0/12 172.16.0.0-172.31.255.255
    • *
    *
  6. *
  7. INNER-IP-C 内网C类IP地址: *
      *
    • C类地址 192.168.0.0/16 192.168.0.0-192.168.255.255
    • *
    *
  8. *
  9. INNER-IP-LOCAL 内网本机本地IP地址: *
      *
    • 本机回环地址 127.0.0.0/8 127.0.0.0-127.255.255.255
    • *
    *
  10. *
*

* * @return key */ String key() default ""; /** * 硬编码允许访问的IP列表,仅在 {@link AllowIP#key() AllowIP#key()} 为空字符串时有效,假如 {@link AllowIP#key() AllowIP#key()} 为空字符串且 {@link AllowIP#ipList() AllowIP#ipList()} 为空数组则直接不允许访问。 *

IP格式参考 {@link IpUtil#parseIpRange(String)}

* * @return 硬编码允许访问的IP列表 * @see IpUtil#parseIpRange(String) */ String[] ipList() default {}; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy