This commit is contained in:
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.redkale.net.http;
|
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
|
||||||
import static java.lang.annotation.ElementType.*;
|
|
||||||
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 配合 BasedHttpServlet 使用, 当标记为 @AuthIgnore 的方法不会再调用之前调用authenticate 方法。
|
|
||||||
*
|
|
||||||
* @author zhangjx
|
|
||||||
*/
|
|
||||||
@Inherited
|
|
||||||
@Documented
|
|
||||||
@Target({METHOD, TYPE})
|
|
||||||
@Retention(RUNTIME)
|
|
||||||
public @interface AuthIgnore {
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -10,6 +10,9 @@ import org.redkale.net.Request;
|
|||||||
import org.redkale.net.Context;
|
import org.redkale.net.Context;
|
||||||
import org.redkale.util.AnyValue;
|
import org.redkale.util.AnyValue;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.lang.annotation.*;
|
||||||
|
import static java.lang.annotation.ElementType.*;
|
||||||
|
import static java.lang.annotation.RetentionPolicy.RUNTIME;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.nio.*;
|
import java.nio.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@@ -23,6 +26,56 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
|
|||||||
*/
|
*/
|
||||||
public abstract class BasedHttpServlet extends HttpServlet {
|
public abstract class BasedHttpServlet extends HttpServlet {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配合 BasedHttpServlet 使用。
|
||||||
|
* 当标记为 @AuthIgnore 的方法不会再调用之前调用authenticate 方法。
|
||||||
|
*
|
||||||
|
* @author zhangjx
|
||||||
|
*/
|
||||||
|
@Inherited
|
||||||
|
@Documented
|
||||||
|
@Target({METHOD, TYPE})
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
public static @interface AuthIgnore {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配合 BasedHttpServlet 使用。
|
||||||
|
* 用于对@WebServlet对应的url进行细分。 其 url
|
||||||
|
*
|
||||||
|
* @author zhangjx
|
||||||
|
*/
|
||||||
|
@Target({ElementType.METHOD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public static @interface WebAction {
|
||||||
|
|
||||||
|
int actionid() default 0;
|
||||||
|
|
||||||
|
String url();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配合 BasedHttpServlet 使用。
|
||||||
|
* 当标记为 @HttpCacheable 的方法使用response.finish的参数将被缓存一定时间(默认值timeout=15秒)。
|
||||||
|
* 通常情况下 @HttpCacheable 需要与 @AuthIgnore 一起使用,因为没有标记@AuthIgnore的方法一般输出的结果与当前用户信息有关。
|
||||||
|
*
|
||||||
|
* @author zhangjx
|
||||||
|
*/
|
||||||
|
@Target({ElementType.METHOD})
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Documented
|
||||||
|
public static @interface HttpCacheable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 超时的秒数
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
int timeout() default 15;
|
||||||
|
}
|
||||||
|
|
||||||
private Map.Entry<String, Entry>[] actions;
|
private Map.Entry<String, Entry>[] actions;
|
||||||
|
|
||||||
public boolean preExecute(HttpRequest request, HttpResponse response) throws IOException {
|
public boolean preExecute(HttpRequest request, HttpResponse response) throws IOException {
|
||||||
|
|||||||
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.redkale.net.http;
|
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 配合 BasedHttpServlet 使用, 当标记为 @HttpCacheable 的方法使用response.finish的参数将被缓存一定时间(默认值timeout=15秒)。
|
|
||||||
* 通常情况下 @HttpCacheable 需要与 @AuthIgnore 一起使用,因为没有标记@AuthIgnore的方法一般输出的结果与当前用户信息有关。
|
|
||||||
*
|
|
||||||
* @author zhangjx
|
|
||||||
*/
|
|
||||||
@Target({ElementType.METHOD})
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Documented
|
|
||||||
public @interface HttpCacheable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 超时的秒数
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
int timeout() default 15;
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
* To change this license header, choose License Headers in Project Properties.
|
|
||||||
* To change this template file, choose Tools | Templates
|
|
||||||
* and open the template in the editor.
|
|
||||||
*/
|
|
||||||
package org.redkale.net.http;
|
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author zhangjx
|
|
||||||
*/
|
|
||||||
@Target({ElementType.METHOD})
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Documented
|
|
||||||
public @interface WebAction {
|
|
||||||
|
|
||||||
int actionid() default 0;
|
|
||||||
|
|
||||||
String url();
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user