Merge branch 'label-add' into 'master'

Change login UI content

See merge request entgra/community-product!24
temp
Pahansith Gunathilake 2 years ago
commit 0343378c53

@ -0,0 +1,438 @@
<%--
~ Copyright (c) 2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ WSO2 Inc. licenses this file to you under the Apache License,
~ Version 2.0 (the "License"); you may not use this file except
~ in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
--%>
<%@ page import="org.apache.cxf.jaxrs.client.JAXRSClientFactory" %>
<%@ page import="org.apache.cxf.jaxrs.provider.json.JSONProvider" %>
<%@ page import="org.apache.cxf.jaxrs.client.WebClient" %>
<%@ page import="org.apache.http.HttpStatus" %>
<%@ page import="org.owasp.encoder.Encode" %>
<%@ page import="org.wso2.carbon.identity.application.authentication.endpoint.util.client.SelfUserRegistrationResource" %>
<%@ page import="org.wso2.carbon.identity.application.authentication.endpoint.util.AuthenticationEndpointUtil" %>
<%@ page import="org.wso2.carbon.identity.application.authentication.endpoint.util.bean.ResendCodeRequestDTO" %>
<%@ page import="org.wso2.carbon.identity.application.authentication.endpoint.util.bean.UserDTO" %>
<%@ page import="java.net.URLEncoder" %>
<%@ page import="java.net.URLDecoder" %>
<%@ page import="javax.ws.rs.core.Response" %>
<%@ page import="static org.wso2.carbon.identity.core.util.IdentityUtil.isSelfSignUpEPAvailable" %>
<%@ page import="static org.wso2.carbon.identity.core.util.IdentityUtil.isRecoveryEPAvailable" %>
<%@ page import="static org.wso2.carbon.identity.core.util.IdentityUtil.getServerURL" %>
<%@ page import="org.apache.commons.codec.binary.Base64" %>
<%@ page import="org.apache.commons.text.StringEscapeUtils" %>
<%@ page import="java.nio.charset.Charset" %>
<%@ page import="org.wso2.carbon.base.ServerConfiguration" %>
<%@ page import="org.wso2.carbon.identity.application.authentication.endpoint.util.EndpointConfigManager" %>
<%@ page import="org.wso2.carbon.identity.core.URLBuilderException" %>
<%@ page import="org.wso2.carbon.identity.core.ServiceURLBuilder" %>
<jsp:directive.include file="includes/init-loginform-action-url.jsp"/>
<script>
function goBack() {
window.history.back();
}
// Handle form submission preventing double submission.
$(document).ready(function(){
$.fn.preventDoubleSubmission = function() {
$(this).on('submit',function(e){
var $form = $(this);
if ($form.data('submitted') === true) {
// Previously submitted - don't submit again.
e.preventDefault();
console.warn("Prevented a possible double submit event");
} else {
e.preventDefault();
var userName = document.getElementById("username");
var usernameUserInput = document.getElementById("usernameUserInput");
if (usernameUserInput) {
userName.value = usernameUserInput.value.trim();
}
if (userName.value) {
$.ajax({
type: "GET",
url: "<%=loginContextRequestUrl%>",
success: function (data) {
if (data && data.status == 'redirect' && data.redirectUrl && data.redirectUrl.length > 0) {
window.location.href = data.redirectUrl;
} else if ($form.data('submitted') !== true) {
$form.data('submitted', true);
document.getElementById("loginForm").submit();
} else {
console.warn("Prevented a possible double submit event.");
}
},
cache: false
});
}
}
});
return this;
};
$('#loginForm').preventDoubleSubmission();
});
</script>
<%!
private static final String JAVAX_SERVLET_FORWARD_REQUEST_URI = "javax.servlet.forward.request_uri";
private static final String JAVAX_SERVLET_FORWARD_QUERY_STRING = "javax.servlet.forward.query_string";
private static final String UTF_8 = "UTF-8";
private static final String TENANT_DOMAIN = "tenant-domain";
private static final String ACCOUNT_RECOVERY_ENDPOINT = "/accountrecoveryendpoint";
private static final String ACCOUNT_RECOVERY_ENDPOINT_RECOVER = "/recoveraccountrouter.do";
private static final String ACCOUNT_RECOVERY_ENDPOINT_REGISTER = "/register.do";
%>
<%
String resendUsername = request.getParameter("resend_username");
if (StringUtils.isNotBlank(resendUsername)) {
ResendCodeRequestDTO selfRegistrationRequest = new ResendCodeRequestDTO();
UserDTO userDTO = AuthenticationEndpointUtil.getUser(resendUsername);
selfRegistrationRequest.setUser(userDTO);
String path = config.getServletContext().getInitParameter(Constants.ACCOUNT_RECOVERY_REST_ENDPOINT_URL);
String proxyContextPath = ServerConfiguration.getInstance().getFirstProperty(IdentityCoreConstants
.PROXY_CONTEXT_PATH);
if (proxyContextPath == null) {
proxyContextPath = "";
}
String url;
if (StringUtils.isNotBlank(EndpointConfigManager.getServerOrigin())) {
url = EndpointConfigManager.getServerOrigin() + proxyContextPath + path;
} else {
url = IdentityUtil.getServerURL(path, true, false);
}
url = url.replace(TENANT_DOMAIN, userDTO.getTenantDomain());
List<JSONProvider> providers = new ArrayList<JSONProvider>();
JSONProvider jsonProvider = new JSONProvider();
jsonProvider.setDropRootElement(true);
jsonProvider.setIgnoreNamespaces(true);
jsonProvider.setValidateOutput(true);
jsonProvider.setSupportUnwrapped(true);
providers.add(jsonProvider);
String toEncode = EndpointConfigManager.getAppName() + ":" + String
.valueOf(EndpointConfigManager.getAppPassword());
byte[] encoding = Base64.encodeBase64(toEncode.getBytes());
String authHeader = new String(encoding, Charset.defaultCharset());
String header = "Client " + authHeader;
SelfUserRegistrationResource selfUserRegistrationResource = JAXRSClientFactory
.create(url, SelfUserRegistrationResource.class, providers);
WebClient.client(selfUserRegistrationResource).header("Authorization", header);
Response selfRegistrationResponse = selfUserRegistrationResource.regenerateCode(selfRegistrationRequest);
if (selfRegistrationResponse != null && selfRegistrationResponse.getStatus() == HttpStatus.SC_CREATED) {
%>
<div class="ui visible info message">
<%=AuthenticationEndpointUtil.i18n(resourceBundle,Constants.ACCOUNT_RESEND_SUCCESS_RESOURCE)%>
</div>
<%
} else {
%>
<div class="ui visible negative message">
<%=AuthenticationEndpointUtil.i18n(resourceBundle,Constants.ACCOUNT_RESEND_FAIL_RESOURCE)%>
</div>
<%
}
}
%>
<form class="ui large form" action="<%=loginFormActionURL%>" method="post" id="loginForm">
<%
if (loginFormActionURL.equals(samlssoURL) || loginFormActionURL.equals(oauth2AuthorizeURL)) {
%>
<input id="tocommonauth" name="tocommonauth" type="hidden" value="true">
<%
}
%>
<% if (Boolean.parseBoolean(loginFailed)) { %>
<div class="ui visible negative message" id="error-msg" data-testid="login-page-error-message">
<%= AuthenticationEndpointUtil.i18n(resourceBundle, errorMessage) %>
</div>
<% } else if ((Boolean.TRUE.toString()).equals(request.getParameter("authz_failure"))){%>
<div class="ui visible negative message" id="error-msg" data-testid="login-page-error-message">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "unauthorized.to.login")%>
</div>
<% } else { %>
<div class="ui visible negative message" style="display: none;" id="error-msg" data-testid="login-page-error-message"></div>
<% } %>
<% if(Boolean.parseBoolean(request.getParameter("passwordReset"))) {
%>
<div class="ui visible positive message" data-testid="password-reset-success-message">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "Updated.the.password.successfully")%>
</div>
<% } %>
<% if (!isIdentifierFirstLogin(inputType)) { %>
<div class="field">
<div class="ui fluid left icon input">
<input
type="text"
id="usernameUserInput"
value=""
name="usernameUserInput"
tabindex="1"
placeholder="<%=AuthenticationEndpointUtil.i18n(resourceBundle, "username")%>"
data-testid="login-page-username-input"
required>
<i aria-hidden="true" class="user icon"></i>
<input id="username" name="username" type="hidden" value="<%=username%>">
</div>
</div>
<% } else { %>
<input id="username" name="username" type="hidden" data-testid="login-page-username-input" value="<%=username%>">
<% } %>
<div class="field">
<div class="ui fluid left icon input">
<input
type="password"
id="password"
name="password"
value=""
autocomplete="off"
tabindex="2"
placeholder="<%=AuthenticationEndpointUtil.i18n(resourceBundle, "password")%>"
data-testid="login-page-password-input"
>
<i aria-hidden="true" class="lock icon"></i>
</div>
</div>
<%
if (reCaptchaEnabled) {
%>
<div class="field">
<div class="g-recaptcha"
data-sitekey="<%=Encode.forHtmlContent(request.getParameter("reCaptchaKey"))%>"
data-testid="login-page-g-recaptcha"
>
</div>
</div>
<%
}
%>
<%
String recoveryEPAvailable = application.getInitParameter("EnableRecoveryEndpoint");
String enableSelfSignUpEndpoint = application.getInitParameter("EnableSelfSignUpEndpoint");
Boolean isRecoveryEPAvailable = false;
Boolean isSelfSignUpEPAvailable = false;
String identityMgtEndpointContext = "";
String urlEncodedURL = "";
String urlParameters = "";
if (StringUtils.isNotBlank(recoveryEPAvailable)) {
isRecoveryEPAvailable = Boolean.valueOf(recoveryEPAvailable);
} else {
isRecoveryEPAvailable = isRecoveryEPAvailable();
}
if (StringUtils.isNotBlank(enableSelfSignUpEndpoint)) {
isSelfSignUpEPAvailable = Boolean.valueOf(enableSelfSignUpEndpoint);
} else {
isSelfSignUpEPAvailable = isSelfSignUpEPAvailable();
}
if (isRecoveryEPAvailable || isSelfSignUpEPAvailable) {
String scheme = request.getScheme();
String serverName = request.getServerName();
int serverPort = request.getServerPort();
String uri = (String) request.getAttribute(JAVAX_SERVLET_FORWARD_REQUEST_URI);
String prmstr = URLDecoder.decode(((String) request.getAttribute(JAVAX_SERVLET_FORWARD_QUERY_STRING)), UTF_8);
String urlWithoutEncoding = scheme + "://" +serverName + ":" + serverPort + uri + "?" + prmstr;
urlEncodedURL = URLEncoder.encode(urlWithoutEncoding, UTF_8);
urlParameters = (String) request.getAttribute(JAVAX_SERVLET_FORWARD_QUERY_STRING);
identityMgtEndpointContext = application.getInitParameter("IdentityManagementEndpointContextURL");
if (StringUtils.isBlank(identityMgtEndpointContext)) {
try {
identityMgtEndpointContext = ServiceURLBuilder.create().addPath(ACCOUNT_RECOVERY_ENDPOINT).build()
.getAbsolutePublicURL();
} catch (URLBuilderException e) {
request.setAttribute(STATUS, AuthenticationEndpointUtil.i18n(resourceBundle, CONFIGURATION_ERROR));
request.setAttribute(STATUS_MSG, AuthenticationEndpointUtil
.i18n(resourceBundle, ERROR_WHILE_BUILDING_THE_ACCOUNT_RECOVERY_ENDPOINT_URL));
request.getRequestDispatcher("error.do").forward(request, response);
return;
}
}
}
%>
<div class="buttons">
<% if (isRecoveryEPAvailable) { %>
<div class="field">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "forgot.username.password")%>
<a
id="passwordRecoverLink"
tabindex="6"
href="<%=StringEscapeUtils.escapeHtml4(getRecoverAccountUrl(identityMgtEndpointContext, urlEncodedURL, false, urlParameters))%>"
data-testid="login-page-password-recovery-button"
>
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "forgot.password")%>
</a>
?
</div>
<% } %>
<% if (isIdentifierFirstLogin(inputType)) { %>
<div class="field">
<a id="backLink" tabindex="7" onclick="goBack()" data-testid="login-page-back-button">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "sign.in.different.account")%>
</a>
</div>
<% } %>
</div>
<div class="ui divider hidden"></div>
<div class="field">
<div class="ui checkbox">
<input
tabindex="3"
type="checkbox"
id="chkRemember"
name="chkRemember"
data-testid="login-page-remember-me-checkbox"
>
<label><%=AuthenticationEndpointUtil.i18n(resourceBundle, "remember.me")%></label>
</div>
</div>
<input type="hidden" name="sessionDataKey" value='<%=Encode.forHtmlAttribute
(request.getParameter("sessionDataKey"))%>'/>
<div class="ui divider hidden"></div>
<%
boolean showCookiePolicy = (Boolean)request.getAttribute("showCookiePolicy");
if (showCookiePolicy) {
%>
<div class="ui visible warning message">
<%
String cookiePolicyText = (String)request.getAttribute("cookiePolicyText");
if (!StringUtils.isEmpty(cookiePolicyText)) {
%>
<%=cookiePolicyText%>
<% } else { %>
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.cookies.short.description")%>
<% } %>
<a href="cookie_policy.do" target="policy-pane">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.cookies")%>
</a>
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.for.more.details")%>
</div>
<% } %>
<%
boolean showPrivacyPolicy = (Boolean)request.getAttribute("showPrivacyPolicy");
if (showPrivacyPolicy) {
%>
<div class="ui visible warning message">
<%
String privacyPolicyText = (String)request.getAttribute("privacyPolicyText");
if (!StringUtils.isEmpty(privacyPolicyText)) {
%>
<%=privacyPolicyText%>
<% } else { %>
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.privacy.short.description")%>
<% } %>
<a href="privacy_policy.do" target="policy-pane">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.general")%>
</a>
</div>
<div class="ui visible warning message">
<%
String cookiePolicyText = (String)request.getAttribute("cookiePolicyText");
if (!StringUtils.isEmpty(cookiePolicyText)) {
%>
<%=cookiePolicyText%>
<% } else { %>
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.asgardio.description.pt1")%>
<% } %>
<a href="https://wso2.com/asgardeo">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.asgardio.description.pt2")%>
</a></br>
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.asgardio.description.pt3")%>
<a href="https://docs.entgra.io/4.1.0/asgardeo/">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.asgardio.description.pt4")%>
</a>
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "privacy.policy.asgardio.description.pt5")%>
</div>
<% } %>
<div class="ui divider hidden"></div>
<div class="ui two column stackable grid">
<div class="column mobile center aligned tablet left aligned computer left aligned buttons tablet no-padding-left-first-child computer no-padding-left-first-child">
<%
String sp = request.getParameter("sp");
if ( (sp != null && !sp.endsWith("apim_publisher")) && isSelfSignUpEPAvailable && !isIdentifierFirstLogin(inputType)) { %>
<button
type="button"
onclick="window.location.href='<%=StringEscapeUtils.escapeHtml4(getRegistrationUrl(identityMgtEndpointContext, urlEncodedURL, urlParameters))%>';"
class="ui large button link-button"
id="registerLink"
tabindex="8"
role="button"
data-testid="login-page-create-account-button"
>
<%=StringEscapeUtils.escapeHtml4(AuthenticationEndpointUtil.i18n(resourceBundle, "create.account"))%>
</button>
<% } %>
</div>
<div class="column mobile center aligned tablet right aligned computer right aligned buttons tablet no-margin-right-last-child computer no-margin-right-last-child">
<button
type="submit"
class="ui primary large button"
tabindex="4"
role="button"
data-testid="login-page-continue-login-button"
style="background-color: #1890ff"
>
<%=StringEscapeUtils.escapeHtml4(AuthenticationEndpointUtil.i18n(resourceBundle, "continue"))%>
</button>
</div>
</div>
<% if (Boolean.parseBoolean(loginFailed) && errorCode.equals(IdentityCoreConstants.USER_ACCOUNT_NOT_CONFIRMED_ERROR_CODE) && request.getParameter("resend_username") == null) { %>
<div class="ui divider hidden"></div>
<div class="field">
<div class="form-actions">
<%=AuthenticationEndpointUtil.i18n(resourceBundle, "no.confirmation.mail")%>
<a id="registerLink"
href="login.do?resend_username=<%=Encode.forHtml(request.getParameter("failedUsername"))%>&<%=AuthenticationEndpointUtil.cleanErrorMessages(Encode.forJava(request.getQueryString()))%>"
data-testid="login-page-resend-confirmation-email-link"
>
<%=StringEscapeUtils.escapeHtml4(AuthenticationEndpointUtil.i18n(resourceBundle, "resend.mail"))%>
</a>
</div>
</div>
<% } %>
<%!
private String getRecoverAccountUrl(String identityMgtEndpointContext, String urlEncodedURL,
boolean isUsernameRecovery, String urlParameters) {
return identityMgtEndpointContext + ACCOUNT_RECOVERY_ENDPOINT_RECOVER + "?" + urlParameters
+ "&isUsernameRecovery=" + isUsernameRecovery + "&callback=" + Encode
.forHtmlAttribute(urlEncodedURL);
}
private String getRegistrationUrl(String identityMgtEndpointContext, String urlEncodedURL,
String urlParameters) {
return identityMgtEndpointContext + ACCOUNT_RECOVERY_ENDPOINT_REGISTER + "?"
+ urlParameters + "&callback=" + Encode.forHtmlAttribute(urlEncodedURL);
}
%>
</form>

