This commit is contained in:
wentch
2015-12-15 15:13:49 +08:00
parent 7cd9331d56
commit d2f7f63d67
4 changed files with 53 additions and 72 deletions

View File

@@ -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 {
}

View File

@@ -10,6 +10,9 @@ import org.redkale.net.Request;
import org.redkale.net.Context;
import org.redkale.util.AnyValue;
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.nio.*;
import java.util.*;
@@ -23,6 +26,56 @@ import static jdk.internal.org.objectweb.asm.Opcodes.*;
*/
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;
public boolean preExecute(HttpRequest request, HttpResponse response) throws IOException {

View File

@@ -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;
}

View File

@@ -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();
}