jsr-303
那一套的。求分享~BTW :
Controller
、Service
?Hibernate-validator
这种实现,在字段上增加注解来进行校验,如果同一个对象,不同的校验场景如何处理? 1
3dwelcome 2016-03-18 16:38:38 +08:00
如果只是防止第三方非法修改数据内容,个人觉得数据发送前做个全局数据流 hash, 然后签名就可以了。
签名不能伪造 => hash 值无法被第三方修改 => 数据流安全。 |
2
BuilderQiu OP |
3
88250 2016-03-18 16:51:39 +08:00
Controller 参数格式校验一直手写, Service 里面做参数相关业务逻辑的校验
|
4
BuilderQiu OP @88250
现在也基本都是手写的,不过感觉太繁琐了,场景一多,判断写一堆 |
5
Sharuru 2016-03-18 17:34:03 +08:00
=m= 看具体环境吧,比如我现在写的这个,全靠前端 validation 来检测,后台抓个大异常,然后防一下 SQL 注入。
|
6
88250 2016-03-18 17:36:24 +08:00
@BuilderQiu 手写比较好控制,其实代码也不会太多的,而且调试方便
|
8
slixurd 2016-03-18 17:39:10 +08:00
如果传个 Bean 进来,或者传过来的数据可以反序列化为 VO ,我们都把校验逻辑会写在 VO 里
这样可以简单复用一下,比较一个 VO 用在多个地方很正常 |
9
BuilderQiu OP @Sharuru
后端也得检验哇 |
10
BuilderQiu OP @88250
主要是代码都差不多,判空之类的 |
11
BuilderQiu OP @fwrq41251
分组到是可以~不同场景用不同组 |
12
BuilderQiu OP |
13
Ouyangan 2016-03-18 17:48:14 +08:00
这个问题我也很困惑 , 关注
|
14
88250 2016-03-18 18:01:45 +08:00
@BuilderQiu 工具类调用,封装一下返回文案范围值啥的,也就 1 行代码..
|
15
murmur 2016-03-18 18:44:26 +08:00
前端无论怎么做后端都要校验 但是有些东西必须失败一次才知道结果 比如唯一性校验 或者涉及外键关联的 那就囧了 是让 try 一下让他报错接着 还是真的去数据库校验一次呢
|
16
BuilderQiu OP @murmur
😂这种一般都是去查一次吧?虽然还是可能查询的时候不存在,添加的时候已存在了最后进入报错流程…… |
17
caixiexin 2016-03-18 20:21:13 +08:00 via Android 1
参数完整性,判空,长度,字符串个数的校验,用 jsr303 够用了呀。
写一个 baseController ,在里面同一捕获 jsr303 的异常,并封装 response 。然后所有 controller 基础它。 剩下的工作就是定义各种错误的 message 和新增接口的时候为每个请求类里面属性加注解了。 另外, Hibernate-validato 不就是 jsr303 的实现吗😂 |
19
BuilderQiu OP |
20
odirus 2016-03-18 21:38:54 +08:00
@caixiexin 谢谢,我也有这个问题。。。一直不是非常明白。
请教一下: hibernate validator 是挺好用的,但是万一我传入的参数不是一个 bean 里面的字段呢?谢谢。主要是写接口的时候,参数和 bean 没任何联系。 |
21
BuilderQiu OP |
22
odirus 2016-03-18 22:18:33 +08:00
@BuilderQiu 谢谢。
|
23
Coande 2017-07-26 01:16:09 +08:00
楼主有没有找到比较好的方法?一直比较疑惑。
|
24
BuilderQiu OP @Coande
目前还是用的 jsr-303 那一坨,复杂的验证就自定义 |