@ -27,71 +27,71 @@
<div> <div>
<div> <div>
<h1> <h1>
Entgra IoT Server - Cookie Policy Entgra UEM Server - Cookie Policy
</h1> </h1>
</div> </div>
<div> <div>
<%-- Customizable content. Due to this nature, i18n is not implemented for this section --%> <%-- Customizable content. Due to this nature, i18n is not implemented for this section --%>
<div id="cookiePolicy"> <div id="cookiePolicy">
<h4><a href="https://wso2.com/iot/"><strong>About Entgra IoT Server</strong></a></h4> <h4><a href="https://wso2.com/UEM/"><strong>About Entgra UEM Server</strong></a></h4>
<p>Entgra IoT Server is a complete solution that enables device manufacturers and enterprises to connect and manage their devices, build apps, manage events, secure devices and data, and visualize sensor data in a scalable manner. <p>Entgra UEM Server is a complete solution that enables device manufacturers and enterprises to connect and manage their devices, build apps, manage events, secure devices and data, and visualize sensor data in a scalable manner.
<p>It also offers a complete and secure enterprise mobility management (EMM/MDM) solution that aims to address mobile computing challenges faced by enterprises today. Supporting iOS, Android, and Windows devices, it helps organizations deal with both corporate owned, personally enabled (COPE) and employee-owned devices with the bring your own device (BYOD) concept.</p> <p>It also offers a complete and secure enterprise mobility management (EMM/MDM) solution that aims to address mobile computing challenges faced by enterprises today. Supporting iOS, Android, and Windows devices, it helps organizations deal with both corporate owned, personally enabled (COPE) and employee-owned devices with the bring your own device (BYOD) concept.</p>
<p>Entgra IoT Server comes with advanced analytics, enabling users to analyze speed, proximity, and geo-fencing information of devices including details of those in motion and stationary state.</p> <p>Entgra UEM Server comes with advanced analytics, enabling users to analyze speed, proximity, and geo-fencing information of devices including details of those in motion and stationary state.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="cookie-policy"><strong>Cookie Policy</strong></h2> <h2 id="cookie-policy"><strong>Cookie Policy</strong></h2>
<p>IoT Server uses cookies to provide you with the best user experience, and to securely identify you. You might not be able to access some of the services if you disable cookies.</p> <p>UEM Server uses cookies to provide you with the best user experience, and to securely identify you. You might not be able to access some of the services if you disable cookies.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="what-is-a-cookie">What is a cookie &quest;</h2> <h2 id="what-is-a-cookie">What is a cookie &quest;</h2>
<p>A browser cookie is a small piece of data that is stored on your device to help websites and mobile apps remember things about you. Other technologies, including Web storage and identifiers associated with your device, may be used for similar purposes. In this policy, we use the term &ldquo;cookies&rdquo; to discuss all of these technologies.</p> <p>A browser cookie is a small piece of data that is stored on your device to help websites and mobile apps remember things about you. Other technologies, including Web storage and identifiers associated with your device, may be used for similar purposes. In this policy, we use the term &ldquo;cookies&rdquo; to discuss all of these technologies.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="how-iot-process-cookies">How does IoT Sever process cookies &quest;</h2> <h2 id="how-UEM-process-cookies">How does UEM Sever process cookies &quest;</h2>
<p>IoT Server uses cookies to store and retrieve information on your browser. This information is used to provide a better user experience. Some cookies have the primary purpose of allowing logging in to the system, maintaining sessions, and keeping track of activities you do within the login session.</p> <p>UEM Server uses cookies to store and retrieve information on your browser. This information is used to provide a better user experience. Some cookies have the primary purpose of allowing logging in to the system, maintaining sessions, and keeping track of activities you do within the login session.</p>
<p>Some cookies used in IoT Server are used to identify you personally. However, the cookie lifetime will end when you log-out ending your session or when your session expires.</p> <p>Some cookies used in UEM Server are used to identify you personally. However, the cookie lifetime will end when you log-out ending your session or when your session expires.</p>
<p>Some cookies are simply used to give you a more personalised web experience, and these cannot be used to identify you or your activities personally.</p> <p>Some cookies are simply used to give you a more personalised web experience, and these cannot be used to identify you or your activities personally.</p>
<p>This Cookie Policy is part of the IoT Server Privacy Policy.</p> <p>This Cookie Policy is part of the UEM Server Privacy Policy.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="what-iot-use-cookies-for">What does IoT use cookies for &quest;</h2> <h2 id="what-UEM-use-cookies-for">What does UEM use cookies for &quest;</h2>
<p>Cookies are used for two purposes in IoT server</p> <p>Cookies are used for two purposes in UEM server</p>
<ol> <ol>
<li>Security.</li> <li>Security.</li>
<li>Providing a better user experience.</li> <li>Providing a better user experience.</li>
</ol> </ol>
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="iot-uses-cookies-for-the-following-purposes">IoT Server uses cookies for the following purposes</h3> <h3 id="UEM-uses-cookies-for-the-following-purposes">UEM Server uses cookies for the following purposes</h3>
<h4>Preferences</h4> <h4>Preferences</h4>
<p>IoT Server uses cookies to remember your settings and preferences and to auto-fill the fields to make your interactions with the site easier.</p> <p>UEM Server uses cookies to remember your settings and preferences and to auto-fill the fields to make your interactions with the site easier.</p>
<ul> <ul>
<li>These cannot be used to identify you personally.</li> <li>These cannot be used to identify you personally.</li>
</ul> </ul>
<h4>Security</h4> <h4>Security</h4>
<p>IoT Server uses selected cookies to identify and prevent security risks.</p> <p>UEM Server uses selected cookies to identify and prevent security risks.</p>
<p>For example, IoT Server may use cookies to store your session information to prevent others from changing your password without your username and password.</p> <p>For example, UEM Server may use cookies to store your session information to prevent others from changing your password without your username and password.</p>
<p>IoT Server uses session cookie to maintain your active session.</p> <p>UEM Server uses session cookie to maintain your active session.</p>
<p>IoT Server may use a temporary cookie when performing multi-factor authentication and federated authentication.</p> <p>UEM Server may use a temporary cookie when performing multi-factor authentication and federated authentication.</p>
<p>IoT Server may use permanent cookies to detect the devices you have logged in previously. This is to to calculate the <strong>risk level</strong> associated with your current login attempt. Using these cookies protects you and your account from possible attacks.</p> <p>UEM Server may use permanent cookies to detect the devices you have logged in previously. This is to to calculate the <strong>risk level</strong> associated with your current login attempt. Using these cookies protects you and your account from possible attacks.</p>
<h4>Performance</h4> <h4>Performance</h4>
<p>IoT Server may use cookies to allow &ldquo;Remember Me&rdquo; functionalities.</p> <p>UEM Server may use cookies to allow &ldquo;Remember Me&rdquo; functionalities.</p>
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="analytics">Analytics</h3> <h3 id="analytics">Analytics</h3>
<p>IoT Server as a product does not use cookies for analytical purposes.</p> <p>UEM Server as a product does not use cookies for analytical purposes.</p>
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="third-party-cookies">Third party cookies</h3> <h3 id="third-party-cookies">Third party cookies</h3>
<p>Using IoT Server may cause some third-party cookie being set to your browser. IoT Server has no control over the operation of these cookies. The third-party cookies which maybe set include,</p> <p>Using UEM Server may cause some third-party cookie being set to your browser. UEM Server has no control over the operation of these cookies. The third-party cookies which maybe set include,</p>
<ul> <ul>
<li>Any of the social login sites, when IoT Server is configured to use &ldquo;Social&rdquo; or &ldquo;Federated&rdquo; login, and you opt to do login with your &ldquo;Social Account&rdquo;</li> <li>Any of the social login sites, when UEM Server is configured to use &ldquo;Social&rdquo; or &ldquo;Federated&rdquo; login, and you opt to do login with your &ldquo;Social Account&rdquo;</li>
<li>Any third party federated login</li> <li>Any third party federated login</li>
</ul> </ul>
<p>We strongly advise you to refer the respective cookie policies of such sites carefully as IoT Server has no knowledge or use on these cookies.</p> <p>We strongly advise you to refer the respective cookie policies of such sites carefully as UEM Server has no knowledge or use on these cookies.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="what-type-of-cookies-iot-use">What type of cookies does IoT Server use &quest;</h2> <h2 id="what-type-of-cookies-UEM-use">What type of cookies does UEM Server use &quest;</h2>
<p>IoT Server uses persistent cookies and session cookies. A persistent cookie helps IoT Server to recognize you as an existing user, so you can easily return to WSO2 or interact with IoT Server without signing in again. After you sign in, a persistent cookie stays in your browser and will be read by IoT Server when you return.</p> <p>UEM Server uses persistent cookies and session cookies. A persistent cookie helps UEM Server to recognize you as an existing user, so you can easily return to WSO2 or interact with UEM Server without signing in again. After you sign in, a persistent cookie stays in your browser and will be read by UEM Server when you return.</p>
<p>A session cookie is erased when the user closes the Web browser. It is stored in temporarily and is not retained after the browser is closed. Session cookies do not collect information from the users computer.</p> <p>A session cookie is erased when the user closes the Web browser. It is stored in temporarily and is not retained after the browser is closed. Session cookies do not collect information from the users computer.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="how-do-i-control-my-cookies">How do I control my cookies &quest;</h2> <h2 id="how-do-i-control-my-cookies">How do I control my cookies &quest;</h2>
<p>Most browsers allow you to control cookies through settings. However, if you limit the ability of websites to set cookies, you may worsen your overall user experience, since it will no longer be personalized to you. It may also stop you from saving customized settings like login information. Disabling cookies might make you unable to use Authentication and Authorization functionalities offered by IoT Server.</p> <p>Most browsers allow you to control cookies through settings. However, if you limit the ability of websites to set cookies, you may worsen your overall user experience, since it will no longer be personalized to you. It may also stop you from saving customized settings like login information. Disabling cookies might make you unable to use Authentication and Authorization functionalities offered by UEM Server.</p>
<p>If you have any questions or concerns regarding the use of cookies, please contact the Data Protection Officer of the organization running this IoT Server instance.</p> <p>If you have any questions or concerns regarding the use of cookies, please contact the Data Protection Officer of the organization running this UEM Server instance.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="what-are-the-cookies-used">What are the cookies used &quest;</h2> <h2 id="what-are-the-cookies-used">What are the cookies used &quest;</h2>
<table class="table table-bordered"> <table class="table table-bordered">
@ -144,7 +144,7 @@
</table> </table>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="disclaimer">Disclaimer</h2> <h2 id="disclaimer">Disclaimer</h2>
<p>This cookie policy is only for illustrative purposes of the IoT Server product. The content in this policy is technically correct at the time of product shipment. The organization which runs this IoT Server instance has the full authority and responsibility of the effective Cookie Policy.</p> <p>This cookie policy is only for illustrative purposes of the UEM Server product. The content in this policy is technically correct at the time of product shipment. The organization which runs this UEM Server instance has the full authority and responsibility of the effective Cookie Policy.</p>
</div> </div>
<%-- /Customizable content --%> <%-- /Customizable content --%>
</div> </div>

