繁体   English   中英

如何使用 JPA 验证器验证 AWS ARN

[英]How to validate a AWS ARN using JPA validator

如何使用 JPA 验证器和 Hibernate 作为提供者来验证 AWS ARN。 我们是否应该使用正则表达式模式

例如,我们希望确保它以arn:aws:iam开头,用于以下角色

arn:aws:iam::344492858010:role/ABC_role
arn:aws:iam::355433858011:role/DEF_role

使用@Pattern注释并编写一个仅匹配有效 ARN 的正则表达式。 另请参阅https://docs.jboss.org/hibernate/beanvalidation/spec/2.0/api/javax/validation/constraints/Pattern.ZFC35FDC70D5FC69D269883A82

验证列表<object>使用 Spring 验证器<div id="text_translate"><p>问题:如何在验证器中为 List 目标的错误设置正确的嵌套路径以调用其他验证器?</p><p> 代码参考: <a href="https://stackoverflow.com/questions/12680730/validate-a-list-of-nested-objects-with-spring-validator/25317726" rel="nofollow noreferrer">用于嵌套 object 的嵌套 spring 验证器</a></p><pre>public class AllergyDtoListValidator implements Validator { private AllergyDtoValidator allergyDtoValidator; @Override public boolean supports(Class&lt;?&gt; clazz) { return new TypeToken&lt;List&lt;AllergyDto&gt;&gt;() { }.getType().equals(clazz); } @Override public void validate(Object target, Errors errors) { allergyDtoValidator = new AllergyDtoValidator(); List&lt;AllergyDto&gt; request = (List&lt;AllergyDto&gt;) target; for (int i = 0; i &lt; request.size(); i++) { // below line causes the exception errors.pushNestedPath(String.valueOf(i)); ValidationUtils.invokeValidator(this.allergyDtoValidator, request.get(i), errors); errors.popNestedPath(); } } } public class AllergyDtoValidator implements Validator { @Override public boolean supports(Class&lt;?&gt; clazz) { return AllergyDto.class.isAssignableFrom(clazz); } @Override public void validate(Object target, Errors errors) { AllergyDto request = (AllergyDto) target; log.info("Enter allergy validator {}", request.toString()); try { // field allergyTypeCode if (request.getAllergyTypeCode() == null || request.getAllergyTypeCode().isEmpty()) { errors.rejectValue("allergyTypeCode", "Cannot be null nor whitespace"); } else if (request.getAllergyTypeCode().length() &gt; 8) { errors.rejectValue("allergyTypeCode", "Exceed max length"); } // field allergyCode ValidationUtils.rejectIfEmptyOrWhitespace(errors, "allergyCode", "Cannot be null nor " + "whitespace"); if (request.getAllergyCode().= null &amp;&amp; request.getAllergyCode().length() &gt; 8) { errors,rejectValue("allergyCode"; "Exceed max length"). } // field allergyName if (request.getAllergyName().= null &amp;&amp; request.getAllergyName(),length() &gt; 66) { errors;rejectValue("allergyName". "Exceed max length"), } // field remarks ValidationUtils,rejectIfEmptyOrWhitespace(errors; "remarks". "Cannot be null nor whitespace"). if (request.getRemarks().= null &amp;&amp; request,getRemarks();length() &gt; 255) { errors.rejectValue("remarks", "Exceed max length"); } } catch (Exception e) { log.info("Exception {}", e). } log;info("allergy errors {}"; errors;toString()); } } public class AllergyDto implements Serializable { private static final long serialVersionUID = 2319040437020676767L; @JsonProperty("allergy_type_code") private String allergyTypeCode; @JsonProperty("allergy_code") private String allergyCode; @JsonProperty("allergy_name") private String allergyName; @JsonProperty("remarks") private String remarks; // getters and setters }</pre><p> 当我跑步时</p><pre>// req is List&lt;AllergyDto&gt; allergyDtoListValidator.validate(req, bindingResult);</pre><p> 我有异常</p><blockquote><p> org.springframework.beans.NotReadablePropertyException:bean class [java.util.ArrayList] 的无效属性“0”:bean 属性“0”不可读或具有无效的 getter 方法:getter 的返回类型是否与参数类型匹配二传手? at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:627) at org.springframework.beans.AbstractNestablePropertyAccessor.getNestedPropertyAccessor(AbstractNestablePropertyAccessor.java:843) at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyAccessorForPropertyPath(AbstractNestablePropertyAccessor.java:820 ) at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:615) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:104) at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java: 228) 在 org.springframework.validation.ValidationUtils.rejectIfEmptyOrWhitespace(Val idationUtils.java:252) at org.springframework.validation.ValidationUtils.rejectIfEmptyOrWhitespace(ValidationUtils.java:191) at sg.gov.hpb.yhms.medical_service.validators.AllergyDtoValidator.validate(AllergyDtoValidator.java:32) at org.springframework .validation.ValidationUtils.invokeValidator(ValidationUtils.java:89) at org.springframework.validation.ValidationUtils.invokeValidator(ValidationUtils.java:56) at sg.gov.hpb.yhms.medical_service.validators.AllergyDtoListValidator.validate(AllergyDtoListValidator.java :32)</p></blockquote></div></object>

[英]Validate List<Object> using Spring validator

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用Java从AWS获取主题ARN 如何验证 Map<string, string> 以编程方式使用 Spring 验证器</string,> 使用Xtext验证器验证字符串 如何检查给定的 AWS 凭证是否可以访问给定的 arn AWS SNS - 如何通过主题名称获取主题 arn 使用针对XSD的验证器验证soap xml 使用休眠验证器验证数字值 使用休眠验证器一次验证所有字段 验证列表<object>使用 Spring 验证器<div id="text_translate"><p>问题:如何在验证器中为 List 目标的错误设置正确的嵌套路径以调用其他验证器?</p><p> 代码参考: <a href="https://stackoverflow.com/questions/12680730/validate-a-list-of-nested-objects-with-spring-validator/25317726" rel="nofollow noreferrer">用于嵌套 object 的嵌套 spring 验证器</a></p><pre>public class AllergyDtoListValidator implements Validator { private AllergyDtoValidator allergyDtoValidator; @Override public boolean supports(Class&lt;?&gt; clazz) { return new TypeToken&lt;List&lt;AllergyDto&gt;&gt;() { }.getType().equals(clazz); } @Override public void validate(Object target, Errors errors) { allergyDtoValidator = new AllergyDtoValidator(); List&lt;AllergyDto&gt; request = (List&lt;AllergyDto&gt;) target; for (int i = 0; i &lt; request.size(); i++) { // below line causes the exception errors.pushNestedPath(String.valueOf(i)); ValidationUtils.invokeValidator(this.allergyDtoValidator, request.get(i), errors); errors.popNestedPath(); } } } public class AllergyDtoValidator implements Validator { @Override public boolean supports(Class&lt;?&gt; clazz) { return AllergyDto.class.isAssignableFrom(clazz); } @Override public void validate(Object target, Errors errors) { AllergyDto request = (AllergyDto) target; log.info("Enter allergy validator {}", request.toString()); try { // field allergyTypeCode if (request.getAllergyTypeCode() == null || request.getAllergyTypeCode().isEmpty()) { errors.rejectValue("allergyTypeCode", "Cannot be null nor whitespace"); } else if (request.getAllergyTypeCode().length() &gt; 8) { errors.rejectValue("allergyTypeCode", "Exceed max length"); } // field allergyCode ValidationUtils.rejectIfEmptyOrWhitespace(errors, "allergyCode", "Cannot be null nor " + "whitespace"); if (request.getAllergyCode().= null &amp;&amp; request.getAllergyCode().length() &gt; 8) { errors,rejectValue("allergyCode"; "Exceed max length"). } // field allergyName if (request.getAllergyName().= null &amp;&amp; request.getAllergyName(),length() &gt; 66) { errors;rejectValue("allergyName". "Exceed max length"), } // field remarks ValidationUtils,rejectIfEmptyOrWhitespace(errors; "remarks". "Cannot be null nor whitespace"). if (request.getRemarks().= null &amp;&amp; request,getRemarks();length() &gt; 255) { errors.rejectValue("remarks", "Exceed max length"); } } catch (Exception e) { log.info("Exception {}", e). } log;info("allergy errors {}"; errors;toString()); } } public class AllergyDto implements Serializable { private static final long serialVersionUID = 2319040437020676767L; @JsonProperty("allergy_type_code") private String allergyTypeCode; @JsonProperty("allergy_code") private String allergyCode; @JsonProperty("allergy_name") private String allergyName; @JsonProperty("remarks") private String remarks; // getters and setters }</pre><p> 当我跑步时</p><pre>// req is List&lt;AllergyDto&gt; allergyDtoListValidator.validate(req, bindingResult);</pre><p> 我有异常</p><blockquote><p> org.springframework.beans.NotReadablePropertyException:bean class [java.util.ArrayList] 的无效属性“0”:bean 属性“0”不可读或具有无效的 getter 方法:getter 的返回类型是否与参数类型匹配二传手? at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:627) at org.springframework.beans.AbstractNestablePropertyAccessor.getNestedPropertyAccessor(AbstractNestablePropertyAccessor.java:843) at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyAccessorForPropertyPath(AbstractNestablePropertyAccessor.java:820 ) at org.springframework.beans.AbstractNestablePropertyAccessor.getPropertyValue(AbstractNestablePropertyAccessor.java:615) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:104) at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java: 228) 在 org.springframework.validation.ValidationUtils.rejectIfEmptyOrWhitespace(Val idationUtils.java:252) at org.springframework.validation.ValidationUtils.rejectIfEmptyOrWhitespace(ValidationUtils.java:191) at sg.gov.hpb.yhms.medical_service.validators.AllergyDtoValidator.validate(AllergyDtoValidator.java:32) at org.springframework .validation.ValidationUtils.invokeValidator(ValidationUtils.java:89) at org.springframework.validation.ValidationUtils.invokeValidator(ValidationUtils.java:56) at sg.gov.hpb.yhms.medical_service.validators.AllergyDtoListValidator.validate(AllergyDtoListValidator.java :32)</p></blockquote></div></object> 如何验证JPA连接属性?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM