簡體   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