@ -47,9 +47,9 @@
} }
} }
String headerTitle = "IOT Server"; String headerTitle = "UEM Server";
String pageTitle = "Entgra IOT Server"; String pageTitle = "Entgra UEM Server"; //
String footerText = "Entgra IOT Server"; String footerText = "Entgra UEM Server";
String faviconSrc = "libs/theme/assets/images/favicon.ico"; String faviconSrc = "libs/theme/assets/images/favicon.ico";
String logoSrc = null; String logoSrc = null;
String logoHeight = "50"; String logoHeight = "50";
@ -79,11 +79,11 @@
Object obj = parser.parse(fr); Object obj = parser.parse(fr);
JSONObject jsonObject = (JSONObject) obj; JSONObject jsonObject = (JSONObject) obj;
pageTitle = (String)jsonObject.get("title") != null ? (String)jsonObject.get("title") : "Entgra IOT Server"; pageTitle = (String)jsonObject.get("title") != null ? (String)jsonObject.get("title") : "Entgra UEM Server";
JSONObject headerThemeObj = (JSONObject)jsonObject.get("header"); JSONObject headerThemeObj = (JSONObject)jsonObject.get("header");
if (headerThemeObj != null) { if (headerThemeObj != null) {
headerTitle = (String)(headerThemeObj.get("title")) != null ? (String)(headerThemeObj.get("title")) : "IOT Server"; headerTitle = (String)(headerThemeObj.get("title")) != null ? (String)(headerThemeObj.get("title")) : "UEM Server";
} }
JSONObject footerThemeObj = (JSONObject)jsonObject.get("footer"); JSONObject footerThemeObj = (JSONObject)jsonObject.get("footer");

