
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
@adobe/aem-cs-source-migration-dispatcher-converter
Advanced tools
AEM as a Cloud Service Dispatcher Converter tool
aem-cs-source-migration-dispatcher-converter
provides the capability for configuring existing
on-premise or Adobe Managed Services Dispatcher configurations to AEM as a Cloud Service
compatible Dispatcher configuration.
The goal of this project is to make it as simple as possible for AEM developers to migrate existing AEM Dispatcher configurations to AEM as a Cloud Service compatible dispatcher configurations.
While it is recommended to use this tool via our AIO CLI plugin for source migration (refer to aio-cli-plugin-aem-cloud-service-migration), it can also be executed standalone.
This project uses node and npm. Go check them out if you don't have them locally installed.
It can be installed like any other Node.js module.
$ npm install @adobe/aem-cs-source-migration-dispatcher-converter
To add the module to your Node.js
project:
require
function in the module in the javascript file where it will be consumed:const DispatcherConverter = require('@adobe/aem-cs-source-migration-dispatcher-converter');
dispatcher configuration path
provided in the config.yaml
is used to copy the configuration to the target folder
.dispatcher configurations
are processed by the tool and converted dispatcher configurations
are placed
under target folder
.In this part below non-conforming segments are removed:
Unused Folders
are removedNon Publish Vhost Files
are removedVhost sections not referring to Port 80
are removedVariables
used in configuration can also be renamed as per the requirement.
For On Premise
configurations, additional variables can be defined in variablesToReplace
section in config file
to be replaced.In this phase the tool
changes the configuration
dependent on httpd.conf
which includes below operations:
virtualhost
files.
<VirtualHost>
entries that match host names and allow Apache to handle each domain traffic with different rules.available_vhosts
directory and enabled with a symbolic link
in the enabled_vhosts
directory.symlinks
for virtualhost
files in enabled vhost
section.non-whitelisted directives
in the configuration.In this phase the tool
changes the configuration
dependent on dispatcher.any
which includes below operations:
farm
files.
farm
with different rules
.available_farms
directory and enabled with a symbolic link
in the enabled_farms
directory.symlinks
for farm
files under enabled farms
section.render
files
farm
you define, in the renders
section.rules
files
filter
files
.farm
files. It has a set of rules that change what traffic should be filtered out and not make it to the backend.clientheaders
files
.farm
files. It specifies what request headers should be forwarded to the backend.rewrite
files.
.vhost
files. It has a set of rewrite rules
for mod_rewrite
.dispatcher-converter-report.md
.To execute the repository-modernizer tool locally :
git clone git@github.com:adobe/aem-cloud-service-source-migration.git
to clone the
repository locallydispatcher-converter
foldernpm install
to install all the required dependenciesexecutors
folder:
config.yaml
. Refer to Configurations
sections below to know more.node main.js
to execute the tool on customer's Adobe Managed Services (AMS) dispatcher
configurationsnode singleFileMain.js
to execute the tool on customer's on-Premise dispatcher
configurationstarget/dispatcher/src/
will contain the resulting restructured projectsThe dispatcher converter configuration uses YAML to define necessary configurations. Due to the known nature of Adobe Managed Services (AMS) dispatcher configurations, the configurations required for converting them to be AEM as a Cloud Service compatible dispatcher configurations, are relatively simple. However, since there are fewer restrictions to on-premise implementations, more specific configurations are necessary.
As sample configuration is below:
Property | Description |
---|---|
sdkSrc* | Path to your dispatcher sdk source code. You must include the src folder itself in the path. |
onPremise/dispatcherAnySrc | Path to the dispatcher.any file. |
onPremise/httpdSrc | Path to the httpd.conf file (the main apache config file) - If vhostsToConvert is not specified you can use this property to find vhosts by parsing the main apache file. |
onPremise/vhostsToConvert | Array of paths to vhosts files and/or vhost folders containing vhost files you wish to convert to cloud service configurations. |
onPremise/variablesToReplace | Array of mapped objects that replace existing variables with new variables. The original variable is first and the variable to replace is second. |
onPremise/appendToVhosts | This can be a file that you want to append to every vhost file in case you need logic added to all configurations. This is useful to replace logic that was once stored in your main apache config file. |
onPremise/pathToPrepend | Array of paths to existing dispatcher configuration root folders to scan for the included files. These paths help to map includes in the configurations to their current location in the provided folder structure. |
In case the files are distributed across all the folders use command for i in $(find pwd -type d); do echo "- \"$i/\""; done for unix based system and dir /s /b /o:n /ad for windows to generate folder/sub-folder and paste the output here. | |
onPremise/portsToMap | Only port 80 is supported in AEM as a Cloud Service - if you were using a non standard port here and need it mapped in AEM, provide it here - all other vhosts with non default ports will be removed. |
ams/cfg* | Path to dispatcher configuration folder (expected immediate subfolders - conf , conf.d , conf.dispatcher.d and conf.modules.d ) |
* denotes required field |
dispatcherConverter:
# Path to the src folder of the dispatcher sdk. You must include the src folder itself in the path.
sdkSrc: "/Users/{username}/some/path/to/dispatcher-sdk-2.0.21/src"
# Add information about on-premise dispatcher configuration here
onPremise:
# Path to the dispatcher.any file
dispatcherAnySrc: "/Users/{username}/some/path/to/dispatcher.any"
# Path to the httpd.conf file (the main apache config file)
# If `vhostsToConvert` is not specified you can use this property to find vhosts by parsing the main apache file
httpdSrc: "/Users/{username}/some/path/to/httpd.conf"
# Array of paths to vhosts files and/or vhost folders containing vhost files you wish to convert to cloud service configurations
vhostsToConvert:
- "/Users/{username}/some/path/to/mywebsite.vhost"
- "/Users/{username}/some/path/to/myotherwebsite.vhost"
- "/Users/{username}/some/path/to/vhostfolder"
# Array of mapped objects that replace existing variables with new variables.
# The original variable is first and the variable to replace is second
variablesToReplace:
TIER: "ENVIRONMENT_TYPE"
# This can be a file that you want to append to every vhost file in case you need logic added to all configurations.
# This is useful to replace logic that was once stored in your main apache config file.
appendToVhosts:
- "/Users/{username}/some/path/to/appendedContent.conf"
# Array of paths to existing dispatcher configuration root folders to scan for the included files.
# These paths help to map includes in the configurations to their current location in the provided folder structure.
# In case the files are distributed across all the folders use command `for i in $(find `pwd` -type d); do echo "- \"$i/\""; done` for unix based system
# and `dir /s /b /o:n /ad` for windows to generate folder/sub-folder and paste the output here.
pathToPrepend:
- "/Users/{username}/some/path/to/your/httpd/content/"
# Only port 80 is supported in AEM as a Cloud Service - if you were using a non standard port here and need it mapped
# in AEM, provide it here - all other vhosts with non default ports will be removed.
portsToMap:
- 8000
- 8080
# Add information about Adobe Managed Services dispatcher configuration here
ams:
# Path to dispatcher configuration folder
# (expected immediate subfolders - conf, conf.d, conf.dispatcher.d and conf.modules.d)
cfg: "/Users/{username}/some/path/to/dispatcher/folder"
[NOTE] For more information on Dispatcher Validator, refer to Adobe Experience Manager as a Cloud Service SDK.
Run the dispatcher validator on the converted configurations, with the dispatcher
sub-command:
$ validator dispatcher
If you encounter errors about missing include files, check whether you correctly renamed those files.
If you see errors concerning undefined variable PUBLISH_DOCROOT
, rename it to DOCROOT
.
For troubleshooting other errors, refer to Troubleshooting & Local Validation of Dispatcher Configuration.
Skyline Guidelines
can be removed.Contributions are welcomed! Refer to Contributing Guide for more information.
This project is licensed under the Apache V2 License. Refer to LICENSE for more information.
FAQs
AEM as a Cloud Service Dispatcher Converter tool
We found that @adobe/aem-cs-source-migration-dispatcher-converter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 23 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.