|
22 | 22 | import javax.management.ObjectName; |
23 | 23 | import javax.management.Query; |
24 | 24 |
|
| 25 | + |
25 | 26 | import apijson.JSON; |
26 | 27 | import apijson.JSONRequest; |
27 | 28 | import apijson.JSONResponse; |
@@ -2093,52 +2094,46 @@ protected JSONObject batchVerify(RequestMethod method, String tag, int version, |
2093 | 2094 |
|
2094 | 2095 | // @post、@get等RequestMethod |
2095 | 2096 | try { |
2096 | | - if (key.startsWith("@")) { |
2097 | | - try { |
2098 | | - // 如果不匹配,异常不处理即可 |
2099 | | - RequestMethod _method = RequestMethod.valueOf(key.substring(1).toUpperCase()); |
2100 | | - removeTmpKeys.add(key); |
| 2097 | + if (key.startsWith("@") && getEnum(RequestMethod.class, key.substring(1).toUpperCase(), null) != null) { |
| 2098 | + // 如果不匹配,异常不处理即可 |
| 2099 | + RequestMethod _method = RequestMethod.valueOf(key.substring(1).toUpperCase()); |
| 2100 | + removeTmpKeys.add(key); |
2101 | 2101 |
|
2102 | | - JSONObject obj = request.getJSONObject(key); |
2103 | | - Set<String> set = obj == null ? new HashSet<>() : obj.keySet(); |
| 2102 | + JSONObject obj = request.getJSONObject(key); |
| 2103 | + Set<String> set = obj == null ? new HashSet<>() : obj.keySet(); |
2104 | 2104 |
|
2105 | | - for (String objKey : set) { |
2106 | | - if (objKey == null) { |
2107 | | - continue; |
2108 | | - } |
| 2105 | + for (String objKey : set) { |
| 2106 | + if (objKey == null) { |
| 2107 | + continue; |
| 2108 | + } |
2109 | 2109 |
|
2110 | | - Map<String, Object> objAttrMap = new HashMap<>(); |
2111 | | - objAttrMap.put(apijson.JSONObject.KEY_METHOD, _method); |
2112 | | - keyObjectAttributesMap.put(objKey, objAttrMap); |
2113 | | - JSONObject objAttrJson = obj.getJSONObject(objKey); |
2114 | | - Set<Entry<String, Object>> objSet = objAttrJson == null ? new HashSet<>() : objAttrJson.entrySet(); |
| 2110 | + Map<String, Object> objAttrMap = new HashMap<>(); |
| 2111 | + objAttrMap.put(apijson.JSONObject.KEY_METHOD, _method); |
| 2112 | + keyObjectAttributesMap.put(objKey, objAttrMap); |
| 2113 | + JSONObject objAttrJson = obj.getJSONObject(objKey); |
| 2114 | + Set<Entry<String, Object>> objSet = objAttrJson == null ? new HashSet<>() : objAttrJson.entrySet(); |
2115 | 2115 |
|
2116 | | - for (Entry<String, Object> entry : objSet) { |
2117 | | - String objAttrKey = entry == null ? null : entry.getKey(); |
2118 | | - if (objAttrKey == null) { |
2119 | | - continue; |
2120 | | - } |
| 2116 | + for (Entry<String, Object> entry : objSet) { |
| 2117 | + String objAttrKey = entry == null ? null : entry.getKey(); |
| 2118 | + if (objAttrKey == null) { |
| 2119 | + continue; |
| 2120 | + } |
2121 | 2121 |
|
2122 | | - switch (objAttrKey) { |
2123 | | - case apijson.JSONObject.KEY_DATASOURCE: |
2124 | | - case apijson.JSONObject.KEY_SCHEMA: |
2125 | | - case apijson.JSONObject.KEY_DATABASE: |
2126 | | - case JSONRequest.KEY_VERSION: |
2127 | | - case apijson.JSONObject.KEY_ROLE: |
2128 | | - case JSONRequest.KEY_TAG: |
2129 | | - objAttrMap.put(objAttrKey, entry.getValue()); |
2130 | | - break; |
2131 | | - default: |
2132 | | - break; |
2133 | | - } |
| 2122 | + switch (objAttrKey) { |
| 2123 | + case apijson.JSONObject.KEY_DATASOURCE: |
| 2124 | + case apijson.JSONObject.KEY_SCHEMA: |
| 2125 | + case apijson.JSONObject.KEY_DATABASE: |
| 2126 | + case JSONRequest.KEY_VERSION: |
| 2127 | + case apijson.JSONObject.KEY_ROLE: |
| 2128 | + case JSONRequest.KEY_TAG: |
| 2129 | + objAttrMap.put(objAttrKey, entry.getValue()); |
| 2130 | + break; |
| 2131 | + default: |
| 2132 | + break; |
2134 | 2133 | } |
2135 | 2134 | } |
2136 | | - |
2137 | | - continue; |
2138 | | - } |
2139 | | - catch (Exception e) { |
2140 | | - e.printStackTrace(); |
2141 | 2135 | } |
| 2136 | + continue; |
2142 | 2137 | } |
2143 | 2138 |
|
2144 | 2139 | // 1、非crud,对于没有显式声明操作方法的,直接用 URL(/get, /post 等) 对应的默认操作方法 |
@@ -2259,6 +2254,17 @@ protected JSONObject batchVerify(RequestMethod method, String tag, int version, |
2259 | 2254 | return jsonObject; |
2260 | 2255 | } |
2261 | 2256 |
|
| 2257 | + public static <E extends Enum<E>> E getEnum(final Class<E> enumClass, final String enumName, final E defaultEnum) { |
| 2258 | + if (enumName == null) { |
| 2259 | + return defaultEnum; |
| 2260 | + } |
| 2261 | + try { |
| 2262 | + return Enum.valueOf(enumClass, enumName); |
| 2263 | + } catch (final IllegalArgumentException ex) { |
| 2264 | + return defaultEnum; |
| 2265 | + } |
| 2266 | + } |
| 2267 | + |
2262 | 2268 | protected void setRequestAttribute(String key, boolean isArray, String attrKey, @NotNull JSONObject request) { |
2263 | 2269 | Map<String, Object> attrMap = keyObjectAttributesMap.get(isArray ? key + apijson.JSONObject.KEY_ARRAY : key); |
2264 | 2270 | Object attrVal = attrMap == null ? null : attrMap.get(attrKey); |
|
0 commit comments