Личный кабинет на AEM за секунды

Специалисты Softwerke разработали готовое решение, которое позволит вам стартовать новый проект на Adobe Experience Manager (далее AEM) за секунды. Решение включает стандартную функциональность веб-сайта с личным кабинетом пользователя, основано на многолетнем опыте разработки веб-сайтов на AEM, использует современные технологии и библиотеки.

Содержание

1.Описание проекта «Личный кабинет на AEM»

Решение включает базовую функциональность стандартного личного кабинета веб-сайта:

  • регистрация и аутентификация пользователей
  • страница управления данными пользователя
  • рассылка email уведомлений
  • сервисы изменения и восстановления пароля
  • хранение данных пользователей в отдельной SQL базе данных
  • взаимодействие с базой данных с помощью ORM/Hibernate — читайте, как установить Hibernate 5.4.5/JPA 2.2 в AEM 6.4.4

2. Применяемые технологии и библиотеки

  • Java 8 — одна из самых распространенных LTS версий Java
  • Adobe Experience Manager 6.4+ — поддержка последних версий AEM
  • Maven 3 — один из самых популярных инструментов для сборки проекта
  • OSGi R6 annotations — новый стандарт для OSGi сервисов и компонентов, сменивший аннотации Apache Felix SCR
  • Sling Models — библиотека для удобной передачи конфигурации компонента из AEM Author диалога на frontend
  • Vue.js — современная и быстрая библиотека для реактивных frontend компонентов, заменяющая старомодный и негибкий подход библиотеки jQuery
  • MySQL или другая SQL база данных — безопасное хранилище данных пользователей
  • Hibernate ORM 5.4.5/JPA 2.2 — объектно-реляционный mapping данных из базы данных на Java объекты

3. Описание Maven архетипа

Использование готового Maven архетипа позволяет максимально быстро запустить новый AEM проект с личным кабинетом. Требуется лишь реализация требуемого заказчиком дизайна. Расширение функциональности требует меньших вложений, поскольку базовая функциональность реализована на основе AEM best practices.

3.1. Создание проекта на основе архетипа

При развертывании кода проекта из архетипа требуется задать следующие свойства:

  • groupId — Maven project groupId
  • artifactId — Maven project artifactId
  • version — Maven project version
  • package — название корневого Java пакета
  • artifactNameInDescription — название проекта в классах, сервисах, компонентах и т.п.
  • appsFolderName — название корневой /apps папки проекта в AEM
  • componentGroupName — название группы UI компонентов в AEM
  • contentFolderName — название корневой /content папки проекта в AEM
  • packageGroup — название группы AEM пакета (content package group)
  • brandId — идентификатор бренда заказчика
  • siteName — название сайта
  • javascriptNamespace — название пространства имен в JavaScript файлах
  • optionIncludeErrorHandler — включение отдельной страницы для HTTP 404

3.2. AEM Best Practices

Maven архетип включает следующие «лучшие практики» AEM разработки:

  • использование системных AEM пользователей для чтения и записи данных
  • OSGi конфигурация для подключения MySQL/Hibernate
  • OSGi конфигурация для свойств проекта типа времени сессии пользователя и ссылки восстановления пароля, redirect страниц и т.п.
  • проверка всех вводимых пользователем данных на клиенте и сервере
  • использование Maven профилей для установки пакетов приложения на AEM Author и Publish

3.3. Компонент для регистрации пользователей User Registration

Включает настройку всех полей и автоматическую аутентификацию нового пользователя при успешной регистрации (autologin).

3.4. Компонент для аутентификации пользователей User Login

Реализует вход пользователей через классическую HTML форму.

3.5. Компонент для управления данными пользователя User Profile

Включает настройку видимости всех полей формы и типа отображения компонента (встроенный или в модальном окне).

3.6. Компонент для смены пароля Password Change

Реализует смену пароля для аутентифицированного пользователя.

3.7. Компонент для восстановления пароля Password Reset

Реализует восстановление пароля для зарегистрированного пользователя с помощью email рассылки с уникальной ссылкой.

Kickstart Your AEM Website in Seconds

Authors: Svetlana Suvorova, Alexander Markov

Want to kickstart your Adobe Experience Manager (further AEM) based website in seconds? Softwerke experts are ready to help you launch a new AEM project with a production ready deployment solution built with AEM best practices and up-to-date frameworks.

Contents

1. What’s Included

Our AEM project kickstart solution provides typical website functionality:

2. Used Techonologies and Frameworks

  • Java 8 — one of the most wide-spread LTS Java versions
  • Adobe Experience Manager 6.4+ — latest AEM versions
  • Maven 3 — one of the most popular project build tools
  • OSGi R6 annotations — new standard for OSGi services and components which replaced old-fashioned Apache Felix SCR annotations
  • Sling Models — mapping framework to pass component configuration from AEM Author dialog to frontend
  • Vue.js — modern and fast framework for reactive frontend components which eliminates old style jQuery approach
  • MySQL or any other SQL database — secure storage for the user data
  • Hibernate ORM 5.4.5/JPA 2.2 — out-of-the-box mapping of your new entities to backend Java objects

3. Maven Archetype

Maven archetype provides unique opportunity to start a new AEM project as fast as possible by producing the ready-to-deploy code in seconds. The only thing needed is design required by the customer. Any functionality enhancement needs less effort because implemented components are built with AEM best practices.

3.1. Project Kickstart from an Archetype

Maven archetype provides the following properties for project creation:

  • groupId — Maven project groupId
  • artifactId — Maven project artifactId
  • version — Maven project version
  • package — root Java package
  • artifactNameInDescription — project title in classes, services, components etc
  • appsFolderName — name of the AEM project folder under /apps
  • componentGroupName — group title for AEM UI components
  • contentFolderName — name of the AEM content folder under /content
  • packageGroup — AEM content package group title
  • brandId — customer brand identifier
  • siteName — site title
  • javascriptNamespace — namespace for JavaScript files
  • optionIncludeErrorHandler — y/n to include a custom 404 Not Found page

3.2. AEM Best Practices

Our Maven archetype features several common AEM development best practices:

  • AEM system users for reading and writing data
  • OSGi configuration for Hibernate and SQL database
  • OSGi configuration for runtime application parameters like user session lifetime, password restore link expiration, redirect pages etc
  • validation of all user generated data on frontend and backend
  • Maven profiles for content package deployment to AEM Author and Publish

3.3. User Registration AEM Component

User registration component provides form configuration on AEM Author and automatic user authentication after successful registration aka autologin.

3.4. User Login AEM Component

User login component implements user autentication with a classic HTML form.

3.5. User Profile AEM Component

User profile component includes configuration of the field visibility and view types (embedded or modal window).

3.6. Password Change AEM Component

Password change component implements password modification for an authenticated user

3.7. Password Reset AEM Component

Password reset component provides password recovery for a registered user via an email notification with a unique link.