Skip to content

Commit cb1334e

Browse files
Develop (#13)
* Add<TParamSqlValid>: Add annotation for application to check whether params are legal * Upd<TParamSqlValid>: Update annotation for custom validate field * Fix<ConfigAdapter>: logout instance return error * Fix<Mysql>: Fix disconnect logic (Set status in advance cause data couldn't save) Fix<MaxLengthCheckError>: case error Change<UrlUtil>: Improve logic Fix<MethodAppReceiver>: Fix intervalMS logic
1 parent cb7fa95 commit cb1334e

9 files changed

Lines changed: 86 additions & 9 deletions

File tree

src/main/java/com/talexframe/frame/core/modules/network/connection/app/addon/ReceiverAddonAdapter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.talexframe.frame.core.modules.network.connection.app.addon.param.valid.min.value.ReceiverMinValueValidateAddon;
1515
import com.talexframe.frame.core.modules.network.connection.app.addon.param.valid.nonull.ReceiverNoNullValidateAddon;
1616
import com.talexframe.frame.core.modules.network.connection.app.addon.param.valid.pattern.ReceiverPatternValidateAddon;
17+
import com.talexframe.frame.core.modules.network.connection.app.addon.param.valid.sql.ReceiverParamSqlValidateAddon;
1718
import com.talexframe.frame.core.modules.network.connection.app.addon.permission.ReceiverPermissionAddon;
1819
import com.talexframe.frame.core.modules.plugins.adapt.PluginCompAdapter;
1920
import com.talexframe.frame.core.modules.plugins.addon.PluginScanner;
@@ -62,6 +63,7 @@ public ReceiverAddonAdapter() {
6263
register(new ReceiverMaxValueValidateAddon());
6364
register(new ReceiverMinLengthValidateAddon());
6465
register(new ReceiverMinValueValidateAddon());
66+
register(new ReceiverParamSqlValidateAddon());
6567

6668
}
6769

src/main/java/com/talexframe/frame/core/modules/network/connection/app/addon/param/valid/max/length/ReceiverMaxLengthValidateAddon.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public ReceiverMaxLengthValidateAddon() {
2020
@Override
2121
public boolean validate(WrappedResponse wr, TMaxLengthValid tMaxLengthValid, Object addedParam) {
2222

23-
return addedParam != null && ((String) addedParam).length() <= tMaxLengthValid.value();
23+
return addedParam == null || ((String) addedParam).length() <= tMaxLengthValid.value();
2424

2525
}
2626

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.talexframe.frame.core.modules.network.connection.app.addon.param.valid.sql;
2+
3+
import com.talexframe.frame.core.modules.network.connection.app.addon.param.valid.ReceiverValidateAddon;
4+
import com.talexframe.frame.core.pojo.wrapper.WrappedResponse;
5+
6+
/**
7+
* {@link com.talexframe.frame.core.modules.network.connection.app.addon.login Package }
8+
*
9+
* @author TalexDreamSoul 22/06/06 下午 04:47 Project: TalexFrame
10+
*/
11+
@SuppressWarnings( "UnstableApiUsage" )
12+
public class ReceiverParamSqlValidateAddon extends ReceiverValidateAddon<TParamSqlValid> {
13+
14+
public ReceiverParamSqlValidateAddon() {
15+
16+
super("ReceiverParamSqlValidate");
17+
18+
}
19+
20+
@Override
21+
public boolean validate(WrappedResponse wr, TParamSqlValid tParamSqlValid, Object addedParam) {
22+
23+
String str = (String) addedParam;
24+
25+
str = str.toLowerCase();
26+
27+
String[] badStrArray = (tParamSqlValid.normal() + "|" + tParamSqlValid.extra())
28+
.split("\\|");
29+
30+
for ( final String s : badStrArray ) {
31+
32+
if ( str.contains(s) ) {
33+
34+
return false;
35+
36+
}
37+
38+
}
39+
40+
return true;
41+
42+
}
43+
44+
@Override
45+
public String getErrorMessage() {
46+
47+
return "你传入的参数非法!";
48+
49+
}
50+
51+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.talexframe.frame.core.modules.network.connection.app.addon.param.valid.sql;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
import java.lang.annotation.Target;
7+
8+
/**
9+
* 加在字段上进行请求校验
10+
* {@link com.talexframe.frame.core.pojo.annotations Package }
11+
*
12+
* @author TalexDreamSoul 22/04/17 上午 08:34 Project: TalexFrame
13+
*/
14+
@Retention( RetentionPolicy.RUNTIME )
15+
@Target( { ElementType.PARAMETER, ElementType.TYPE } )
16+
public @interface TParamSqlValid {
17+
18+
String normal() default "select|update|and|or|delete|insert|truncate|char|into|substr|ascii|declare|exec|count|master|into|drop|execute|table";
19+
20+
String extra() default ""; // extra value
21+
22+
}

src/main/java/com/talexframe/frame/core/modules/network/connection/app/subapp/MethodAppReceiver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public Object onRequest(ClassAppReceiver clzAppReceiver, MethodAppReceiver metho
6363

6464
Object obj = method.invoke(ownApp, wr.getParams().toArray());
6565

66-
long ms = timer.intervalMs(wr.getRequest().getSession().getId());
66+
long ms = timer.intervalMs(requestID);
6767

6868
if ( ms > 300 ) {
6969

src/main/java/com/talexframe/frame/core/modules/plugins/adapt/config/json/JSONConfigAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ public boolean logoutInstance(PluginScanner scanner, WebPlugin webPlugin, Class<
207207

208208
}
209209

210-
return false;
210+
return true;
211211

212212
}
213213

src/main/java/com/talexframe/frame/core/modules/plugins/adapt/config/yaml/YamlConfigAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ public boolean logoutInstance(PluginScanner scanner, WebPlugin webPlugin, Class<
218218

219219
}
220220

221-
return false;
221+
return true;
222222
}
223223

224224
}

src/main/java/com/talexframe/frame/core/pojo/dao/factory/mysql/Mysql.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,8 +282,6 @@ public boolean disconnect() {
282282

283283
log.debug("[数据库] [断开] 断开数据库连接 ...");
284284

285-
status = DataProcessorStatus.DISCONNECTED;
286-
287285
if ( this.session != null ) {
288286

289287
DAOProcessorPreShutdownEvent<Mysql> daoProcessorPreShutdownEvent = new DAOProcessorPreShutdownEvent<>(this);
@@ -296,13 +294,17 @@ public boolean disconnect() {
296294

297295
}
298296

299-
log.warn("[数据库] MySQL数据库已停止服务!");
297+
status = DataProcessorStatus.DISCONNECTED;
300298

301299
this.session.close();
302300
this.dataSource.close();
303301

302+
log.warn("[数据库] MySQL数据库已停止服务!");
303+
304304
}
305305

306+
log.debug("[数据库] [断开] 已断开数据库连接 !");
307+
306308
return false;
307309
}
308310

src/main/java/com/talexframe/frame/utils/UrlUtil.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,8 @@ public static boolean advancedUrlChecker(String url1, String url2) {
5454

5555
public static boolean urlChecker(String url1, String url2) {
5656

57-
url1 = formatUrl("/" + url1);
58-
url2 = formatUrl("/" + url2);
57+
url1 = formatUrl(url1);
58+
url2 = formatUrl(url2);
5959
return url1.equalsIgnoreCase(url2);
6060
}
6161

0 commit comments

Comments
 (0)