forked from Tencent/APIJSON
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVerifier.java
More file actions
executable file
·86 lines (66 loc) · 2 KB
/
Verifier.java
File metadata and controls
executable file
·86 lines (66 loc) · 2 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/*Copyright ©2016 TommyLemon(https://github.com/TommyLemon/APIJSON)
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.*/
package apijson.orm;
import apijson.NotNull;
import apijson.RequestMethod;
import apijson.RequestRole;
/**权限验证器
* @author Lemon
*/
public interface Verifier<T> {
/**验证权限是否通过
* @param config
* @param visitor
* @return
* @throws Exception
*/
boolean verify(SQLConfig config) throws Exception;
/**允许请求,角色不好判断,让访问者发过来角色名,OWNER,CONTACT,ADMIN等
* @param table
* @param method
* @param role
* @return
* @throws Exception
* @see {@link apijson.JSONObject#KEY_ROLE}
*/
void verifyRole(String table, RequestMethod method, RequestRole role) throws Exception;
/**登录校验
* @param config
* @throws Exception
*/
void verifyLogin() throws Exception;
/**管理员角色校验
* @param config
* @throws Exception
*/
void verifyAdmin() throws Exception;
/**验证是否重复
* @param table
* @param key
* @param value
* @throws Exception
*/
void verifyRepeat(String table, String key, Object value) throws Exception;
/**验证是否重复
* @param table
* @param key
* @param value
* @param exceptId 不包含id
* @throws Exception
*/
void verifyRepeat(String table, String key, Object value, long exceptId) throws Exception;
@NotNull
Parser<T> createParser();
@NotNull
Visitor<T> getVisitor();
Verifier<T> setVisitor(@NotNull Visitor<T> visitor);
String getVisitorIdKey(SQLConfig config);
}