@ -27,14 +27,14 @@
<div> <div>
<div> <div>
<h1> <h1>
Entgra IOT Server - Privacy Policy Entgra UEM Server - Privacy Policy
</h1> </h1>
</div> </div>
<div> <div>
<%-- Customizable content. Due to this nature, i18n is not implemented for this section --%> <%-- Customizable content. Due to this nature, i18n is not implemented for this section --%>
<div id="privacyPolicy" class="padding-double"> <div id="privacyPolicy" class="padding-double">
<h4><a href="https://wso2.com/iot/"><strong>About Entgra IOT Server</strong></a></h4> <h4><a href="https://wso2.com/UEM/"><strong>About Entgra UEM Server</strong></a></h4>
<p>Entgra IoT Server is a complete solution that enables device <p>Entgra UEM Server is a complete solution that enables device
manufacturers and enterprises to connect and manage their devices, manufacturers and enterprises to connect and manage their devices,
build apps, manage events, secure devices and data, and visualize build apps, manage events, secure devices and data, and visualize
sensor data in a scalable manner.</p> sensor data in a scalable manner.</p>
@ -44,27 +44,27 @@
devices, it helps organizations deal with both Corporate Owned, devices, it helps organizations deal with both Corporate Owned,
Personally Enabled (COPE) and employee-owned devices with the Bring Personally Enabled (COPE) and employee-owned devices with the Bring
Your Own Device (BYOD) concept.</p> Your Own Device (BYOD) concept.</p>
<p>Entgra IoT Server comes with advanced analytics, enabling users to <p>Entgra UEM Server comes with advanced analytics, enabling users to
analyze speed, proximity, and geo-fencing information of devices analyze speed, proximity, and geo-fencing information of devices
including details of those in motion and stationary state.</p> including details of those in motion and stationary state.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="privacy-policy"><strong>Privacy Policy</strong></h2> <h2 id="privacy-policy"><strong>Privacy Policy</strong></h2>
<p>This policy describes how Entgra IoT Server 4.0.0 captures your <p>This policy describes how Entgra UEM Server 4.0.0 captures your
personal information, the purposes of collection, and information personal information, the purposes of collection, and information
about the retention of your personal information.</p> about the retention of your personal information.</p>
<p>Please note that this policy is for reference only, and is applicable <p>Please note that this policy is for reference only, and is applicable
for the software as a product. Entgra and its developers have no for the software as a product. Entgra and its developers have no
access to the information held within Entgra IoT Server 4.0.0.Please access to the information held within Entgra UEM Server 4.0.0.Please
see the Disclaimer section for more information. Entities, see the Disclaimer section for more information. Entities,
organisations or individuals controlling the use and administration of organisations or individuals controlling the use and administration of
Entgra IoT Server 4.0.0 should create their own privacy policies Entgra UEM Server 4.0.0 should create their own privacy policies
setting out the manner in which data is controlled or processed by the setting out the manner in which data is controlled or processed by the
respective entity, organisation or individual.</p> respective entity, organisation or individual.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="what-are-the-personal-information">What are the personal information &quest;</h2> <h2 id="what-are-the-personal-information">What are the personal information &quest;</h2>
<p>Entgra IoT Server 4.0.0 considers anything related to you and by which <p>Entgra UEM Server 4.0.0 considers anything related to you and by which
you may be identified as your personal information.</p> you may be identified as your personal information.</p>
<strong>Signing in to Entgra IoT Server</strong> <strong>Signing in to Entgra UEM Server</strong>
<ol> <ol>
<li> <li>
Your user name (except in cases where the user name created by your Your user name (except in cases where the user name created by your
@ -73,7 +73,7 @@
<li>IP address used to log in</li> <li>IP address used to log in</li>
<li>Email address</li> <li>Email address</li>
</ol> </ol>
<strong>Enrolling a device with Entgra IoT Server</strong> <strong>Enrolling a device with Entgra UEM Server</strong>
<ul> <ul>
<li> <li>
Your device ID (e.g., phone or tablet), mobile number, IMEI number, Your device ID (e.g., phone or tablet), mobile number, IMEI number,
@ -86,7 +86,7 @@
connected hotspot details, and memory usage connected hotspot details, and memory usage
</li> </li>
</ul> </ul>
<p>However, Entgra IoT Server 4.0.0 also collects the following <p>However, Entgra UEM Server 4.0.0 also collects the following
information that is not considered personal information, but is used information that is not considered personal information, but is used
only for <strong>statistica</strong>l purposes. The reason for this only for <strong>statistica</strong>l purposes. The reason for this
is that this information can not be used to track you.</p> is that this information can not be used to track you.</p>
@ -105,26 +105,26 @@
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="collection-of-your-information">Collection of your information</h2> <h2 id="collection-of-your-information">Collection of your information</h2>
<p>Entgra IoT Server collects your information only to serve your <p>Entgra UEM Server collects your information only to serve your
access requirements.</p> access requirements.</p>
<p>For example,</p> <p>For example,</p>
<ul> <ul>
<li> <li>
Entgra IoT Server uses your IP address to detect any Entgra UEM Server uses your IP address to detect any
suspicious login attempts to your account. suspicious login attempts to your account.
</li> </li>
<li> <li>
Entgra IoT Server uses attributes like your first name, last Entgra UEM Server uses attributes like your first name, last
name, etc., to provide a rich and personalized user experience. name, etc., to provide a rich and personalized user experience.
</li> </li>
<li> <li>
Entgra IoT Server uses your security questions and answers Entgra UEM Server uses your security questions and answers
only to allow account recovery. only to allow account recovery.
</li> </li>
</ul> </ul>
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="tracking-technologies">Tracking Technologies</h3> <h3 id="tracking-technologies">Tracking Technologies</h3>
<p>Entgra IoT Server collects your information by:</p> <p>Entgra UEM Server collects your information by:</p>
<ul> <ul>
<li> <li>
Collecting information from the user profile page where you enter Collecting information from the user profile page where you enter
@ -143,20 +143,20 @@
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="user-of-your-personal-information">Use of your personal information</h2> <h2 id="user-of-your-personal-information">Use of your personal information</h2>
<p>Entgra IoT Server 4.0.0 will only use your personal information for <p>Entgra UEM Server 4.0.0 will only use your personal information for
the purposes for which it was collected (or for a use identified as the purposes for which it was collected (or for a use identified as
consistent with that purpose).</p> consistent with that purpose).</p>
<p> Entgra IoT Server 4.0.0 uses your personal information only for the <p> Entgra UEM Server 4.0.0 uses your personal information only for the
following purposes.</p> following purposes.</p>
<ul> <ul>
<li> <li>
To provide you with a personalized user experience. Entgra IoT To provide you with a personalized user experience. Entgra UEM
Server 4.0.0 uses your name and uploaded profile pictures for this Server 4.0.0 uses your name and uploaded profile pictures for this
purpose. purpose.
</li> </li>
<li> <li>
To protect your account from unauthorized access or potential To protect your account from unauthorized access or potential
hacking attempts. Entgra IoT Server 4.0.0 uses HTTP or TCP/IP hacking attempts. Entgra UEM Server 4.0.0 uses HTTP or TCP/IP
Headers for this purpose. Headers for this purpose.
</li> </li>
<li> <li>
@ -169,12 +169,12 @@
</li> </li>
<li> <li>
Derive statistical data for analytical purposes on system Derive statistical data for analytical purposes on system
performance improvements. Entgra IoT Server 4.0.0 will not keep any performance improvements. Entgra UEM Server 4.0.0 will not keep any
personal information after statistical calculations. Therefore, the personal information after statistical calculations. Therefore, the
statistical report has no means of identifying an individual person. statistical report has no means of identifying an individual person.
</li> </li>
<li> <li>
Entgra IoT Server 4.0.0 may use: Entgra UEM Server 4.0.0 may use:
<ol> <ol>
<li>IP Address to derive geographic information</li> <li>IP Address to derive geographic information</li>
<li> <li>
@ -186,9 +186,9 @@
</ul> </ul>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="disclosure-of-your-personal-information">Disclosure of your personal information</h2> <h2 id="disclosure-of-your-personal-information">Disclosure of your personal information</h2>
<p>Entgra IoT Server 4.0.0 only discloses personal information to the <p>Entgra UEM Server 4.0.0 only discloses personal information to the
relevant applications (also known as “Service Providers”) that are relevant applications (also known as “Service Providers”) that are
registered with Entgra IoT Server 4.0.0. These applications are registered with Entgra UEM Server 4.0.0. These applications are
registered by the identity administrator of your entity or registered by the identity administrator of your entity or
organization. Personal information is disclosed only for the purposes organization. Personal information is disclosed only for the purposes
for which it was collected (or for a use identified as consistent with for which it was collected (or for a use identified as consistent with
@ -197,26 +197,26 @@
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="legal-process">Legal process</h3> <h3 id="legal-process">Legal process</h3>
<p>Please note that the organisation, entity or individual running Entgra <p>Please note that the organisation, entity or individual running Entgra
IoT Server 4.0.0 may be compelled to disclose your personal UEM Server 4.0.0 may be compelled to disclose your personal
information with or without your consent when it is required by law information with or without your consent when it is required by law
following due and lawful process.</p> following due and lawful process.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="how-apim-store-or-keep-your-personal-information">Storage of personal information</h2> <h2 id="how-apim-store-or-keep-your-personal-information">Storage of personal information</h2>
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="where-your-personal-information-stored">Where your personal information is stored</h3> <h3 id="where-your-personal-information-stored">Where your personal information is stored</h3>
<p>Entgra IoT Server 4.0.0 stores your personal information in secured <p>Entgra UEM Server 4.0.0 stores your personal information in secured
databases. Entgra IoT Server 4.0.0 exercises proper industry accepted databases. Entgra UEM Server 4.0.0 exercises proper industry accepted
security measures to protect the database where your personal security measures to protect the database where your personal
information is held.Entgra IoT Server 4.0.0 as a product does not information is held.Entgra UEM Server 4.0.0 as a product does not
transfer or share your data with any third parties or locations.</p> transfer or share your data with any third parties or locations.</p>
<p>Entgra IoT Server 4.0.0 may use encryption to keep your personal data <p>Entgra UEM Server 4.0.0 may use encryption to keep your personal data
with an added level of security.</p> with an added level of security.</p>
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="how-long-does-apim-keep-your-personal-information">How long your personal information is retaineds &quest;</h3> <h3 id="how-long-does-apim-keep-your-personal-information">How long your personal information is retaineds &quest;</h3>
<p>Entgra IoT Server 4.0.0 retains your personal data as long as you are <p>Entgra UEM Server 4.0.0 retains your personal data as long as you are
an active user of our system. You can update your personal data at any an active user of our system. You can update your personal data at any
time using the given self-care user portals.</p> time using the given self-care user portals.</p>
<p>Entgra IoT Server 4.0.0 may keep hashed secrets to provide you with an <p>Entgra UEM Server 4.0.0 may keep hashed secrets to provide you with an
added level of security. This includes:</p> added level of security. This includes:</p>
<ul> <ul>
<li>Current password</li> <li>Current password</li>
@ -229,13 +229,13 @@
under, or the super-administrator if you do not use the tenant under, or the super-administrator if you do not use the tenant
feature.</p> feature.</p>
<p>Additionally, you can request to anonymize all traces of your <p>Additionally, you can request to anonymize all traces of your
activities that Entgra IoT Server 4.0.0 may have retained in logs, activities that Entgra UEM Server 4.0.0 may have retained in logs,
databases or analytical storage.</p> databases or analytical storage.</p>
<div class="margin-bottom-double"></div> <div class="margin-bottom-double"></div>
<h2 id="about">More Information</h2> <h2 id="about">More Information</h2>
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="changes-to-this-policy">Changes to this policy</h3> <h3 id="changes-to-this-policy">Changes to this policy</h3>
<p>Upgraded versions of Entgra IoT Server 4.0.0 may contain changes to <p>Upgraded versions of Entgra UEM Server 4.0.0 may contain changes to
this policy. Revisions to this policy will be packaged within such this policy. Revisions to this policy will be packaged within such
upgrades and would only apply to users who choose to use upgraded upgrades and would only apply to users who choose to use upgraded
versions.</p> versions.</p>
@ -243,7 +243,7 @@
<div class="margin-bottom"></div> <div class="margin-bottom"></div>
<h3 id="your-choices">Your choices</h3> <h3 id="your-choices">Your choices</h3>
<p> <p>
If you are already have an user account within Entgra IoT Server 4.0.0 If you are already have an user account within Entgra UEM Server 4.0.0
; you have the right to deactivate your account if you find that this ; you have the right to deactivate your account if you find that this
privacy policy is unacceptable to you. privacy policy is unacceptable to you.
</p> </p>
@ -261,25 +261,25 @@
<p> <p>
Entgra, its employees, partners, and affiliates do not have access to Entgra, its employees, partners, and affiliates do not have access to
and do not require, store, process or control any of the data, and do not require, store, process or control any of the data,
including personal data contained in Entgra IoT Server 4.0.0. All including personal data contained in Entgra UEM Server 4.0.0. All
data, including personal data is controlled and processed by the data, including personal data is controlled and processed by the
entity or individual running Entgra IoT Server 4.0.0. Entgra, its entity or individual running Entgra UEM Server 4.0.0. Entgra, its
employees partners and affiliates are not a data processor or a data employees partners and affiliates are not a data processor or a data
controller within the meaning of any data privacy regulations. Entgra controller within the meaning of any data privacy regulations. Entgra
does not provide any warranties or undertake any responsibility or does not provide any warranties or undertake any responsibility or
liability in connection with the lawfulness or the manner and purposes liability in connection with the lawfulness or the manner and purposes
for which Entgra IoT Server 4.0.0 is used by such entities or persons. for which Entgra UEM Server 4.0.0 is used by such entities or persons.
</p> </p>
<p> <p>
This privacy policy is for the informational purposes of the entity or This privacy policy is for the informational purposes of the entity or
persons running Entgra IoT Server 4.0.0 and sets out the processes and persons running Entgra UEM Server 4.0.0 and sets out the processes and
functionality contained within Entgra IoT Server 4.0.0 regarding functionality contained within Entgra UEM Server 4.0.0 regarding
personal data protection. It is the responsibility of entities and personal data protection. It is the responsibility of entities and
persons running Entgra IoT Server 4.0.0 to create and administer its persons running Entgra UEM Server 4.0.0 to create and administer its
own rules and processes governing users personal data, Please note own rules and processes governing users personal data, Please note
that the creation of such rules and processes may change the use, that the creation of such rules and processes may change the use,
storage and disclosure policies contained herein. Therefore users storage and disclosure policies contained herein. Therefore users
should consult the entity or persons running Entgra IoT Server 4.0.0 should consult the entity or persons running Entgra UEM Server 4.0.0
for its own privacy policy for details governing users personal data. for its own privacy policy for details governing users personal data.
</p> </p>
</div> </div>

@ -20,12 +20,12 @@
<%@ page import="org.apache.commons.lang.StringUtils"%> <%@ page import="org.apache.commons.lang.StringUtils"%>
<% if ("IOT Server".equals(request.getAttribute("headerTitle"))) { %> <% if ("UEM Server".equals(request.getAttribute("headerTitle"))) { %>
<div class="product-title"> <div class="product-title">
<div class="theme-icon inline auto transparent product-logo"> <div class="theme-icon inline auto transparent product-logo">
<img src=extensions/customAssets/logo.svg alt="Logo" /> <img src=extensions/customAssets/logo.svg alt="Logo" />
</div> </div>
<h1 class="product-title-text">IOT Server</h1> <h1 class="product-title-text">UEM Server</h1>
</div> </div>
<% } else { <% } else {

@ -0,0 +1,196 @@
#
# Copyright (c) 2021, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
#
# WSO2 Inc. licenses this file to you under the Apache License,
# Version 2.0 (the "License"); you may not use this file except
# in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
login=Sign In
welcome=Welcome
username=Username
password=Password
confirm.password=Confirm Password
email=Email
login.fail.message=Login failed! Please recheck the username and password and try again.
emailusername.fail.message=Invalid username! Username should be an E-Mail address.
username.fail.message=Could not find any account with this user name! Please recheck the username and try again.
password.fail.message=Login failed! Please recheck the password and try again.
recaptcha.fail.message=reCaptcha validation is required for user.
account.confirmation.pending=Account is unverified. An account activation link has been sent to your registered email address, please check your inbox.
password.reset.pending=Password reset is required. A password reset link has been sent to your registered email address, please check your inbox.
account.resend.email.success=Email sent successfully.
account.resend.email.fail=Email sent fail.
user.tenant.domain.mismatch.message=Application you are trying to access does not allow users from your organization.
remember.me=Remember me on this computer
remember.my.consent=Remember my consent
signin.to.authenticate1=Please sign in to authenticate to
signin.to.authenticate2=as
profile=Profile :
cancel=Cancel
approve=Approve
continue=Continue
next=Next
allow=Allow
deny=Deny
approve.always=Approve Always
approve.once=Approve Once
request.access.scope=requests access to
request.access.profile=would need to
saml.sso=SAML 2.0 based Single Sign-On
tenantListLabel=Tenant
select.tenant.dropdown.display.name=Select Tenant
super.tenant.display.name=Super Tenant
super.tenant=carbon.super
domain.unknown=domain.unknown
not.me=Not
privacy.policy.asgardio.description.pt1=Entgra supports WSO2
privacy.policy.asgardio.description.pt2=Asgardeo login.
privacy.policy.asgardio.description.pt3=If you are on a cloud deployment, contact Entgra to enable. Please follow the
privacy.policy.asgardio.description.pt4=documentation
privacy.policy.asgardio.description.pt5=for more details.
forgot.username.password=Forgot
forgot.username.password.or=or
forgot.password=Password
forgot.username=Username
login.as.different.user=Login as a different user
no.account=Don't have an account?
have.account=Already have an account?
register.now=Register Now
register=Register
no.confirmation.mail=Not received confirmation email?
resend.mail=Resend
openid=Open ID
openid.user.claims=OpenID User Claims
username.or.password.invalid=Username or Password is Invalid
create.an.account=Create an account
unauthorized.to.login=You are not authorized to login
domain.cannot.be.identified=Domain cannot be identified! Please retry.
wso2.identity.server=WSO2 Identity Server
identity.server=Identity Server
domain=Domain
submit=Submit
inc=Inc
all.rights.reserved=All rights reserved
verification=Verification
touch.your.u2f.device=Touch your FIDO device to Proceed
authentication.error=Authentication Error!
something.went.wrong.during.authentication=Something went wrong during the authentication process. Please try signing in again.
misconfiguration.error=Misconfiguration Error!
something.went.wrong.contact.admin=Something went wrong during the authentication process. Please contact identity admin.
attention=Attention
no.template.found=Page not found.
provide.mandatory.details=Provide Mandatory Details
requested.claims.recommendation= application,that you are trying to login to needs following information filled in the user profile. You can fill those below and proceed with the authentication. But it is advised to fill these information in your Identity Provider profile in order to avoid this step every time you login
logged.out=You have successfully logged out.
authorize=Authorize
invalid.request=Invalid Request
oauth.processing.error.msg=OAuth Processing Error Message
openid.connect.logout=OpenID connect logout
do.you.want.to.logout=Do you want to logout?
yes=Yes
no=No
openid2.profile=OpenID2.0 Profile
claim.uri=Claim URI
claim.value=Claim Value
internal.error.occurred=Internal Error Occurred
information=Information
user.details.submitted=User details successfully submitted
close=Close
other.login.options=Other login options
sign.in.with=Sign In With
domain.name=Domain Name
go=Go
please.select.recaptcha=Please select recaptcha
error.when.processing.authentication.request=Error when processing authentication request!
please.try.login.again=Please try login again!
you.are.redirected.back.to=You are now redirected back to,
if.the.redirection.fails.please.click=If the redirection fails, please click the
post=POST
enter.required.fields.to.complete.registration=Enter required fields to complete registration
first.name=First Name
last.name=Last Name
password.mismatch=Passwords did not match. Please try again
user.exists=User already exist
unknown.error=Unknown error occurred
authentication.failed.please.retry=Authentication Failed! Please Retry
user.consents=User Consents
mandatory.claims.recommendation=Mandatory claims are marked with an asterisk
mandatory.claims.warning.msg.1=You need to provide consent for
mandatory.claims.warning.msg.2=all the mandatory claims
mandatory.claims.warning.msg.3=in order to proceed
privacy.policy.cookies=Cookie Policy
privacy.policy.cookies.short.description=We use browser cookies to track your session to give better experience. You can refer our
privacy.policy.general=Privacy Policy
privacy.policy.privacy.short.description.approving.head=Make sure you trust
privacy.policy.privacy.short.description.approving=You may be sharing sensitive info with this site or app. Learn about how
privacy.policy.privacy.short.description.approving2=will handle your data by reviewing its
privacy.policy.privacy.short.description=By signing in, you agree to our
privacy.policy.for.more.details=for more details.
under.construction=This page is under construction
by.selecting.following.attributes=By selecting following attributes you agree to share them with the
select.all=Select All
requested.scopes=Granting permission to
requested.attributes=Know some of your details
please.select.approve.always=Please select either "Approve Once" or "Approve Always" to provide consent to requested scopes to continue
ok=Ok
mandatory.claims=Mandatory claims
configuration.error=Configuration Error!
authentication.mechanism.not.configured=Authentication mechanism not properly configured.
Error.while.building.the.account.recovery.endpoint.url=Error while building the account recovery endpoint url.
add.challenge.answers=Add Answers for Challenge Questions
answer.following.questions=Answer the following challenge questions
challenge.question.set=Challenge Question Set
select.challenge.question=Select one challenge question
answers.challenge.question=Answers for challenge questions
type.your.challenge.answer=Type your answers for the challenge questions
update=Update
enter.valid.answers.for.challenge.questions = Please enter valid answers for the challenge questions
already.logged.in = You are logged in.
log.in.as = Log in as {0}
not.you = Not You?
business.name=WSO2
business.homepage=http://wso2.com/
sign.in.different.account=Sign in with a different account
create.account=Create Account
login.success.app=Login successful for application:
close.browser=.Please close the browser and return to your device.
successful=Successful
device.flow.sign.in=Device Flow Sign In
no.sessions.selected=No Sessions Selected
mandatory.sessions.warning.msg.1=You need to select
mandatory.sessions.warning.msg.2=at lest 1 session
mandatory.sessions.warning.msg.3=in order to proceed
multiple.active.sessions.found=Multiple Active Session(s) Found
terminate.selected.active.sessions.and.proceed=Terminate Selected Active Sessions & Proceed
deny.login=Deny Login
refresh.sessions=Refresh Sessions
terminate.unwanted.sessions.message.1=You need to either terminate unwanted active session(s) & proceed, or deny the login
terminate.unwanted.sessions.message.2=Please select your option
you.currently.have.x.active.sessions.1=You currently have
you.currently.have.x.active.sessions.2=active session(s)
you.currently.have.x.active.sessions.3=You are not allowed to have more than
browser=Browser
platform=Platform
last.accessed=Last Accessed
Updated.the.password.successfully=Updated the password successfully
suspicious.authentication.attempts=Suspicious authentication attempts found
suspicious.authentication.attempts.description=Suspicious login attempts found during the authentication process. Please try signing in again.
resend.confirmation.page.title=Resend Confirmation Email
resend.confirmation.page.message=Please complete the captcha below.
80018=Authentication error! Provided username already exists.
80019=Error while checking the user details.
80020=Internal Error Occurred. Error while getting the user store details.
80021=Invalid user store domain is specified.
80022=Internal Error Occurred. Error while getting the user store manager.
80023=Invalid user store is specified.

@ -0,0 +1,189 @@
#
# Copyright (c) 2021, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
#
# WSO2 Inc. licenses this file to you under the Apache License,
# Version 2.0 (the "License"); you may not use this file except
# in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
login=Se connecter
welcome=Bienvenue
username=Nom d'utilisateur
password=Mot de passe
confirm.password=Confirmer le mot de passe
email=Courriel
login.fail.message=Connexion échouée ! Veuillez revérifier le nom d'utilisateur et le mot de passe et réessayer.
emailusername.fail.message=Nom d'utilisateur invalide ! Le nom d'utilisateur doit être une adresse e-mail.
username.fail.message=Impossible de trouver un compte avec ce nom d'utilisateur ! Veuillez revérifier le nom d'utilisateur et réessayer.
password.fail.message=Connexion échouée ! Veuillez revérifier le mot de passe et réessayer.
recaptcha.fail.message=La validation par reCaptcha est requise pour l'utilisateur.
account.confirmation.pending=Le compte n'est pas vérifié. Un lien d'activation de compte a été envoyé à votre adresse électronique enregistrée, veuillez vérifier votre boîte de réception.
password.reset.pending=La réinitialisation du mot de passe est requise. Un lien de réinitialisation du mot de passe a été envoyé à votre adresse électronique
account.resend.email.success=L'e-mail a été envoyé avec succès.
account.resend.email.fail=L'envoi de l'email a échoué.
user.tenant.domain.mismatch.message=L'application à laquelle vous essayez d'accéder n'autorise pas les utilisateurs de votre organisation.
remember.my.consent=Souviens-toi de mon consentement
remember.me=Se souvenir de moi sur cet ordinateur
signin.to.authenticate1=Veuillez vous connecter pour vous authentifier
signin.to.authenticate2=en tant que
profile=Profil :
cancel=Annuler
approve=Approuver
continue=Continuer
next=Suivant
allow=Autoriser
deny=Refuser
approve.always=Toujours approuver
approve.once=Approuver qu'une fois
request.access.scope=demande d'accès à
request.access.profile=aurait besoin de
saml.sso=Authentification unique basée sur SAML 2.0
tenantListLabel=Locataire
select.tenant.dropdown.display.name=Sélectionner un locataire
super.tenant.display.name=Hôte
super.tenant=carbon.super
domain.unknown=domain.unknown
not.me=Pas
forgot.username.password=Oublié votre
forgot.username.password.or=ou
forgot.password=Mot de passe
forgot.username=Nom d'utilisateur
login.as.different.user=Se connecter en tant qu' un autre utilisateur
no.account=Vous n'avez pas de compte ?
have.account=Vous avez déjà un compte ?
register.now=S'inscrire maintenant
register=Inscription
no.confirmation.mail=Vous n'avez pas reçu d'e-mail de confirmation ?
resend.mail=Re-envoyer
openid=Open ID
openid.user.claims=Attributs utilisateur OpenID
username.or.password.invalid=Le nom d'utilisateur ou le mot de passe est invalide
create.an.account=Créer un compte
unauthorized.to.login=Vous n'êtes pas autorisé à vous connecter
domain.cannot.be.identified=Le domaine ne peut pas être identifié ! Veuillez réessayer.
wso2.identity.server=WSO2 Identity Server
identity.server=Identity Server
domain=Domaine
submit=Soumettre
inc=Inc
all.rights.reserved=Tous droits réservés
verification=Vérification
touch.your.u2f.device=Touchez votre appareil FIDO pour continuer
authentication.error=Erreur d'authentification !
something.went.wrong.during.authentication=Quelque chose s'est mal passé pendant le processus d'authentification. Veuillez essayer de vous connecter à nouveau.
misconfiguration.error=Erreur de configuration !
something.went.wrong.contact.admin=Quelque chose s'est mal passé pendant le processus d'authentification. Veuillez contacter l'administrateur de l'identité.
attention=Attention
no.template.found=Page non trouvée.
provide.mandatory.details=Fournir les détails obligatoires
requested.claims.recommendation= L'application, à laquelle vous essayez de vous connecter, a besoin des informations figurant dans votre profil d'utilisateur. Vous pouvez les remplir ci-dessous et procéder à l'authentification. Mais il est conseillé de remplir ces informations dans le profil de votre fournisseur d'identité afin d'éviter cette étape à chaque fois que vous vous connectez
logged.out=You have successfully logged out.
authorize=Autoriser
invalid.request=Requête invalide
oauth.processing.error.msg=Message d'erreur de traitement OAuth
openid.connect.logout=Déconnexion OpenID connect
do.you.want.to.logout=Voulez-vous vous déconnecter ?
yes=Oui
no=Non
openid2.profile=Profil OpenID
claim.uri=URI du claim
claim.value=Valeur du claim
internal.error.occurred=Une erreur interne s'est produite
information=Information
user.details.submitted= Informations de l'utilisateur soumises avec succès
close=Fermer
other.login.options=Autres options de connexion
sign.in.with=Se connecter avec
domain.name=Nom de domaine
go=Aller
please.select.recaptcha=Veuillez sélectionner recaptcha
error.when.processing.authentication.request=Erreur lors du traitement de la demande d'authentification !
please.try.login.again=Veuillez réessayer de vous connecter !
you.are.redirected.back.to=Vous êtes maintenant redirigé vers,
if.the.redirection.fails.please.click=Si la redirection échoue, veuillez cliquer sur le
post=POST
enter.required.fields.to.complete.registration=Renseigner les champs obligatoires pour compléter l'enregistrement
first.name=Prénom
last.name=Nom de famille
password.mismatch=Les mots de passe ne correspondent pas. Veuillez réessayer.
user.exists=L'utilisateur existe déjà
unknown.error=Une erreur inconnue s'est produite
authentication.failed.please.retry=Échec de l'authentification ! Veuillez réessayer
user.consents= Consentement de l'utilisateur
mandatory.claims.recommendation= Les attributs obligatoires sont marqués d'un astérisque
mandatory.claims.warning.msg.1=Vous devez fournir un consentement pour
mandatory.claims.warning.msg.2=tous les attributs obligatoires
mandatory.claims.warning.msg.3=afin de poursuivre
privacy.policy.cookies=Politique en matière de cookies
privacy.policy.cookies.short.description=Nous utilisons des cookies pour suivre votre session afin de vous offrir une meilleure expérience. Vous pouvez consulter notre
privacy.policy.general=Politique de confidentialité
privacy.policy.privacy.short.description.approving.head=Assurez-vous que vous avez confiance en
privacy.policy.privacy.short.description.approving=Il se peut que vous partagiez des informations sensibles avec ce site ou cette application. Découvrez comment
privacy.policy.privacy.short.description.approving2=traitera vos données en examinant sa
privacy.policy.privacy.short.description=En vous connectant, vous acceptez notre
privacy.policy.for.more.details=pour plus de détails.
under.construction=Cette page est en cours de construction
by.selecting.following.attributes=En sélectionnant les attributs suivants, vous acceptez de les partager avec
select.all=Sélectionner tout
requested.scopes=Accorder la permission de
requested.attributes= Connaître certaines de vos données personnelles
please.select.approve.always=Veuillez sélectionner "Approuver une fois" ou "Approuver toujours" pour donner votre consentement pour transmettre les informations demandés
ok=Ok
mandatory.claims= Attributs obligatoires
configuration.error=Erreur de configuration !
authentication.mechanism.not.configured=Mécanisme d'authentification mal configuré.
Error.while.building.the.account.recovery.endpoint.url=Erreur lors de la construction de l'url de récupération du compte.
add.challenge.answers=Ajouter des réponses aux questions de sécurité
answer.following.questions=Répondre aux questions suivantes
challenge.question.set=Ensemble de questions de sécurité
select.challenge.question=Choisissez une question de sécurité
answers.challenge.question=Réponses aux questions de sécurité
type.your.challenge.answer=Tapez vos réponses pour les questions de sécurité
update=Mise à jour
enter.valid.answers.for.challenge.questions = Veuillez entrer des réponses valables pour les questions de sécurité
already.logged.in = Vous êtes connecté.
log.in.as = Connectez-vous en tant que {0}
not.you = Pas vous ?
business.name=WSO2
business.homepage=http://wso2.com/
sign.in.different.account=Se connecter avec un compte différent
create.account=Créer un compte
login.success.app=Connexion réussie pour l'application :
close.browser=.Veuillez fermer le navigateur et retourner à votre appareil.
successful=Succès
device.flow.sign.in=Connexion via un dispositif tiers
no.sessions.selected=Aucune session sélectionnée
mandatory.sessions.warning.msg.1=Vous devez sélectionner
mandatory.sessions.warning.msg.2=au moins 1 session
mandatory.sessions.warning.msg.3=pour pouvoir procéder
multiple.active.sessions.found=Plusieurs session(s) active(s) trouvée(s)
terminate.selected.active.sessions.and.proceed=Terminer les sessions actives sélectionnées et poursuivre
deny.login=Connexion refusée
refresh.sessions=Rafraîchir les sessions
terminate.unwanted.sessions.message.1=Vous devez soit mettre fin aux sessions actives non souhaitées et continuer, soit refuser la connexion
terminate.unwanted.sessions.message.2=Veuillez sélectionner votre option
you.currently.have.x.active.sessions.1=Vous avez actuellement
you.currently.have.x.active.sessions.2=session(s) active(s)
you.currently.have.x.active.sessions.3=Vous n'êtes pas autorisé à avoir plus de
browser=Navigateur
platform=Plate-forme
last.accessed=Dernier accès
Updated.the.password.successfully=Mot de passe mis à jour avec succès
resend.confirmation.page.title=Renvoyer un courriel de confirmation
resend.confirmation.page.message=Veuillez compléter le captcha ci-dessous.
80018=Erreur d'authentification ! Le nom d'utilisateur fourni existe déjà.
80019=Erreur lors de la vérification des détails de l'utilisateur.
80020=Une erreur interne s'est produite. Erreur lors de l'obtention des détails du magasin de l'utilisateur.
80021=Un domaine de magasin d'utilisateurs non valide est spécifié.
80022=Une erreur interne s'est produite. Erreur lors de l'obtention du gestionnaire de magasin d'utilisateurs.
80023=Un magasin d'utilisateurs non valide est spécifié.
Loading…
Cancel
Save