Browse Source

匿名API访问放行

master
刘力 3 years ago
parent
commit
b182f73d44
  1. 11
      common/src/main/java/com/storeroom/annotaion/AnonymousAccess.java
  2. 23
      common/src/main/java/com/storeroom/annotaion/Limit.java
  3. 71
      common/src/main/java/com/storeroom/annotaion/Query.java
  4. 45
      common/src/main/java/com/storeroom/annotaion/rest/AnonymousDeleteMapping.java
  5. 45
      common/src/main/java/com/storeroom/annotaion/rest/AnonymousGetMapping.java
  6. 45
      common/src/main/java/com/storeroom/annotaion/rest/AnonymousPostMapping.java
  7. 45
      common/src/main/java/com/storeroom/annotaion/rest/AnonymousPutMapping.java
  8. 9
      common/src/main/java/com/storeroom/aspect/LimitType.java

11
common/src/main/java/com/storeroom/annotaion/AnonymousAccess.java

@ -0,0 +1,11 @@
package com.storeroom.annotaion;
import java.lang.annotation.*;
@Inherited
@Documented
@Target({ElementType.METHOD,ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface AnonymousAccess {
}

23
common/src/main/java/com/storeroom/annotaion/Limit.java

@ -0,0 +1,23 @@
package com.storeroom.annotaion;
import com.storeroom.aspect.LimitType;
public @interface Limit {
//资源名称用于描述资源接口功能
String name() default "";
// 资源 key
String key() default "";
// key prefix
String prefix() default "";
// 时间的单位秒
int period();
// 限制访问次数
int count();
// 限制类型
LimitType limitType() default LimitType.CUSTOMER;
}

71
common/src/main/java/com/storeroom/annotaion/Query.java

@ -0,0 +1,71 @@
package com.storeroom.annotaion;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Query {
//基本对象的属性名
String propName() default "";
//查询方式
Type type() default Type.EQUAL;
/**
* 连接查询的属性名如User类中的dept
*/
String joinName() default "";
/**
* 默认左连接
*/
Join join() default Join.LEFT;
/**
* 多字段模糊搜索仅支持String类型字段多个用逗号隔开, @Query(blurry = "email,username")
*/
String blurry() default "";
enum Type {
// 相等
EQUAL
// 大于等于
, GREATER_THAN
// 小于等于
, LESS_THAN
// 中模糊查询
, INNER_LIKE
// 左模糊查询
, LEFT_LIKE
// 右模糊查询
, RIGHT_LIKE
// 小于
, LESS_THAN_NQ
// 包含
, IN
// 不包含
, NOT_IN
// 不等于
,NOT_EQUAL
// between
,BETWEEN
// 不为空
,NOT_NULL
// 为空
,IS_NULL
}
/**
* @author
* 适用于简单连接查询复杂的请自定义该注解或者使用sql查询
*/
enum Join {
LEFT, RIGHT, INNER
}
}

45
common/src/main/java/com/storeroom/annotaion/rest/AnonymousDeleteMapping.java

@ -0,0 +1,45 @@
package com.storeroom.annotaion.rest;
import com.storeroom.annotaion.AnonymousAccess;
import org.springframework.core.annotation.AliasFor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.lang.annotation.*;
@AnonymousAccess
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.DELETE)
public @interface AnonymousDeleteMapping {
@AliasFor(annotation = RequestMapping.class)
String name() default "";
@AliasFor(annotation = RequestMapping.class)
String[] value() default {};
@AliasFor(annotation = RequestMapping.class)
String[] path() default {};
@AliasFor(annotation = RequestMapping.class)
String[] params() default {};
@AliasFor(annotation = RequestMapping.class)
String[] headers() default {};
@AliasFor(annotation = RequestMapping.class)
String[] consumes() default {};
@AliasFor(annotation = RequestMapping.class)
String[] produces() default {};
}

45
common/src/main/java/com/storeroom/annotaion/rest/AnonymousGetMapping.java

@ -0,0 +1,45 @@
package com.storeroom.annotaion.rest;
import com.storeroom.annotaion.AnonymousAccess;
import org.springframework.core.annotation.AliasFor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.lang.annotation.*;
@AnonymousAccess
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.GET)
public @interface AnonymousGetMapping {
@AliasFor(annotation = RequestMapping.class)
String name() default "";
@AliasFor(annotation = RequestMapping.class)
String[] value() default {};
@AliasFor(annotation = RequestMapping.class)
String[] path() default {};
@AliasFor(annotation = RequestMapping.class)
String[] params() default {};
@AliasFor(annotation = RequestMapping.class)
String[] headers() default {};
@AliasFor(annotation = RequestMapping.class)
String[] consumes() default {};
@AliasFor(annotation = RequestMapping.class)
String[] produces() default {};
}

45
common/src/main/java/com/storeroom/annotaion/rest/AnonymousPostMapping.java

@ -0,0 +1,45 @@
package com.storeroom.annotaion.rest;
import com.storeroom.annotaion.AnonymousAccess;
import org.springframework.core.annotation.AliasFor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.lang.annotation.*;
@AnonymousAccess
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.POST)
public @interface AnonymousPostMapping {
@AliasFor(annotation = RequestMapping.class)
String name() default "";
@AliasFor(annotation = RequestMapping.class)
String[] value() default {};
@AliasFor(annotation = RequestMapping.class)
String[] path() default {};
@AliasFor(annotation = RequestMapping.class)
String[] params() default {};
@AliasFor(annotation = RequestMapping.class)
String[] headers() default {};
@AliasFor(annotation = RequestMapping.class)
String[] consumes() default {};
@AliasFor(annotation = RequestMapping.class)
String[] produces() default {};
}

45
common/src/main/java/com/storeroom/annotaion/rest/AnonymousPutMapping.java

@ -0,0 +1,45 @@
package com.storeroom.annotaion.rest;
import com.storeroom.annotaion.AnonymousAccess;
import org.springframework.core.annotation.AliasFor;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.lang.annotation.*;
@AnonymousAccess
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.PUT)
public @interface AnonymousPutMapping {
@AliasFor(annotation = RequestMapping.class)
String name() default "";
@AliasFor(annotation = RequestMapping.class)
String[] value() default {};
@AliasFor(annotation = RequestMapping.class)
String[] path() default {};
@AliasFor(annotation = RequestMapping.class)
String[] params() default {};
@AliasFor(annotation = RequestMapping.class)
String[] headers() default {};
@AliasFor(annotation = RequestMapping.class)
String[] consumes() default {};
@AliasFor(annotation = RequestMapping.class)
String[] produces() default {};
}

9
common/src/main/java/com/storeroom/aspect/LimitType.java

@ -0,0 +1,9 @@
package com.storeroom.aspect;
public enum LimitType {
// 默认
CUSTOMER,
// by ip addr
IP
}
Loading…
Cancel
Save