<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Change the landing page from site-index.jsp to landing-page.jsp in Alfresco Forum</title>
    <link>https://connect.hyland.com/t5/alfresco-forum/change-the-landing-page-from-site-index-jsp-to-landing-page-jsp/m-p/492656#M40409</link>
    <description>&lt;P&gt;Hi, I did the following steps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="633"&gt;&lt;P&gt;C:\DATI\Macro\Java\projects-test\eclipse\alfresco&amp;gt;&lt;STRONG&gt;mvn archetype:generate -Dfilter=org.alfresco:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : &lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;21: 4.8.0&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;Choose a number: 31: &lt;STRONG&gt;21&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[INFO] Using property: version = 1.0-SNAPSHOT&lt;/P&gt;&lt;P&gt;&amp;nbsp;Define value for property 'groupId': &lt;STRONG&gt;it.puglia&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Define value for property 'artifactId': &lt;STRONG&gt;landing-page-and-url-injection&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Define value for property 'package' it.puglia: : &lt;STRONG&gt;it.puglia&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Y: &lt;STRONG&gt;y&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;[INFO] ------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[INFO] BUILD SUCCESS&lt;/P&gt;&lt;P&gt;[INFO] ------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[INFO] Total time:&amp;nbsp; 09:54 min&lt;/P&gt;&lt;P&gt;[INFO] Finished at: 2025-08-06T12:39:26 02:00&lt;/P&gt;&lt;P&gt;[INFO] ------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;C:\DATI\Macro\Java\projects-test\eclipse\alfresco&amp;gt;&lt;STRONG&gt;cd landing-page-and-url-injection&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;run.bat build_start&lt;/STRONG&gt;&amp;nbsp;for Windows.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A docker environment will be created and available at the following links:&lt;/P&gt;&lt;P&gt;&lt;A href="http://localhost:8080/alfresco/" target="_blank" rel="noopener"&gt;http://localhost:8080/alfresco/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://localhost:8180/share" target="_blank" rel="noopener"&gt;http://localhost:8180/share&lt;/A&gt;&lt;/P&gt;&lt;P&gt;No we can import the SDK on IDE.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Untitled.png" style="width: 343px;"&gt;&lt;img src="https://connect.hyland.com/t5/image/serverpage/image-id/12314i4A441A6A4377A393/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Now following these topics:&lt;/P&gt;&lt;P&gt;&lt;A href="https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#adding-a-new-surf-page-to-share" target="_blank" rel="noopener"&gt;https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#adding-a-new-surf-page-to-share&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#making-the-new-page-the-default" target="_blank" rel="noopener"&gt;https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#making-the-new-page-the-default&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I have implemented a solution with a landing page different from the default one that is&amp;nbsp;tomcat/webapps/share/site-index.jsp.&lt;/P&gt;&lt;P&gt;Here the details:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/pages/landing-page.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;'1.0'&lt;/EM&gt; encoding=&lt;EM&gt;'UTF-8'&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;page&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Welcome&amp;lt;/title&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;title-id&amp;gt;page.siteIndex.title&amp;lt;/title-id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Landing page for all users - will forward to user site &lt;U&gt;dashboard&lt;/U&gt;&amp;lt;/description&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;description-id&amp;gt;page.siteIndex.description&amp;lt;/description-id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;template-instance&amp;gt;landing-page&amp;lt;/template-instance&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;authentication&amp;gt;user&amp;lt;/authentication&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/page&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/template-instances/landing-page.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;'1.0'&lt;/EM&gt; encoding=&lt;EM&gt;'UTF-8'&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;template-instance&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;template-type&amp;gt;landing-page&amp;lt;/template-type&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/template-instance&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/template-types/landing-page.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;"1.0"&lt;/EM&gt; encoding=&lt;EM&gt;"UTF-8"&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;template-type&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Site index landing page template type&amp;lt;/title&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Site index landing page JSP Template Type&amp;lt;/description&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define the rendering processors for this template type --&amp;gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;processor mode=&lt;EM&gt;"view"&lt;/EM&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;&lt;U&gt;jsp&lt;/U&gt;&amp;lt;/id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jsp-path&amp;gt;/landing-page.jsp&amp;lt;/jsp-path&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/processor&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;/template-type&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/configurations/slingshot.site.configuration.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;"1.0"&lt;/EM&gt; encoding=&lt;EM&gt;"UTF-8"&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;configuration&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;&lt;U&gt;Slingshot&lt;/U&gt; Project&amp;lt;/name&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;&lt;U&gt;Slingshot&lt;/U&gt; Project&amp;lt;/description&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;source-id&amp;gt;site&amp;lt;/source-id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;properties&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;theme&amp;gt;lightTheme&amp;lt;/theme&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;root-page&amp;gt;landing-page&amp;lt;/root-page&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/properties&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/configuration&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/webapp/jsp/landing-page.jsp&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;%--&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copyright 2005 - 2020 Alfresco Software Limited.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This file is part of the Alfresco software.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If the software was purchased under a paid Alfresco license, the terms of the paid license agreement will prevail.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Otherwise, the software is provided under the following open source license terms:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alfresco is free software: you can redistribute it and/or modify&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; it under the terms of the GNU Lesser General Public License as published by&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; the Free Software Foundation, either version 3 of the License, or&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (at your option) any later version.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alfresco is distributed in the hope that it will be useful,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GNU Lesser General Public License for more details.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You should have received a copy of the GNU Lesser General Public License&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; along with Alfresco. If not, see &amp;lt;&lt;A href="http://www.gnu.org/licenses/" target="_blank" rel="noopener"&gt;http://www.gnu.org/licenses/&lt;/A&gt;&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;--%&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.alfresco.web.site.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.springframework.extensions.surf.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.springframework.extensions.surf.site.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.springframework.extensions.surf.util.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"java.util.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"java.util.regex.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.client.methods.HttpGet"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.impl.client.CloseableHttpClient"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.impl.client.HttpClients"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.util.EntityUtils"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // retrieve userId and context&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String userid = (String)session.getAttribute(SlingshotUserFactory.SESSION_ATTRIBUTE_KEY_USER_ID);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RequestContext context = (RequestContext)request.getAttribute(RequestContext.ATTR_REQUEST_CONTEXT);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // no user dashboard page found! create initial dashboard for this user&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;if&lt;/STRONG&gt; (!context.getObjectService().hasPage("user/" + userid + "/dashboard")){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, String&amp;gt; tokens = &lt;STRONG&gt;new&lt;/STRONG&gt; HashMap&amp;lt;String, String&amp;gt;();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tokens.put("userid", userid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FrameworkUtil.getServiceRegistry().getPresetsManager().constructPreset("user-dashboard", tokens);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // API call to retrieve sites&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String siteApiUrl = request.getScheme() + "://" +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.getServerName() +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ":" + request.getServerPort() +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.getContextPath() +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/proxy/alfresco/api/people/" + URLEncoder.encode(userid) + "/sites";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String siteApiUrlResponse = "";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;try&lt;/STRONG&gt; (CloseableHttpClient httpClient = HttpClients.createDefault()) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpGet requestSites = &lt;STRONG&gt;new&lt;/STRONG&gt; HttpGet(siteApiUrl);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String jsessionid = session.getId();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestSites.setHeader("Cookie", "JSESSIONID=" + jsessionid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; siteApiUrlResponse = EntityUtils.toString(httpClient.execute(requestSites).getEntity());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Response JSON: " + siteApiUrlResponse);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;STRONG&gt;catch&lt;/STRONG&gt; (Exception e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Error: " + e.getMessage());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pattern pattern = Pattern.compile("\\\"shortName\\\"[ ]*:[ ]*\\\"([a-zA-Z0-9_-]+)\\\"");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Matcher matcher = pattern.matcher(siteApiUrlResponse);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;String&amp;gt; sites = &lt;STRONG&gt;new&lt;/STRONG&gt; ArrayList&amp;lt;&amp;gt;();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;while&lt;/STRONG&gt; (matcher.find()) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sites.add(matcher.group(1));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Site available for user: " + sites);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if size sites == 1 redirect su &lt;A href="http://localhost:8180/share/page/site/edottosgd/documentlibrary" target="_blank" rel="noopener"&gt;http://localhost:8180/share/page/site/edottosgd/documentlibrary&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;if&lt;/STRONG&gt;(sites.size() == 1){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // forward to demo site dashboard&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String siteName = sites.get(0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String target = request.getContextPath() + "/page/site/" + URLEncoder.encode(siteName) + "/documentlibrary";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.sendRedirect(target);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;STRONG&gt;else&lt;/STRONG&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if size sites &amp;gt; 1 redirect su &lt;A href="http://localhost:8180/share/page/user/admin/user-sites" target="_blank" rel="noopener"&gt;http://localhost:8180/share/page/user/admin/user-sites&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String target = request.getContextPath() + "/page/user/user-sites";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.sendRedirect(target);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Rebuild the package and test the solution.&lt;/P&gt;&lt;P&gt;C:\DATI\Macro\Java\projects-test\eclipse\alfresco\landing-page-and-url-injection&amp;gt;&lt;STRONG&gt;run.bat build_start&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;Please notice that the landing-page.jsp deploy is done manually in&lt;/STRONG&gt;&lt;STRONG&gt; tomcat/webapps/share.&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Testing the solution, after the login the user will be redirected to the document library of the site where he is a member.&lt;/P&gt;&lt;P&gt;If the user is a member of more than one site than he will be redirected to the the page of all sites.&lt;/P&gt;&lt;P&gt;The dashboard will not be anymore the redirect page after login.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Up to now anything works on docker.&lt;/P&gt;&lt;P&gt;If I build the packages repo and share and deploy the amps on a standalone environment using the &lt;STRONG&gt;apply_amps.sh&lt;/STRONG&gt;&amp;nbsp;and after a tomcat restart the package will be available in the Module Deployment page:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.JPG" style="width: 983px;"&gt;&lt;img src="https://connect.hyland.com/t5/image/serverpage/image-id/12315i9AF79DBE49159B59/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="Capture.JPG" alt="Capture.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;But if I try the login I will be always redirect to the dashboard. So, the redirect to landing-page.jsp does not work.&lt;/P&gt;&lt;P&gt;In few words the solution works on docker but doesn't works on standalone env.&amp;nbsp;&lt;/P&gt;&lt;P&gt;May you please help?&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Kind regards.&lt;/P&gt;</description>
    <pubDate>Fri, 05 Sep 2025 14:07:39 GMT</pubDate>
    <dc:creator>giasqui</dc:creator>
    <dc:date>2025-09-05T14:07:39Z</dc:date>
    <item>
      <title>Change the landing page from site-index.jsp to landing-page.jsp</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/change-the-landing-page-from-site-index-jsp-to-landing-page-jsp/m-p/492656#M40409</link>
      <description>&lt;P&gt;Hi, I did the following steps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="633"&gt;&lt;P&gt;C:\DATI\Macro\Java\projects-test\eclipse\alfresco&amp;gt;&lt;STRONG&gt;mvn archetype:generate -Dfilter=org.alfresco:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : &lt;STRONG&gt;2&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;…&lt;/P&gt;&lt;P&gt;21: 4.8.0&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;Choose a number: 31: &lt;STRONG&gt;21&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;[INFO] Using property: version = 1.0-SNAPSHOT&lt;/P&gt;&lt;P&gt;&amp;nbsp;Define value for property 'groupId': &lt;STRONG&gt;it.puglia&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Define value for property 'artifactId': &lt;STRONG&gt;landing-page-and-url-injection&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;Define value for property 'package' it.puglia: : &lt;STRONG&gt;it.puglia&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Y: &lt;STRONG&gt;y&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;[INFO] ------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[INFO] BUILD SUCCESS&lt;/P&gt;&lt;P&gt;[INFO] ------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;[INFO] Total time:&amp;nbsp; 09:54 min&lt;/P&gt;&lt;P&gt;[INFO] Finished at: 2025-08-06T12:39:26 02:00&lt;/P&gt;&lt;P&gt;[INFO] ------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;C:\DATI\Macro\Java\projects-test\eclipse\alfresco&amp;gt;&lt;STRONG&gt;cd landing-page-and-url-injection&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;run.bat build_start&lt;/STRONG&gt;&amp;nbsp;for Windows.&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A docker environment will be created and available at the following links:&lt;/P&gt;&lt;P&gt;&lt;A href="http://localhost:8080/alfresco/" target="_blank" rel="noopener"&gt;http://localhost:8080/alfresco/&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://localhost:8180/share" target="_blank" rel="noopener"&gt;http://localhost:8180/share&lt;/A&gt;&lt;/P&gt;&lt;P&gt;No we can import the SDK on IDE.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Untitled.png" style="width: 343px;"&gt;&lt;img src="https://connect.hyland.com/t5/image/serverpage/image-id/12314i4A441A6A4377A393/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="Untitled.png" alt="Untitled.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Now following these topics:&lt;/P&gt;&lt;P&gt;&lt;A href="https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#adding-a-new-surf-page-to-share" target="_blank" rel="noopener"&gt;https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#adding-a-new-surf-page-to-share&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#making-the-new-page-the-default" target="_blank" rel="noopener"&gt;https://docs.alfresco.com/content-services/latest/tutorial/share/pages/#making-the-new-page-the-default&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I have implemented a solution with a landing page different from the default one that is&amp;nbsp;tomcat/webapps/share/site-index.jsp.&lt;/P&gt;&lt;P&gt;Here the details:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/pages/landing-page.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;'1.0'&lt;/EM&gt; encoding=&lt;EM&gt;'UTF-8'&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;page&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Welcome&amp;lt;/title&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;title-id&amp;gt;page.siteIndex.title&amp;lt;/title-id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Landing page for all users - will forward to user site &lt;U&gt;dashboard&lt;/U&gt;&amp;lt;/description&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;description-id&amp;gt;page.siteIndex.description&amp;lt;/description-id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;template-instance&amp;gt;landing-page&amp;lt;/template-instance&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;authentication&amp;gt;user&amp;lt;/authentication&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/page&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/template-instances/landing-page.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;'1.0'&lt;/EM&gt; encoding=&lt;EM&gt;'UTF-8'&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;template-instance&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;template-type&amp;gt;landing-page&amp;lt;/template-type&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/template-instance&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/template-types/landing-page.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;"1.0"&lt;/EM&gt; encoding=&lt;EM&gt;"UTF-8"&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;template-type&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;title&amp;gt;Site index landing page template type&amp;lt;/title&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Site index landing page JSP Template Type&amp;lt;/description&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define the rendering processors for this template type --&amp;gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;processor mode=&lt;EM&gt;"view"&lt;/EM&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;&lt;U&gt;jsp&lt;/U&gt;&amp;lt;/id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;jsp-path&amp;gt;/landing-page.jsp&amp;lt;/jsp-path&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/processor&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;/template-type&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/resources/alfresco/web-extension/site-data/configurations/slingshot.site.configuration.xml&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;?xml version=&lt;EM&gt;"1.0"&lt;/EM&gt; encoding=&lt;EM&gt;"UTF-8"&lt;/EM&gt;?&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;&lt;U&gt;configuration&lt;/U&gt;&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;&lt;U&gt;Slingshot&lt;/U&gt; Project&amp;lt;/name&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;&lt;U&gt;Slingshot&lt;/U&gt; Project&amp;lt;/description&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;source-id&amp;gt;site&amp;lt;/source-id&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;properties&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;theme&amp;gt;lightTheme&amp;lt;/theme&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;root-page&amp;gt;landing-page&amp;lt;/root-page&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/properties&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/configuration&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&lt;STRONG&gt;/src/main/webapp/jsp/landing-page.jsp&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD width="24"&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD width="612"&gt;&lt;P&gt;&amp;lt;%--&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copyright 2005 - 2020 Alfresco Software Limited.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; This file is part of the Alfresco software.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; If the software was purchased under a paid Alfresco license, the terms of the paid license agreement will prevail.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Otherwise, the software is provided under the following open source license terms:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alfresco is free software: you can redistribute it and/or modify&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; it under the terms of the GNU Lesser General Public License as published by&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; the Free Software Foundation, either version 3 of the License, or&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (at your option) any later version.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Alfresco is distributed in the hope that it will be useful,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&amp;nbsp; See the&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GNU Lesser General Public License for more details.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You should have received a copy of the GNU Lesser General Public License&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; along with Alfresco. If not, see &amp;lt;&lt;A href="http://www.gnu.org/licenses/" target="_blank" rel="noopener"&gt;http://www.gnu.org/licenses/&lt;/A&gt;&amp;gt;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;--%&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.alfresco.web.site.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.springframework.extensions.surf.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.springframework.extensions.surf.site.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.springframework.extensions.surf.util.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"java.util.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"java.util.regex.*"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.client.methods.HttpGet"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.impl.client.CloseableHttpClient"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.impl.client.HttpClients"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%@ page import=&lt;EM&gt;"org.apache.http.util.EntityUtils"&lt;/EM&gt; %&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;%&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // retrieve userId and context&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String userid = (String)session.getAttribute(SlingshotUserFactory.SESSION_ATTRIBUTE_KEY_USER_ID);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RequestContext context = (RequestContext)request.getAttribute(RequestContext.ATTR_REQUEST_CONTEXT);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // no user dashboard page found! create initial dashboard for this user&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;if&lt;/STRONG&gt; (!context.getObjectService().hasPage("user/" + userid + "/dashboard")){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, String&amp;gt; tokens = &lt;STRONG&gt;new&lt;/STRONG&gt; HashMap&amp;lt;String, String&amp;gt;();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tokens.put("userid", userid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FrameworkUtil.getServiceRegistry().getPresetsManager().constructPreset("user-dashboard", tokens);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // API call to retrieve sites&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String siteApiUrl = request.getScheme() + "://" +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.getServerName() +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ":" + request.getServerPort() +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request.getContextPath() +&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "/proxy/alfresco/api/people/" + URLEncoder.encode(userid) + "/sites";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String siteApiUrlResponse = "";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;try&lt;/STRONG&gt; (CloseableHttpClient httpClient = HttpClients.createDefault()) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HttpGet requestSites = &lt;STRONG&gt;new&lt;/STRONG&gt; HttpGet(siteApiUrl);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String jsessionid = session.getId();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; requestSites.setHeader("Cookie", "JSESSIONID=" + jsessionid);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; siteApiUrlResponse = EntityUtils.toString(httpClient.execute(requestSites).getEntity());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Response JSON: " + siteApiUrlResponse);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;STRONG&gt;catch&lt;/STRONG&gt; (Exception e) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Error: " + e.getMessage());&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pattern pattern = Pattern.compile("\\\"shortName\\\"[ ]*:[ ]*\\\"([a-zA-Z0-9_-]+)\\\"");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Matcher matcher = pattern.matcher(siteApiUrlResponse);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&amp;lt;String&amp;gt; sites = &lt;STRONG&gt;new&lt;/STRONG&gt; ArrayList&amp;lt;&amp;gt;();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;while&lt;/STRONG&gt; (matcher.find()) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sites.add(matcher.group(1));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("Site available for user: " + sites);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if size sites == 1 redirect su &lt;A href="http://localhost:8180/share/page/site/edottosgd/documentlibrary" target="_blank" rel="noopener"&gt;http://localhost:8180/share/page/site/edottosgd/documentlibrary&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;if&lt;/STRONG&gt;(sites.size() == 1){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // forward to demo site dashboard&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String siteName = sites.get(0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String target = request.getContextPath() + "/page/site/" + URLEncoder.encode(siteName) + "/documentlibrary";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.sendRedirect(target);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;STRONG&gt;else&lt;/STRONG&gt; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // if size sites &amp;gt; 1 redirect su &lt;A href="http://localhost:8180/share/page/user/admin/user-sites" target="_blank" rel="noopener"&gt;http://localhost:8180/share/page/user/admin/user-sites&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String target = request.getContextPath() + "/page/user/user-sites";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; response.sendRedirect(target);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;Rebuild the package and test the solution.&lt;/P&gt;&lt;P&gt;C:\DATI\Macro\Java\projects-test\eclipse\alfresco\landing-page-and-url-injection&amp;gt;&lt;STRONG&gt;run.bat build_start&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;Please notice that the landing-page.jsp deploy is done manually in&lt;/STRONG&gt;&lt;STRONG&gt; tomcat/webapps/share.&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Testing the solution, after the login the user will be redirected to the document library of the site where he is a member.&lt;/P&gt;&lt;P&gt;If the user is a member of more than one site than he will be redirected to the the page of all sites.&lt;/P&gt;&lt;P&gt;The dashboard will not be anymore the redirect page after login.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Up to now anything works on docker.&lt;/P&gt;&lt;P&gt;If I build the packages repo and share and deploy the amps on a standalone environment using the &lt;STRONG&gt;apply_amps.sh&lt;/STRONG&gt;&amp;nbsp;and after a tomcat restart the package will be available in the Module Deployment page:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.JPG" style="width: 983px;"&gt;&lt;img src="https://connect.hyland.com/t5/image/serverpage/image-id/12315i9AF79DBE49159B59/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999" role="button" title="Capture.JPG" alt="Capture.JPG" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;But if I try the login I will be always redirect to the dashboard. So, the redirect to landing-page.jsp does not work.&lt;/P&gt;&lt;P&gt;In few words the solution works on docker but doesn't works on standalone env.&amp;nbsp;&lt;/P&gt;&lt;P&gt;May you please help?&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Kind regards.&lt;/P&gt;</description>
      <pubDate>Fri, 05 Sep 2025 14:07:39 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/change-the-landing-page-from-site-index-jsp-to-landing-page-jsp/m-p/492656#M40409</guid>
      <dc:creator>giasqui</dc:creator>
      <dc:date>2025-09-05T14:07:39Z</dc:date>
    </item>
  </channel>
</rss>

