当前位置: 首页 > 知识库问答 >
问题:

取决于当前记录的主体的验证规则

芮学
2023-03-14

我在一个EJB中有一些商业方法,它接受一个DTO作为参数,即:

public void someMethod(SomeClass someArgument);

我想定义一个自定义验证器来验证参数(请注意,我想将其验证为参数,而不是在类级别,尽管如果有人有涉及的解决方法,那是受欢迎的)。验证需要来自当前记录的主体的数据,例如,通过将其注入@Context注释SecurityContext。

因此,我的第一种方法是为SomeClass实现一个新的约束验证器,其中包含参数目标。问题是,我认为在这个约束验证器中注入带有@Context的安全上下文是行不通的,因为bean验证API要求isValid方法应该是线程安全的,所以我猜这个验证实例是并发重用的,然后注入的SecurityContext将不起作用。

我的怀疑对吗?您将如何处理这种用例,在这种用例中,您需要使用安全上下文提供的信息来执行验证?我知道如何用spring security来实现,但不知道如何在javaee (version 7)环境中实现。

共有1个答案

田曜瑞
2023-03-14

豆类验证 v1.1 与 cdi 集成。从理论上讲,您可以在验证器中注入预定义的 bean 主体。不存在线程问题,因为约束由 BV 框架调用。因此,在您的自定义验证器中,我会这样做:

@Inject private Principal principal
 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 从时间戳列中选择当前月份记录mysql (9个答案) 如何在MySQL的当月第一天和当日之间进行选择? (15个答案) 6年前关闭。 如何从MySql数据库表中选择“当前月”记录? 像现在这样,当前月份是一月。我想获取一月月份的记录,其中我的表列的数据类型是。我想知道sql查询。 谢谢 问题答案: 该查询将为您工作:

  • 问题内容: 我有一个调用方法,该方法更改绑定到单选输入的属性。 我也有相同验证的表单上的文本输入(required = true)。 如果我离开了文本输入栏,并点击同,从模型属性如预期,因为文字输入从未处理和验证从来没有火灾的单选按钮更新。 但是,如果在一个不同的我首先点击与, 然后 与链接,确认消息消失,但单选按钮值也 不会 离即使UIInput单选按钮从未处于无效状态的模型更新。 我发现这很烦

  • 问题内容: 我有一个订单表,其中包含订单ID,订单日期和订单说明。 我想运行一个选择查询,以捕获最近两天创建的所有订单。因此,当前日期减去两天。从12月14日开始,我想选择所有订单日期大于12月13日的订单。这需要使用“获取日期”功能来获取当前日期并减去日期。 我试过了: 但这不能产生正确的结果。任何想法如何做到这一点,请? 问题答案: 你应该尝试使用功能 现在,这可能正是您所需要的,但是您需要了

  • 本文向大家介绍用于HTML5的W3C标记验证器,包括了用于HTML5的W3C标记验证器的使用技巧和注意事项,需要的朋友参考一下 W3C标记验证器检查HTML,XHTML,SMIL,MathML等Web文档的标记有效性。此验证器是W3C统一验证器服务Unicorn的一部分。 要将此验证器用于HTML5,您需要使用“更多选项”,然后选择“文档类型”作为HTML5,如下所示。

  • 验证规则的定义通常有两种方式,如果你使用了验证器的话,通常通过rule属性定义验证规则,而如果使用的是独立验证的话,则是通过rule方法进行定义。 属性定义 属性定义方式仅限于验证器,通常类似于下面的方式: <?php namespace app\index\validate; use think\Validate; class User extends Validate { prot

  • 错误: TypeError:无法读取未定义的LoginForm c:/reactjs/hello-world/src/components/accountbox/LoginForm.js的属性“state”:23 2023 value={this.state.input.email}^24 onchange={this.handlechange}25 class=“form-control”26