@ -44,6 +44,8 @@ import java.net.URI;
import java.net.URISyntaxException ;
import java.util.HashMap ;
import java.util.Map ;
import java.util.regex.Matcher ;
import java.util.regex.Pattern ;
/ * *
* Contains util methods for synapse gateway authentication handler
@ -62,21 +64,47 @@ public class Utils {
public static IOTServerConfiguration initConfig ( ) {
try {
String IOTServerAPIConfigurationPath =
CarbonUtils . getCarbonConfigDirPath ( ) + File . separator + IOT_APIS_CONFIG_FILE ;
String IOTServerAPIConfigurationPath = CarbonUtils . getCarbonConfigDirPath ( ) + File . separator
+ IOT_APIS_CONFIG_FILE ;
File file = new File ( IOTServerAPIConfigurationPath ) ;
Document doc = Utils . convertToDocument ( file ) ;
JAXBContext fileContext = JAXBContext . newInstance ( IOTServerConfiguration . class ) ;
Unmarshaller unmarshaller = fileContext . createUnmarshaller ( ) ;
return ( IOTServerConfiguration ) unmarshaller . unmarshal ( doc ) ;
IOTServerConfiguration iotServerConfiguration = ( IOTServerConfiguration ) unmarshaller . unmarshal (
doc ) ;
iotServerConfiguration . setHostname ( replaceProperties ( iotServerConfiguration . getHostname ( ) ) ) ;
iotServerConfiguration . setVerificationEndpoint (
replaceProperties ( iotServerConfiguration . getVerificationEndpoint ( ) ) ) ;
iotServerConfiguration . setDynamicClientRegistrationEndpoint (
replaceProperties ( iotServerConfiguration . getDynamicClientRegistrationEndpoint ( ) ) ) ;
iotServerConfiguration . setOauthTokenEndpoint (
replaceProperties ( iotServerConfiguration . getOauthTokenEndpoint ( ) ) ) ;
return iotServerConfiguration ;
} catch ( JAXBException | APIMCertificateMGTException e ) {
log . error ( "Error occurred while initializing Data Source config" , e ) ;
return null ;
}
}
/ * *
* This method gets the values from system variables and sets to xml .
* /
public static String replaceProperties ( String text ) {
String regex = "\\$\\{(.*?)\\}" ;
Pattern pattern = Pattern . compile ( regex ) ;
Matcher matchPattern = pattern . matcher ( text ) ;
while ( matchPattern . find ( ) ) {
String sysPropertyName = matchPattern . group ( 1 ) ;
String sysPropertyValue = System . getProperty ( sysPropertyName ) ;
if ( sysPropertyValue ! = null & & ! sysPropertyName . isEmpty ( ) ) {
text = text . replaceAll ( "\\$\\{(" + sysPropertyName + ")\\}" , sysPropertyValue ) ;
}
}
return text ;
}
/ * *
* This class build the iot - api - config . xml file .
* @param file