private Optional<String> getInternal(String key) { Optional<String> value = Optional.ofNullable(properties.get(key)); if (!value.isPresent()) { // default values cannot be encrypted, so return value as-is. return Optional.ofNullable(definitions.getDefaultValue(key)); } if (encryption.isEncrypted(value.get())) { try { return Optional.of(encryption.decrypt(value.get())); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + key + ". Please check your secret key.", e); } } return value; }
public ScannerProperties(Map<String, String> properties) { encryption = new Encryption(properties.get(CoreProperties.ENCRYPTION_SECRET_KEY_PATH)); Map<String, String> decryptedProps = new HashMap<>(properties.size()); for (Map.Entry<String, String> entry : properties.entrySet()) { String value = entry.getValue(); if (value != null && encryption.isEncrypted(value)) { try { value = encryption.decrypt(value); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + entry.getKey() + ". Please check your secret key.", e); } } decryptedProps.put(entry.getKey(), value); } this.properties = decryptedProps; }
@Test public void isEncrypted() { Encryption encryption = new Encryption(null); assertThat(encryption.isEncrypted("{aes}ADASDASAD")).isTrue(); assertThat(encryption.isEncrypted("{b64}ADASDASAD")).isTrue(); assertThat(encryption.isEncrypted("{abc}ADASDASAD")).isTrue(); assertThat(encryption.isEncrypted("{}")).isFalse(); assertThat(encryption.isEncrypted("{foo")).isFalse(); assertThat(encryption.isEncrypted("foo{aes}")).isFalse(); }
/** * The effective value of the specified property. Can return * {@code null} if the property is not set and has no * defined default value. * <p> * If the property is encrypted with a secret key, * then the returned value is decrypted. * </p> * * @throws IllegalStateException if value is encrypted but fails to be decrypted. */ @CheckForNull public String getString(String key) { String effectiveKey = definitions.validKey(key); Optional<String> value = getRawString(effectiveKey); if (!value.isPresent()) { // default values cannot be encrypted, so return value as-is. return getDefaultValue(effectiveKey); } if (encryption.isEncrypted(value.get())) { try { return encryption.decrypt(value.get()); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + effectiveKey + ". Please check your secret key.", e); } } return value.get(); }
public UserProperties(Map<String, String> properties, @Nullable String pathToSecretKey) { encryption = new Encryption(pathToSecretKey); Map<String, String> decryptedProps = Maps.newHashMap(); for (Map.Entry<String, String> entry : properties.entrySet()) { String value = entry.getValue(); if (value != null && encryption.isEncrypted(value)) { try { value = encryption.decrypt(value); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + entry.getKey() + ". Please check your secret key.", e); } } decryptedProps.put(entry.getKey(), value); } this.properties = Maps.newHashMap(decryptedProps); }
public UserProperties(Map<String, String> properties, @Nullable String pathToSecretKey) { encryption = new Encryption(pathToSecretKey); Map<String, String> decryptedProps = Maps.newHashMap(); for (Map.Entry<String, String> entry : properties.entrySet()) { String value = entry.getValue(); if (value != null && encryption.isEncrypted(value)) { try { value = encryption.decrypt(value); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + entry.getKey() + ". Please check your secret key.", e); } } decryptedProps.put(entry.getKey(), value); } this.properties = Maps.newHashMap(decryptedProps); }
private Optional<String> getInternal(String key) { Optional<String> value = Optional.ofNullable(properties.get(key)); if (!value.isPresent()) { // default values cannot be encrypted, so return value as-is. return Optional.ofNullable(definitions.getDefaultValue(key)); } if (encryption.isEncrypted(value.get())) { try { return Optional.of(encryption.decrypt(value.get())); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + key + ". Please check your secret key.", e); } } return value; }
public ScannerProperties(Map<String, String> properties) { encryption = new Encryption(properties.get(CoreProperties.ENCRYPTION_SECRET_KEY_PATH)); Map<String, String> decryptedProps = new HashMap<>(properties.size()); for (Map.Entry<String, String> entry : properties.entrySet()) { String value = entry.getValue(); if (value != null && encryption.isEncrypted(value)) { try { value = encryption.decrypt(value); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + entry.getKey() + ". Please check your secret key.", e); } } decryptedProps.put(entry.getKey(), value); } this.properties = decryptedProps; }
public String getString(String key) { String value = getClearString(key); if (value != null && encryption.isEncrypted(value)) { try { value = encryption.decrypt(value); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + key + ". Please check your secret key.", e); } } return value; }
/** * The effective value of the specified property. Can return * {@code null} if the property is not set and has no * defined default value. * <p> * If the property is encrypted with a secret key, * then the returned value is decrypted. * </p> * * @throws IllegalStateException if value is encrypted but fails to be decrypted. */ @CheckForNull public String getString(String key) { String effectiveKey = definitions.validKey(key); Optional<String> value = getRawString(effectiveKey); if (!value.isPresent()) { // default values cannot be encrypted, so return value as-is. return getDefaultValue(effectiveKey); } if (encryption.isEncrypted(value.get())) { try { return encryption.decrypt(value.get()); } catch (Exception e) { throw new IllegalStateException("Fail to decrypt the property " + effectiveKey + ". Please check your secret key.", e); } } return value.get(); }