parent
7cb98b6e09
commit
f2f1855f05
@ -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>
|
@ -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…
Reference in new issue