| Total Complexity | 5 |
| Total Lines | 24 |
| Duplicated Lines | 0 % |
| Changes | 1 | ||
| Bugs | 0 | Features | 0 |
| 1 | package com.osomapps.pt.tokenemail; |
||
| 8 | @Component |
||
| 9 | public class DataurlValidator implements Validator { |
||
| 10 | private static final String BASE64_PREFIX = ";base64,"; |
||
| 11 | private static final int BASE64_PREFIX_LENGTH = 8; |
||
| 12 | |||
| 13 | @Override |
||
| 14 | public boolean supports(final Class<?> aClass) { |
||
| 15 | return String.class.equals(aClass); |
||
| 16 | } |
||
| 17 | |||
| 18 | @Override |
||
| 19 | public void validate(final Object obj, final Errors errors) { |
||
| 20 | final String dataUrl = (String) obj; |
||
| 21 | if (dataUrl != null) { |
||
| 22 | try { |
||
| 23 | final String encodedString = |
||
| 24 | dataUrl.substring(dataUrl.indexOf(BASE64_PREFIX) + BASE64_PREFIX_LENGTH) |
||
| 25 | .replaceAll("\\s+", ""); |
||
| 26 | int length = Base64.getDecoder().decode(encodedString).length; |
||
| 27 | if (length > 2097152) { |
||
| 28 | errors.reject("dataUrl", "Image cannot be large than 2 megabytes"); |
||
| 29 | } |
||
| 30 | } catch (Exception ex) { |
||
| 31 | errors.reject("dataUrl", "Invalid dataUrl"); |
||
| 32 | } |
||
| 36 |