mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
ACE-2919 - ACE-2836 Not all properties can be used when they were encrypted by the Encrypted Properties Management tool
- made encrypted properties work with subsystems. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@91072 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -13,6 +13,8 @@
|
|||||||
<import resource="classpath*:alfresco/extension/mt/mt-context.xml"/>
|
<import resource="classpath*:alfresco/extension/mt/mt-context.xml"/>
|
||||||
<import resource="classpath:alfresco/encryption-context.xml" />
|
<import resource="classpath:alfresco/encryption-context.xml" />
|
||||||
<import resource="classpath*:alfresco/enterprise/jmx/jmx-context.xml" />
|
<import resource="classpath*:alfresco/enterprise/jmx/jmx-context.xml" />
|
||||||
|
<import resource="classpath:alfresco/spring/*-context.xml" />
|
||||||
|
<import resource="classpath*:alfresco/enterprise/spring/*-context.xml" />
|
||||||
<import resource="classpath:alfresco/core-services-context.xml" />
|
<import resource="classpath:alfresco/core-services-context.xml" />
|
||||||
<import resource="classpath:alfresco/copy-services-context.xml" />
|
<import resource="classpath:alfresco/copy-services-context.xml" />
|
||||||
<import resource="classpath:alfresco/public-services-context.xml" />
|
<import resource="classpath:alfresco/public-services-context.xml" />
|
||||||
|
@@ -4,8 +4,6 @@
|
|||||||
<!-- Core and miscellaneous bean definitions -->
|
<!-- Core and miscellaneous bean definitions -->
|
||||||
<beans>
|
<beans>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- -->
|
<!-- -->
|
||||||
<!-- PERSISTENCE -->
|
<!-- PERSISTENCE -->
|
||||||
<!-- -->
|
<!-- -->
|
||||||
@@ -129,6 +127,10 @@
|
|||||||
<property name="propertyDefaults">
|
<property name="propertyDefaults">
|
||||||
<ref local="global-properties" />
|
<ref local="global-properties" />
|
||||||
</property>
|
</property>
|
||||||
|
|
||||||
|
<property name="encryptedPropertyDefaults">
|
||||||
|
<ref bean="encrypted-properties" />
|
||||||
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
15
config/alfresco/spring/encrypted-properties-context.xml
Normal file
15
config/alfresco/spring/encrypted-properties-context.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version='1.0' encoding='UTF-8'?>
|
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:util="http://www.springframework.org/schema/util"
|
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
|
||||||
|
|
||||||
|
|
||||||
|
<util:map id="encrypted-properties" >
|
||||||
|
<!-- A dummy value -->
|
||||||
|
<entry key="empty.enc" >
|
||||||
|
<value>empty</value>
|
||||||
|
</entry>
|
||||||
|
</util:map>
|
||||||
|
|
||||||
|
</beans>
|
@@ -86,6 +86,9 @@ public abstract class AbstractPropertyBackedBean implements PropertyBackedBean,
|
|||||||
|
|
||||||
/** Property defaults provided by the installer or System properties. */
|
/** Property defaults provided by the installer or System properties. */
|
||||||
private Properties propertyDefaults;
|
private Properties propertyDefaults;
|
||||||
|
|
||||||
|
/** Property defaults provided by the JASYPT decryptor. */
|
||||||
|
private Properties encryptedPropertyDefaults;
|
||||||
|
|
||||||
/** Resolves placeholders in the property defaults. */
|
/** Resolves placeholders in the property defaults. */
|
||||||
private DefaultResolver defaultResolver = new DefaultResolver();
|
private DefaultResolver defaultResolver = new DefaultResolver();
|
||||||
@@ -222,6 +225,12 @@ public abstract class AbstractPropertyBackedBean implements PropertyBackedBean,
|
|||||||
{
|
{
|
||||||
this.propertyDefaults = propertyDefaults;
|
this.propertyDefaults = propertyDefaults;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setEncryptedPropertyDefaults(Properties propertyDefaults)
|
||||||
|
{
|
||||||
|
this.encryptedPropertyDefaults = propertyDefaults;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the property defaults provided by the installer or System properties.
|
* Gets the property defaults provided by the installer or System properties.
|
||||||
@@ -242,7 +251,25 @@ public abstract class AbstractPropertyBackedBean implements PropertyBackedBean,
|
|||||||
*/
|
*/
|
||||||
protected String resolveDefault(String name)
|
protected String resolveDefault(String name)
|
||||||
{
|
{
|
||||||
String value = this.propertyDefaults.getProperty(name);
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
if(propertyDefaults != null)
|
||||||
|
{
|
||||||
|
for( Object key : propertyDefaults.keySet())
|
||||||
|
{
|
||||||
|
props.setProperty((String)key, propertyDefaults.getProperty((String)key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(encryptedPropertyDefaults != null)
|
||||||
|
{
|
||||||
|
for( Object key : encryptedPropertyDefaults.keySet())
|
||||||
|
{
|
||||||
|
props.setProperty((String)key, encryptedPropertyDefaults.getProperty((String)key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String value = props.getProperty(name);
|
||||||
if (value != null)
|
if (value != null)
|
||||||
{
|
{
|
||||||
value = this.defaultResolver.resolveValue(value);
|
value = this.defaultResolver.resolveValue(value);
|
||||||
@@ -1094,8 +1121,24 @@ public abstract class AbstractPropertyBackedBean implements PropertyBackedBean,
|
|||||||
*/
|
*/
|
||||||
public String resolveValue(String val)
|
public String resolveValue(String val)
|
||||||
{
|
{
|
||||||
return AbstractPropertyBackedBean.this.propertyDefaults == null ? null : replacePlaceholders(
|
Properties props = new Properties();
|
||||||
val, AbstractPropertyBackedBean.this.propertyDefaults);
|
|
||||||
|
if(propertyDefaults != null)
|
||||||
|
{
|
||||||
|
for( Object key : propertyDefaults.keySet())
|
||||||
|
{
|
||||||
|
props.setProperty((String)key, propertyDefaults.getProperty((String)key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(encryptedPropertyDefaults != null)
|
||||||
|
{
|
||||||
|
for( Object key : encryptedPropertyDefaults.keySet())
|
||||||
|
{
|
||||||
|
props.setProperty((String)key, encryptedPropertyDefaults.getProperty((String)key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return replacePlaceholders(val, props);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user