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 |