Adobe Experience Cloud(AEC) includes a set of analytics, social, advertising, media optimization, targeting, web experience management, journey orchestration and content management products hosted on Microsoft Azure.
Adobe Experience Cloud(AEC) includes a set of analytics, social, advertising, media optimization, targeting, web experience management, journey orchestration and content management products hosted on Microsoft Azure.
In today’s digital era, businesses want to manage content that is changing continuously and deliver personalized journey to customers. For eg: user A create account to an e-commerce website and submit profile details like age, gender and some preferences. On basis of these, personalized products are shown for this user. Hence business faces these challanges & needs to manage all these use cases in simple manner.
Adobe Experience Manager solves these challenges in digital world. So let's discuss what these are..?
In this article, we can discuss how we can determine the number of servers (or CPU cores) you need for the AEM 6.5 publish environment for an applictaion having simple and complex templates.
Below is the formula to find out number of servers:
complexity = applicationComplexity + ((1-cacheRatio) * templateComplexity)
where:
traffic : The expected peak traffic per second. You can estimate this as the number of page hits per day, divided by 35'000.
Consider below Caching efficiency and traffic
Cache efficiency is crucial for the website speed. The following table shows how many pages per second an optimized AEM system can handle using a reverse proxy, such as the Dispatcher:
Cache ratio | Pages/s (peak) | Million pages/day (average) |
---|---|---|
100% | 1000-2000 | 35-70 |
99% | 910 | 32 |
95% | 690 | 25 |
90% | 520 | 18 |
60% | 220 | 8 |
0% | 100 | 3.5 |
applicationComplexity :
Use 1 for a simple application, 2 for a complex application, or a value in-between:
There are 87 bundles not in AEM as a Cloud Service. Here is the list:
In this blog, we will discuss what New bundles in AEM as a Cloud Service(AEMaaCS) has been introduced.
AEM as a Cloud Service has some new bundles:
In this article, we will learn what exactly is the difference between Bundle and Package.
Bundle is a tightly coupled, dynamically loadable collection of classes, jars, and configuration files that explicitly declare their external dependencies (if any).
A Package is a zip file that contains the content in the form of a file-system serialization (called “vault” serialization) that displays the content from the repository as an easy-to-use-and-edit representation of files and folders. Packages can include content and project-related data.
Happy Coding!
In previous blog, we have learnt What is JWT, Anatomy and its authentication flow. Refer here to
In this blog, we will see how a JWT works via an example. We will create JWT for a specific JSON payload and validate its signature.
Step-1
Step-2
We can generate a signing key using any secure random source.
NTNv7j0TuYARvmNMmWXo6fKvM4o6nv/aUi9ryX38ZH+L1bkrnD1ObOQ8JAUmHCBq7Iy7otZcyAagBLHVKvvYaIpmMuxmARQ97jUVG16Jkpkp1wXOPsrF9zwew6TpczyHkHgX5EuLg2MeBuiT/qJACs1J0apruOOJCg/gOtkjB4c=
HMAC + SHA256
, also known as HS256
.Base64 + HMACSHA256
function on the above concatenated stringDependent on Apache Commons Codec to encode in base64.
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
public class ApiSecurityExample {
public static void main(String[] args) {
try {
String secret = "secret";
String message = "Message";
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
sha256_HMAC.init(secret_key);
String hash = Base64.encodeBase64String(sha256_HMAC.doFinal(message.getBytes()));
System.out.println(hash);
}
catch (Exception e){
System.out.println("Error");
}
}
}
Create JWT:
Append the generated signature like <header>.<body>.<signature>
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
).{"typ":"JWT","alg":"HS256"}
typ
field’s value is JWT
and the alg
is HS256
. It would reject the JWT if fails to verify.Base64URLSafe(HMACSHA256(...))
If the incoming JWT’s body is different, this step will generate a different signature.
eyJ1c2VySWQiOiJhYmNkMTIzIiwiZXhwaXJ5IjoxNjQ2NjM1NjExMzAxfQ
) to give us {"userId":"abcd123","expiry":1646635611301}
.expiry
time (since the JWT is expired), JWT is rejected.Elasticsearch and Apache SolrCloud are both powerful, distributed search engines built on top of Apache Lucene. Both Elasticsearch and S...