ApiInvokeTimesController.java
1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package com.xiniunet.open.manager;
import com.xiniunet.apiframework.security.InvokeTimesController;
import com.xiniunet.apiframework.session.Session;
import java.util.HashMap;
import java.util.Map;
public class ApiInvokeTimesController implements InvokeTimesController {
	private static Map<String,Integer> appCallLimits = new HashMap<String,Integer>();
    private static Map<String,Integer> appCallCounter = new HashMap<String,Integer>();
    static {
        appCallLimits.put("00002",10);
    }
    public void caculateInvokeTimes(String appKey, Session session) {
        if(!appCallCounter.containsKey(appKey)){
           appCallCounter.put(appKey,0);
        }
        appCallCounter.put(appKey,appCallCounter.get(appKey)+1);
    }
    public boolean isUserInvokeLimitExceed(String appKey, Session session) {
        return false;
    }
    public boolean isSessionInvokeLimitExceed(String appKey, String sessionId) {
        return false;
    }
    public boolean isAppInvokeLimitExceed(String appKey) {
        return appCallLimits.containsKey(appKey) &&
                appCallCounter.get(appKey) > appCallLimits.get(appKey) ;
    }
    public boolean isAppInvokeFrequencyExceed(String appKey) {
        return false;
    }
}