Sto usando Spring Boot 1.2.3
e vorrei capire se è possibile decodificare un valore di una proprietà prima dell'iniezione in un bean annotato con @ConfigurationProperties
.Come decodificare le proprietà utilizzate nei bean @ConfigurationProperties?
Supponiamo che io ho il seguente in un file application.properties
:
appprops.encryptedProperty=ENC(ENCRYPTEDVALUE)
e un'applicazione di esempio in questo modo:
package aaa.bb.ccc.propertyresearch;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import javax.annotation.PostConstruct;
@SpringBootApplication
@EnableConfigurationProperties(PropertyResearchApplication.ApplicationProperties.class)
public class PropertyResearchApplication {
public static void main(String[] args) {
SpringApplication.run(PropertyResearchApplication.class, args);
}
@ConfigurationProperties("appprops")
public static class ApplicationProperties {
private String encryptedProperty;
@PostConstruct
public void postConstruct() throws Exception {
System.out.println("ApplicationProperties --> appprops.encryptedProperty = " + encryptedProperty);
}
public String getEncryptedProperty() {
return encryptedProperty;
}
public void setEncryptedProperty(String encryptedProperty) {
this.encryptedProperty = encryptedProperty;
}
}
}
In passato ho usato una consuetudine PropertySourcesPlaceholderConfigurer
per raggiungere questo obiettivo ma richiede la creazione di una struttura come la seguente:
@Component
public class ApplicationProperties {
@Value("${appprops.enrcyptedProperty}")
private String encryptedProperty;
@PostConstruct
public void postConstruct() throws Exception {
System.out.println("ApplicationProperties --> appprops.encryptedProperty = " + encryptedProperty);
}
public String getEncryptedProperty() {
return encryptedProperty;
}
}
Anche se di per sé non è male, mi piacerebbe vedere se posso sfruttare le sottigliezze di @ConfigurationProperties
con proprietà crittografate.
Hai visto questo: http://stackoverflow.com/questions/24451110/creating-a-custom-jasypt-propertysource-in-springboot – koe
OP trovato la risposta su http://stackoverflow.com/a/24486190/4094797. Si prega di controllare il link per trovare la soluzione. – user2339071