大佬教程收集整理的这篇文章主要介绍了java – Spring MVC(RESTful API):验证依赖于路径变量的有效负载,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
使用案例:
>让我们使用POST http动词设计RESTful创建操作 – 创建票证,其中创建者(分配者)指定票证受让人
>我们在以下位置创建一个新的“票证”:/ CompanyId / userId / ticket
>我们提供包含assigneEID的票证正文:
{
“assigneEID”:10
}
>我们需要在URL – CompanyId路径变量中验证assigneEID属于公司
至今:
@requestMapping(value="/{CompanyId}/{userID}/ticket",method=POST)
public void createTicket(@Valid @requestBody Ticket newTicket,@PathVariable Long CompanyId,@PathVariable Long userId) {
...
}
>我们可以轻松指定自定义Validator(TicketValidator)(甚至包含依赖项)并验证Ticket实例
>我们不能轻易将CompanyId传递给此验证器!我们需要验证ticket.assigneEID是否属于CompanyId公司.
期望的输出:
>在自定义验证器中访问路径变量的能力
方法一:
1)我们可以将这个获取路径变量逻辑移动到某种基本验证器:
public abstract class BaseValidator implements Validator {
@Override
public Boolean supports(Class> clazz)="" {="" supports="" logic="" }="" @override="" public="" void="" validate(object="" target,errors="" errors)="" {="" some="" base="" validation="" logic="" or="" empty="" if="" there="" isn't="" any="" }="" protected="" string="" getpathvariable(string="" name)="" {="" getting="" current="" request="" (can="" be="" autowired="" -="" depends="" on="" your="" implementation)="" httpservletrequest="" req="HttpServletRequest((ServletRequestAttributes)" requestcontextholder.getrequestattributes()).getrequest();="" if="" (req="" !="null)" {="" getting="" variables="" map="" from="" current="" request=""?>
2)使用TicketValidator实现扩展它:
public class TicketValidator extends BaseValidator {
@Override
public void validate(Object target,Errors errors)
{
// GetTing our CompanyId var
String CompanyId = getPathVariable("CompanyId");
...
// proceed with your validation logic. Note,that all path variables
// is `String`,so you're going to have to cast them (you can do
// this in `BaseValidator` though,by passing `Class` to which you
// want to cast it as a method param). You can also get `null` from
// `getPathVariable` method - you might want to handle it too somehow
}
}
方法二:
我认为值得一提的是,你可以使用SpEL的@PreAuthorize注释来进行这种验证(你可以传递路径变量并向它请求体).如果验证通过,你将获得http 403代码,所以我想这不是你想要的exaclty.
以上是大佬教程为你收集整理的java – Spring MVC(RESTful API):验证依赖于路径变量的有效负载全部内容,希望文章能够帮你解决java – Spring MVC(RESTful API):验证依赖于路径变量的有效负载所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。