From 7ad4fb50165ea1e7f925d783cd6de72f7b6d4752 Mon Sep 17 00:00:00 2001 From: ckm007 Date: Wed, 8 Jun 2022 10:43:52 +0530 Subject: [PATCH 01/21] [DSD-1102] placed keycloak init scripts --- keycloak-init/.gitignore | 1 + keycloak-init/Dockerfile | 47 ++++++++ keycloak-init/README.md | 38 ++++++ keycloak-init/keycloak_init.py | 199 +++++++++++++++++++++++++++++++ keycloak-init/keycloak_logout.py | 55 +++++++++ keycloak-init/run.sh | 5 + keycloak-init/users.yaml | 22 ++++ 7 files changed, 367 insertions(+) create mode 100644 keycloak-init/.gitignore create mode 100644 keycloak-init/Dockerfile create mode 100644 keycloak-init/README.md create mode 100755 keycloak-init/keycloak_init.py create mode 100755 keycloak-init/keycloak_logout.py create mode 100755 keycloak-init/run.sh create mode 100644 keycloak-init/users.yaml diff --git a/keycloak-init/.gitignore b/keycloak-init/.gitignore new file mode 100644 index 00000000..b3de60f1 --- /dev/null +++ b/keycloak-init/.gitignore @@ -0,0 +1 @@ +python-keycloak-plus.tgz diff --git a/keycloak-init/Dockerfile b/keycloak-init/Dockerfile new file mode 100644 index 00000000..0279704a --- /dev/null +++ b/keycloak-init/Dockerfile @@ -0,0 +1,47 @@ +FROM python:3 + +ARG SOURCE +ARG COMMIT_HASH +ARG COMMIT_ID +ARG BUILD_TIME +LABEL source=${SOURCE} +LABEL commit_hash=${COMMIT_HASH} +LABEL commit_id=${COMMIT_ID} +LABEL build_time=${BUILD_TIME} + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user=mosip + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user_group=mosip + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user_uid=1001 + +# can be passed during Docker build as build time environment for github branch to pickup configuration from. +ARG container_user_gid=1001 + +# install packages and create user +RUN apt-get -y update \ +&& groupadd -g ${container_user_gid} ${container_user_group} \ +&& useradd -u ${container_user_uid} -g ${container_user_group} -s /bin/sh -m ${container_user} + +COPY requirements.txt . +RUN pip3 install -r requirements.txt + +# change permissions of file inside working dir +RUN chown -R ${container_user}:${container_user} /home/${container_user} + +# select container user for all tasks +USER ${container_user_uid}:${container_user_gid} + +WORKDIR /home/${container_user} +COPY keycloak_init.py . + +ENV KEYCLOAK_SERVER_URL= +ENV KEYCLOAK_ADMIN_USER=user +ENV KEYCLOAK_ADMIN_PASSWORD= +ENV INPUT_DIR=/opt/mosip/input +ENV INPUT_FILE=input.yaml + +CMD python3 keycloak_init.py $KEYCLOAK_SERVER_URL $KEYCLOAK_ADMIN_USER $KEYCLOAK_ADMIN_PASSWORD $INPUT_DIR/$INPUT_FILE diff --git a/keycloak-init/README.md b/keycloak-init/README.md new file mode 100644 index 00000000..794ce529 --- /dev/null +++ b/keycloak-init/README.md @@ -0,0 +1,38 @@ +# Keycloak Init + +## Context + +After Keycloak is installed, it needs to be populated with base data that is needed for MOSIP. The script and docker created here provide this function. The script may be run standalone or as a docker. + +## Prerequisites +* Keycloak server must be running and available via a url like `https://iam.xyz.net`. +* Updated `input.yaml` file +* Install utilities +* Install python3 virtual environment and activate the same as per the link https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/ + + +``` +$ pip3 install -r requirements.txt +``` + +## Script +* Help +``` +$ python3 keycloak_init.py --help +``` +* Run (example): +``` +$ python3 keycloak_init.py https://iam.xyz.net user user password input.yaml +``` + +# Docker +* Create +``` +$ docker build -t /keycloak-init: . +$ docker push /keycloak-init: +``` +* Run + +See `run.sh` + +To just create users see example `users.yaml` diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py new file mode 100755 index 00000000..558f6136 --- /dev/null +++ b/keycloak-init/keycloak_init.py @@ -0,0 +1,199 @@ +#!/usr/local/bin/python3 +# Script to initialize values in Keycloak + +import os +import sys +import ast +import argparse +import secrets +import json +import yaml +import traceback +from keycloak import KeycloakAdmin +from keycloak.exceptions import raise_error_from_response, KeycloakError +from keycloak.connection import ConnectionManager +from keycloak.urls_patterns import URL_ADMIN_USER_REALM_ROLES + +class KeycloakSession: + def __init__(self, realm, server_url, user, pwd, ssl_verify): + self.keycloak_admin = KeycloakAdmin(server_url=server_url, + username=user, + password=pwd, + realm_name=realm, + verify=ssl_verify) + def create_realm(self, realm): + payload = { + "realm" : realm, + "enabled": True, + "accessCodeLifespan": 7200, + "accessCodeLifespanLogin": 1800, + "accessCodeLifespanUserAction": 300, + "accessTokenLifespan": 86400, + "accessTokenLifespanForImplicitFlow": 900, + "actionTokenGeneratedByAdminLifespan": 43200, + "actionTokenGeneratedByUserLifespan": 300 + } + try: + self.keycloak_admin.create_realm(payload, skip_exists=False) + except KeycloakError as e: + if e.response_code == 409: + print('Exists, updating %s' % realm) + self.keycloak_admin.update_realm(realm, payload) + except: + raise + + return 0 + + def create_role(self, realm, role): + print('Creating role %s for realm %s' % (role, realm)) + self.keycloak_admin.realm_name = realm # work around because otherwise role was getting created in master + self.keycloak_admin.create_realm_role({'name' : role, 'clientRole' : False}, skip_exists=True) + self.keycloak_admin.realm_name = 'master' # restore + return 0 + + # sa_roles: service account roles + def create_client(self, realm, client, secret, sa_roles=None): + self.keycloak_admin.realm_name = realm # work around because otherwise client was getting created in master + payload = { + "clientId" : client, + "secret" : secret, + "standardFlowEnabled": True, + "serviceAccountsEnabled": True, + "directAccessGrantsEnabled": True, + "redirectUris": ['*'], + "authorizationServicesEnabled": True + } + try: + print('Creating client %s' % client) + self.keycloak_admin.create_client(payload, skip_exists=False) # If exists, update. So don't skip + except KeycloakError as e: + if e.response_code == 409: + print('Exists, updating %s' % client) + client_id = self.keycloak_admin.get_client_id(client) + self.keycloak_admin.update_client(client_id, payload) + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + if len(sa_roles) == 0: # Skip the below step + self.keycloak_admin.realm_name = 'master' # restore + return + + try: + roles = [] # Get full role reprentation of all roles + for role in sa_roles: + role_rep = self.keycloak_admin.get_realm_role(role) + roles.append(role_rep) + client_id = self.keycloak_admin.get_client_id(client) + user = self.keycloak_admin.get_client_service_account_user(client_id) + params_path = {"realm-name": self.keycloak_admin.realm_name, "id": user["id"]} + self.keycloak_admin.raw_post(URL_ADMIN_USER_REALM_ROLES.format(**params_path), data=json.dumps(roles)) + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + self.keycloak_admin.realm_name = 'master' # restore + + def create_user(self, realm, uname, email, fname, lname, password, temp_flag): + self.keycloak_admin.realm_name = realm + payload = { + "username" : uname, + "email" : email, + "firstName" : fname, + "lastName" : lname, + "enabled": True + } + try: + print('Creating user %s' % uname) + self.keycloak_admin.create_user(payload, False) # If exists, update. So don't skip + user_id = self.keycloak_admin.get_user_id(uname) + self.keycloak_admin.set_user_password(user_id, password, temporary=temp_flag) + except KeycloakError as e: + if e.response_code == 409: + print('Exists, updating %s' % uname) + user_id = self.keycloak_admin.get_user_id(uname) + self.keycloak_admin.update_user(user_id, payload) + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + self.keycloak_admin.realm_name = 'master' # restore + + def assign_user_roles(self, realm, username, roles): + self.keycloak_admin.realm_name = realm + roles = [self.keycloak_admin.get_realm_role(role) for role in roles] + try: + print(f'''Get user id for {username}''') + user_id = self.keycloak_admin.get_user_id(username) + self.keycloak_admin.assign_realm_roles(user_id, roles) + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + self.keycloak_admin.realm_name = 'master' # restore + +def args_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('server_url', type=str, help='Full url to point to the server for auth: Eg. https://iam.xyz.com/auth/. Note: slash is important') + parser.add_argument('user', type=str, help='Admin user') + parser.add_argument('password', type=str, help='Admin password') + parser.add_argument('input_yaml', type=str, help='File containing input for roles and clients in YAML format') + parser.add_argument('--disable_ssl_verify', help='Disable ssl cert verification while connecting to server', action='store_true') + args = parser.parse_args() + return args + +def main(): + + args = args_parse() + server_url = args.server_url + user = args.user + password = args.password + input_yaml = args.input_yaml + + ssl_verify = True + if args.disable_ssl_verify: + ssl_verify = False + + fp = open(input_yaml, 'rt') + values = yaml.load(fp, Loader=yaml.FullLoader) + + server_url = server_url + '/auth/' # Full url to access api + try: + print('Create realms ') + print(server_url) + ks = KeycloakSession('master', server_url, user, password, ssl_verify) + for realm in values: + r = ks.create_realm(realm) # {realm : [role]} + + for realm in values: + print('Create roles for realm %s' % realm) + roles = values[realm]['roles'] + for role in roles: + r = ks.create_role(realm, role) + + # Expect secrets passed via env variables. + clients = values[realm]['clients'] + for client in clients: + secret_env_name = '%s_%s_secret' % (realm, client['name']) + secret_env_name = secret_env_name.replace('-', '_') # Compatible with environment variables + secret = os.environ.get(secret_env_name) + if secret is None: # Env variable not found + print('Secret environment variable %s not found, generating' % secret_env_name) + secret = secrets.token_urlsafe(16) + r = ks.create_client(realm, client['name'], secret, client['saroles']) + + users = values[realm]['users'] + for user in users: + print(f'''Creating user {user['username']}''') + r = ks.create_user(realm, user['username'], user['email'], user['firstName'], user['lastName'], user['password'], user['temporary']) + r = ks.assign_user_roles(realm, user['username'], user['realmRoles']) + except: + formatted_lines = traceback.format_exc() + print(formatted_lines) + sys.exit(1) + + sys.exit(r) + +if __name__=="__main__": + main() + diff --git a/keycloak-init/keycloak_logout.py b/keycloak-init/keycloak_logout.py new file mode 100755 index 00000000..bb23e5b9 --- /dev/null +++ b/keycloak-init/keycloak_logout.py @@ -0,0 +1,55 @@ +#!/usr/local/bin/python3 +# Script to logout a given user (given by user name) + +import os +import sys +import ast +import argparse +import secrets +import json +import yaml +import traceback +from keycloak import KeycloakAdmin +from keycloak.exceptions import raise_error_from_response, KeycloakError +from keycloak.connection import ConnectionManager +from keycloak.urls_patterns import URL_ADMIN_USER_REALM_ROLES + +def args_parse(): + parser = argparse.ArgumentParser() + parser.add_argument('server_url', type=str, help='Full url to point to the server for auth: Eg. https://iam.xyz.com') + parser.add_argument('admin_user', type=str, help='Admin user') + parser.add_argument('admin_password', type=str, help='Admin password') + parser.add_argument('client_name', type=str, help='Name of the client that needs to be logged out') + parser.add_argument('realm', type=str, help='Realm of client') + parser.add_argument('--disable_ssl_verify', help='Disable ssl cert verification while connecting to server', action='store_true') + args = parser.parse_args() + return args + +def main(): + + args = args_parse() + ssl_verify = True + if args.disable_ssl_verify: + ssl_verify = False + + server_url = args.server_url + '/auth/' # Full url to access api + try: + keycloak_admin = KeycloakAdmin(server_url=server_url, + username=args.admin_user, + password=args.admin_password, + realm_name='master', + verify=ssl_verify) + keycloak_admin.realm_name = args.realm + client_id = keycloak_admin.get_client_id(args.client_name) + user = keycloak_admin.get_client_service_account_user(client_id) + keycloak_admin.logout(user['id']) + except: + formatted_lines = traceback.format_exc() + print(formatted_lines) + sys.exit(1) + + sys.exit(0) + +if __name__=="__main__": + main() + diff --git a/keycloak-init/run.sh b/keycloak-init/run.sh new file mode 100755 index 00000000..97a25b73 --- /dev/null +++ b/keycloak-init/run.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Examples of how to run keycloak init using docker and directly wiht python. +docker run --rm -v /Users/puneet/Documents/mosip/develop/mosip-infra/build/keycloak-init/:/opt/mosip/input -e KEYCLOAK_ADMIN_USER=admin -e KEYCLOAK_ADMIN_PASSWORD=password -e KEYCLOAK_SERVER_URL=https://iam.sandbox.mosip.net -e INPUT_FILE=user.yaml mosipdev/keycloak-init:develop + +#python keycloak_init.py https://iam.v3box1.mosip.net admin input.yaml diff --git a/keycloak-init/users.yaml b/keycloak-init/users.yaml new file mode 100644 index 00000000..00918fa3 --- /dev/null +++ b/keycloak-init/users.yaml @@ -0,0 +1,22 @@ +## YAML to create a users +mosip: # realm + roles: [] + clients: [] + users: # list of users + - username: test_user15 + email: test_user15@xyz.com + firstName: Test + lastName: User15 + password: abcde + temporary: False + realmRoles: + - PARTNER + - username: test_user16 + email: test_user16@xyz.com + firstName: Test + lastName: User16 + password: abcde + temporary: False + realmRoles: + - REGISTRATION_OFFICER + From 70ae1becd168211dd0a598f5e4715f5d621ca800 Mon Sep 17 00:00:00 2001 From: ckm007 Date: Wed, 8 Jun 2022 10:44:18 +0530 Subject: [PATCH 02/21] [DSD-1102] updated the push triggers --- .github/workflows/push_trigger.yml | 828 +---------------------------- 1 file changed, 7 insertions(+), 821 deletions(-) diff --git a/.github/workflows/push_trigger.yml b/.github/workflows/push_trigger.yml index 40cbefe5..e9b024da 100644 --- a/.github/workflows/push_trigger.yml +++ b/.github/workflows/push_trigger.yml @@ -5,491 +5,18 @@ on: push: branches: - master - - 1.0.* - develop - 1.1.* - - MOSIP-11719 - 1.2.* jobs: - build-kernel-ref-idobjectvalidator: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo ${{ env.BRANCH_NAME }} - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd kernel - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Analyze with SonarCloud - run: | - cd kernel - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_kernel-ref-idobjectvalidator -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - build-pre-registration-booking-service: - - runs-on: ubuntu-latest - env: - NAMESPACE: ${{ secrets. dev_namespace_docker_hub }} - SERVICE_NAME: pre-registration-booking-service - SERVICE_LOCATION: pre-registration-booking-service - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd pre-registration-booking-service - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Analyze with SonarCloud - run: | - cd pre-registration-booking-service - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_pre-registration-booking-service -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - VERSION=$BRANCH_NAME - echo "push version $VERSION" - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - publish_to_nexus_kernel_prereg: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.RELEASE_USER}} ${{secrets.RELEASE_TOKEN}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd kernel - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Publish the maven package - run: | - cd kernel && mvn deploy -DskipTests -DaltDeploymentRepository=ossrh::default::${{ secrets.OSSRH_SNAPSHOT_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - cd .. - cd pre-registration-booking-service && mvn deploy -DskipTests -DaltDeploymentRepository=ossrh::default::${{ secrets.OSSRH_SNAPSHOT_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} - GPG_TTY: $(tty) -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - docker-registration-processor-external-stage: - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: registration-processor-external-stage - SERVICE_LOCATION: registration-processor/registration-processor-external-stage - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd registration-processor/registration-processor-external-stage - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Analyze with SonarCloud - run: | - cd registration-processor/registration-processor-external-stage - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_registration-processor-external-stage -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - VERSION=$BRANCH_NAME - echo "push version $VERSION" - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - docker-registration-processor-external-integration-service: - - runs-on: ubuntu-latest - env: - NAMESPACE: mosipdev - SERVICE_NAME: registration-processor-external-integration-service - SERVICE_LOCATION: registration-processor/registration-processor-external-integration-service - - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd registration-processor/registration-processor-external-integration-service - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Analyze with SonarCloud - run: | - cd registration-processor/registration-processor-external-integration-service - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_registration-processor-external-integration-service -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - name: Build image - run: | - cd "./${{env.SERVICE_LOCATION}}" - docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} - - - name: Log into registry - run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin - - - name: Push image - run: | - IMAGE_ID=$NAMESPACE/$SERVICE_NAME - - # Change all uppercase to lowercase - IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - VERSION=$BRANCH_NAME - echo "push version $VERSION" - echo IMAGE_ID=$IMAGE_ID - echo VERSION=$VERSION - docker tag $SERVICE_NAME $IMAGE_ID:$VERSION - docker push $IMAGE_ID:$VERSION -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - build-biosdk-client: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo ${{ env.BRANCH_NAME }} - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd biosdk-client - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Analyze with SonarCloud - run: | - cd biosdk-client - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_biosdk-client -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - name: Publish the maven package - run: | - cd biosdk-client && mvn deploy -DskipTests -DaltDeploymentRepository=ossrh::default::${{ secrets.OSSRH_SNAPSHOT_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} - GPG_TTY: $(tty) -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - # This workflow contains a single job for building and pushing biosdk service docker" - build-biosdk-service: + build-keycloak: runs-on: ubuntu-latest env: NAMESPACE: ${{ secrets. dev_namespace_docker_hub }} - SERVICE_NAME: biosdk-server - SERVICE_LOCATION: biosdk-services + SERVICE_NAME: mosip-keycloak + SERVICE_LOCATION: keycloak # Steps represent a sequence of tasks that will be executed as part of the job steps: @@ -508,51 +35,6 @@ jobs: # Strip git ref prefix from version echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo ${{ env.BRANCH_NAME }} - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd biosdk-services - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - - name: Analyze with SonarCloud - run: | - cd biosdk-services - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_biosdk-service -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - name: Build image run: | cd "./${{env.SERVICE_LOCATION}}" @@ -564,6 +46,7 @@ jobs: - name: Push image run: | IMAGE_ID=$NAMESPACE/$SERVICE_NAME + # Change all uppercase to lowercase IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') VERSION=$BRANCH_NAME @@ -572,164 +55,14 @@ jobs: echo VERSION=$VERSION docker tag $SERVICE_NAME $IMAGE_ID:$VERSION docker push $IMAGE_ID:$VERSION -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - build-cache-provider-hazelcast: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo ${{ env.BRANCH_NAME }} - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd cache-provider-hazelcast - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Publish the maven package - run: | - cd cache-provider-hazelcast && mvn deploy -DskipTests -DaltDeploymentRepository=ossrh::default::${{ secrets.OSSRH_SNAPSHOT_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} - GPG_TTY: $(tty) -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - -# build-admin-ui: -# runs-on: ubuntu-latest -# env: -# NAMESPACE: ${{ secrets. dev_namespace_docker_hub }} -# SERVICE_NAME: admin-ui -# SERVICE_LOCATION: admin-ui -# -# # Steps represent a sequence of tasks that will be executed as part of the job -# steps: -# # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it -# - uses: actions/checkout@v2 -# - uses: actions/setup-node@v1 -# -# - name: npm install -# run: cd ${{ env.SERVICE_LOCATION }} && npm install --ignore-scripts -# -# - name: npm build -# run: cd ${{ env.SERVICE_LOCATION }} && npm run-script build -- --prod --base-href . --output-path=dist -# -# - name: Setup branch and env -# run: | -# # Strip git ref prefix from version -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV -# -# - name: setup environment -# run: | -# # Strip git ref prefix from version -# echo "GPG_TTY=$(tty)" >> $GITHUB_ENV -# echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV -# -# - name: run sonar analysis -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# echo "sonar.host.url=https://sonarcloud.io/ -# sonar.login=${{ secrets.SONAR_TOKEN }} -# sonar.projectKey=mosip_admin-ui -# sonar.organization=${{ secrets.ORG_KEY }} -# sonar.sourceEncoding=UTF-8 -# sonar.sources=src -# sonar.exclusions=**/node_modules/** -# sonar.tests=src -# sonar.test.inclusions=**/*.spec.ts -# sonar.typescript.lcov.reportPaths=coverage/lcov.info" >> sonar-project.properties -# npm install sonar-scanner && npm run sonar -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} -# -# - name: Build image -# run: | -# cd "./${{env.SERVICE_LOCATION}}" -# docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} -# -# - name: Log into registry -# run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin -# -# - name: Push image -# run: | -# IMAGE_ID=$NAMESPACE/$SERVICE_NAME -# # Change all uppercase to lowercase -# IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') -# VERSION=$BRANCH_NAME -# echo "push version $VERSION" -# echo IMAGE_ID=$IMAGE_ID -# echo VERSION=$VERSION -# docker tag $SERVICE_NAME $IMAGE_ID:$VERSION -# docker push $IMAGE_ID:$VERSION -## - uses: 8398a7/action-slack@v3 -## with: -## status: ${{ job.status }} -## fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -## env: -## SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -## if: failure() # Pick up events even if the job fails or is canceled. - - # This workflow contains a single job called "build" - build-keycloak: + build-keycloak-init: runs-on: ubuntu-latest env: NAMESPACE: ${{ secrets. dev_namespace_docker_hub }} - SERVICE_NAME: mosip-keycloak - SERVICE_LOCATION: keycloak + SERVICE_NAME: keycloak-init + SERVICE_LOCATION: keycloak-init # Steps represent a sequence of tasks that will be executed as part of the job steps: @@ -768,150 +101,3 @@ jobs: echo VERSION=$VERSION docker tag $SERVICE_NAME $IMAGE_ID:$VERSION docker push $IMAGE_ID:$VERSION -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - - build-demosdk: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo ${{ env.BRANCH_NAME }} - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd demosdk - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Analyze with SonarCloud - run: | - cd demosdk - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_biosdk-client -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - name: Publish the maven package - run: | - cd demosdk && mvn deploy -DskipTests -DaltDeploymentRepository=ossrh::default::${{ secrets.OSSRH_SNAPSHOT_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} - GPG_TTY: $(tty) -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - - build-authentication-ref-impl: - - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 - with: - ref: ${{ github.ref }} - java-version: 11 - server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml - settings-path: ${{ github.workspace }} # location for the settings.xml file - - - name: Setup branch and env - run: | - # Strip git ref prefix from version - echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV - echo "GPG_TTY=$(tty)" >> $GITHUB_ENV - - name: Setup branch and GPG public key - run: | - # Strip git ref prefix from version - echo ${{ env.BRANCH_NAME }} - echo ${{ env.GPG_TTY }} - sudo apt-get --yes install gnupg2 - gpg2 --import ./.github/keys/mosipgpgkey_pub.gpg - gpg2 --quiet --batch --passphrase=${{secrets.gpg_secret}} --allow-secret-key-import --import ./.github/keys/mosipgpgkey_sec.gpg - - uses: actions/cache@v1 - with: - path: ~/.m2/repository - key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-maven-${{ env.BRANCH_NAME }} - - name: Install xmllint - run: | - sudo apt-get update - sudo apt-get install libxml2-utils - - name: Setup the settings file for ossrh server - run: echo " ossrh ${{secrets.ossrh_user}} ${{secrets.ossrh_secret}} ossrh true gpg2 ${{secrets.gpg_secret}} allow-snapshots true snapshots-repo https://oss.sonatype.org/content/repositories/snapshots false true releases-repo https://oss.sonatype.org/service/local/staging/deploy/maven2 true false sonar . https://sonarcloud.io false " > $GITHUB_WORKSPACE/settings.xml - - - name: Build with Maven - run: | - cd authentication - mvn -B package -s $GITHUB_WORKSPACE/settings.xml --file pom.xml - - name: Ready the springboot artifacts - run: find -name '*.jar' -executable -type f -exec zip release.zip {} + - - - name: Analyze with SonarCloud - run: | - cd authentication - mvn -B -Dgpg.skip verify sonar:sonar -Dsonar.projectKey=mosip_biosdk-client -Dsonar.organization=${{ secrets.ORG_KEY }} -Dsonar.host.url=https://sonarcloud.io -Dsonar.login=${{ secrets.SONAR_TOKEN }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - name: Publish the maven package - run: | - cd authentication && mvn deploy -DskipTests -DaltDeploymentRepository=ossrh::default::${{ secrets.OSSRH_SNAPSHOT_URL }} -s $GITHUB_WORKSPACE/settings.xml -f pom.xml - env: - GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} - GPG_TTY: $(tty) -# - uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# fields: repo,message,commit,author,action,eventName,ref,workflow,job,took # selectable (default: repo,message) -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }} # required -# if: failure() # Pick up events even if the job fails or is canceled. - - From 734bea83bef96db3af6cc7d7484db64e92492612 Mon Sep 17 00:00:00 2001 From: Keshav Mishra Date: Wed, 8 Jun 2022 10:54:36 +0530 Subject: [PATCH 03/21] Update push_trigger.yml --- .github/workflows/push_trigger.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/push_trigger.yml b/.github/workflows/push_trigger.yml index e9b024da..3e2c2ae6 100644 --- a/.github/workflows/push_trigger.yml +++ b/.github/workflows/push_trigger.yml @@ -8,6 +8,7 @@ on: - develop - 1.1.* - 1.2.* + - release* jobs: build-keycloak: From 1a2c745c4335b6d7bf999be2d0b32c5fb3ea71c0 Mon Sep 17 00:00:00 2001 From: Puneet Joshi Date: Wed, 8 Jun 2022 14:28:27 +0530 Subject: [PATCH 04/21] [DSD-1102] Keycloak 18 onwards APIs have changed. '/auth' is removed for the API calls. --- keycloak-init/keycloak_init.py | 1 - 1 file changed, 1 deletion(-) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 558f6136..049f32eb 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -157,7 +157,6 @@ def main(): fp = open(input_yaml, 'rt') values = yaml.load(fp, Loader=yaml.FullLoader) - server_url = server_url + '/auth/' # Full url to access api try: print('Create realms ') print(server_url) From 06f0b9fcdd58a66af0ed177414bca6d36f8e3093 Mon Sep 17 00:00:00 2001 From: Puneet Joshi Date: Wed, 8 Jun 2022 14:38:10 +0530 Subject: [PATCH 05/21] [DSD-1102] Recopied from develop branch. --- keycloak-init/keycloak_init.py | 2 +- keycloak-init/requirements.txt | 12 ++++++++++++ keycloak-init/run.sh | 4 ++-- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 keycloak-init/requirements.txt diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 049f32eb..0cd0dbe9 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -173,7 +173,7 @@ def main(): # Expect secrets passed via env variables. clients = values[realm]['clients'] for client in clients: - secret_env_name = '%s_%s_secret' % (realm, client['name']) + secret_env_name = '%s_secret' % client['name'] secret_env_name = secret_env_name.replace('-', '_') # Compatible with environment variables secret = os.environ.get(secret_env_name) if secret is None: # Env variable not found diff --git a/keycloak-init/requirements.txt b/keycloak-init/requirements.txt new file mode 100644 index 00000000..1384aa6e --- /dev/null +++ b/keycloak-init/requirements.txt @@ -0,0 +1,12 @@ +certifi==2021.5.30 +chardet==4.0.0 +ecdsa==0.17.0 +idna==2.10 +pyasn1==0.4.8 +python-jose==3.3.0 +python-keycloak==0.26.1 +PyYAML==5.4.1 +requests==2.25.1 +rsa==4.7.2 +six==1.16.0 +urllib3==1.26.5 diff --git a/keycloak-init/run.sh b/keycloak-init/run.sh index 97a25b73..cf1b79e6 100755 --- a/keycloak-init/run.sh +++ b/keycloak-init/run.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Examples of how to run keycloak init using docker and directly wiht python. -docker run --rm -v /Users/puneet/Documents/mosip/develop/mosip-infra/build/keycloak-init/:/opt/mosip/input -e KEYCLOAK_ADMIN_USER=admin -e KEYCLOAK_ADMIN_PASSWORD=password -e KEYCLOAK_SERVER_URL=https://iam.sandbox.mosip.net -e INPUT_FILE=user.yaml mosipdev/keycloak-init:develop +# Examples of how to run keycloak init using docker and directly with python. +docker run --rm -v ~/mosip-infra/build/keycloak-init/:/opt/mosip/input -e KEYCLOAK_ADMIN_USER=admin -e KEYCLOAK_ADMIN_PASSWORD=password -e KEYCLOAK_SERVER_URL=https://iam.sandbox.mosip.net -e INPUT_FILE=user.yaml mosipdev/keycloak-init:1.2.0.1 #python keycloak_init.py https://iam.v3box1.mosip.net admin input.yaml From 162f009c41ba113659f048857581b0d6b28d5825 Mon Sep 17 00:00:00 2001 From: Keshav Mishra Date: Sat, 11 Jun 2022 09:05:27 +0530 Subject: [PATCH 06/21] [MOSIP-22429] reverting changes made as per 9.2.2 chart --- keycloak-init/keycloak_init.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 0cd0dbe9..4f6391f6 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -156,6 +156,8 @@ def main(): fp = open(input_yaml, 'rt') values = yaml.load(fp, Loader=yaml.FullLoader) + + server_url = server_url + '/auth/' # Full url to access api try: print('Create realms ') From a25122e12c6c5baf91f02ecd717ce0e7e6f53bda Mon Sep 17 00:00:00 2001 From: ckm007 Date: Tue, 5 Jul 2022 09:14:17 +0530 Subject: [PATCH 07/21] updated keycloak-init to update frontend url --- keycloak-init/Dockerfile | 2 ++ keycloak-init/config.py | 3 +++ keycloak-init/keycloak_init.py | 6 ++++-- 3 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 keycloak-init/config.py diff --git a/keycloak-init/Dockerfile b/keycloak-init/Dockerfile index 0279704a..f5d7a523 100644 --- a/keycloak-init/Dockerfile +++ b/keycloak-init/Dockerfile @@ -37,11 +37,13 @@ USER ${container_user_uid}:${container_user_gid} WORKDIR /home/${container_user} COPY keycloak_init.py . +COPY config.py . ENV KEYCLOAK_SERVER_URL= ENV KEYCLOAK_ADMIN_USER=user ENV KEYCLOAK_ADMIN_PASSWORD= ENV INPUT_DIR=/opt/mosip/input ENV INPUT_FILE=input.yaml +ENV FRONTEND_URL= CMD python3 keycloak_init.py $KEYCLOAK_SERVER_URL $KEYCLOAK_ADMIN_USER $KEYCLOAK_ADMIN_PASSWORD $INPUT_DIR/$INPUT_FILE diff --git a/keycloak-init/config.py b/keycloak-init/config.py new file mode 100644 index 00000000..a91655d5 --- /dev/null +++ b/keycloak-init/config.py @@ -0,0 +1,3 @@ +import os + +frontend_url = os.getenv('FRONTEND_URL') diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 4f6391f6..11bca4fe 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -9,6 +9,7 @@ import json import yaml import traceback +import config as cfg from keycloak import KeycloakAdmin from keycloak.exceptions import raise_error_from_response, KeycloakError from keycloak.connection import ConnectionManager @@ -31,8 +32,9 @@ def create_realm(self, realm): "accessTokenLifespan": 86400, "accessTokenLifespanForImplicitFlow": 900, "actionTokenGeneratedByAdminLifespan": 43200, - "actionTokenGeneratedByUserLifespan": 300 - } + "actionTokenGeneratedByUserLifespan": 300, + "attributes": { "frontendUrl": cfg.frontend_url } +} try: self.keycloak_admin.create_realm(payload, skip_exists=False) except KeycloakError as e: From 0ab420cd8998b5d3ea023dedc459d169832b7e81 Mon Sep 17 00:00:00 2001 From: ckm007 Date: Wed, 6 Jul 2022 23:40:33 +0530 Subject: [PATCH 08/21] [MOSIP-22792] added changes for fronend URL change --- keycloak-init/Dockerfile | 3 +-- keycloak-init/config.py | 3 --- keycloak-init/keycloak_init.py | 28 ++++++++++++++-------------- 3 files changed, 15 insertions(+), 19 deletions(-) delete mode 100644 keycloak-init/config.py diff --git a/keycloak-init/Dockerfile b/keycloak-init/Dockerfile index f5d7a523..bf0040ce 100644 --- a/keycloak-init/Dockerfile +++ b/keycloak-init/Dockerfile @@ -37,7 +37,6 @@ USER ${container_user_uid}:${container_user_gid} WORKDIR /home/${container_user} COPY keycloak_init.py . -COPY config.py . ENV KEYCLOAK_SERVER_URL= ENV KEYCLOAK_ADMIN_USER=user @@ -46,4 +45,4 @@ ENV INPUT_DIR=/opt/mosip/input ENV INPUT_FILE=input.yaml ENV FRONTEND_URL= -CMD python3 keycloak_init.py $KEYCLOAK_SERVER_URL $KEYCLOAK_ADMIN_USER $KEYCLOAK_ADMIN_PASSWORD $INPUT_DIR/$INPUT_FILE +CMD python3 keycloak_init.py $KEYCLOAK_SERVER_URL $KEYCLOAK_ADMIN_USER $KEYCLOAK_ADMIN_PASSWORD $INPUT_DIR/$INPUT_FILE --frontend_url $FRONTEND_URL diff --git a/keycloak-init/config.py b/keycloak-init/config.py deleted file mode 100644 index a91655d5..00000000 --- a/keycloak-init/config.py +++ /dev/null @@ -1,3 +0,0 @@ -import os - -frontend_url = os.getenv('FRONTEND_URL') diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 11bca4fe..165a1818 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -9,7 +9,6 @@ import json import yaml import traceback -import config as cfg from keycloak import KeycloakAdmin from keycloak.exceptions import raise_error_from_response, KeycloakError from keycloak.connection import ConnectionManager @@ -22,7 +21,7 @@ def __init__(self, realm, server_url, user, pwd, ssl_verify): password=pwd, realm_name=realm, verify=ssl_verify) - def create_realm(self, realm): + def create_realm(self, realm, frontend_url=''): payload = { "realm" : realm, "enabled": True, @@ -33,8 +32,8 @@ def create_realm(self, realm): "accessTokenLifespanForImplicitFlow": 900, "actionTokenGeneratedByAdminLifespan": 43200, "actionTokenGeneratedByUserLifespan": 300, - "attributes": { "frontendUrl": cfg.frontend_url } -} + "attributes": {"frontendUrl": frontend_url} + } try: self.keycloak_admin.create_realm(payload, skip_exists=False) except KeycloakError as e: @@ -135,14 +134,16 @@ def assign_user_roles(self, realm, username, roles): self.keycloak_admin.realm_name = 'master' # restore def args_parse(): - parser = argparse.ArgumentParser() - parser.add_argument('server_url', type=str, help='Full url to point to the server for auth: Eg. https://iam.xyz.com/auth/. Note: slash is important') - parser.add_argument('user', type=str, help='Admin user') - parser.add_argument('password', type=str, help='Admin password') - parser.add_argument('input_yaml', type=str, help='File containing input for roles and clients in YAML format') - parser.add_argument('--disable_ssl_verify', help='Disable ssl cert verification while connecting to server', action='store_true') - args = parser.parse_args() - return args + parser = argparse.ArgumentParser() + parser.add_argument('server_url', type=str, help='Full url to point to the server for auth: Eg. https://iam.xyz.com/auth/. Note: slash is important') + parser.add_argument('user', type=str, help='Admin user') + parser.add_argument('password', type=str, help='Admin password') + parser.add_argument('input_yaml', type=str, help='File containing input for roles and clients in YAML format') + parser.add_argument('--disable_ssl_verify', help='Disable ssl cert verification while connecting to server', action='store_true') + parser.add_argument('--frontend_url', help='Frontend URL', dest='frontend_url', action='store', default='') + + args = parser.parse_args() + return args def main(): @@ -166,7 +167,7 @@ def main(): print(server_url) ks = KeycloakSession('master', server_url, user, password, ssl_verify) for realm in values: - r = ks.create_realm(realm) # {realm : [role]} + r = ks.create_realm(realm, args.frontend_url) # {realm : [role]} for realm in values: print('Create roles for realm %s' % realm) @@ -199,4 +200,3 @@ def main(): if __name__=="__main__": main() - From ea321af969f11c93574cdcec8c99595e8c5641c6 Mon Sep 17 00:00:00 2001 From: ckm007 Date: Sat, 16 Jul 2022 18:22:09 +0530 Subject: [PATCH 09/21] [MOSIP-22398] restructured keycloak customisation --- keycloak/Dockerfile | 13 - .../deployments/spi-keycloak-1.0.jar | Bin 6179 -> 0 bytes keycloak/theme/base/account/theme.properties | 1 - keycloak/theme/base/email/theme.properties | 1 - .../login/messages/messages_ara.properties | 327 ---------- .../login/messages/messages_eng.properties | 376 ------------ .../login/messages/messages_fra.properties | 299 --------- .../login/messages/messages_hin.properties | 374 ----------- .../login/messages/messages_kan.properties | 375 ----------- .../login/messages/messages_tam.properties | 375 ----------- keycloak/theme/base/login/register.ftl | 150 ----- keycloak/theme/base/login/theme.properties | 1 - .../mosip/account/resources/css/account.css | 277 --------- .../mosip/account/resources/img/favicon.ico | Bin 627 -> 0 bytes .../resources/img/icon-sidebar-active.png | Bin 202 -> 0 bytes .../account/resources/img/keycloak-logo.png | Bin 5213 -> 0 bytes .../mosip/account/resources/img/logo.png | Bin 4156 -> 0 bytes keycloak/theme/mosip/account/theme.properties | 13 - .../mosip/admin/resources/css/styles.css | 486 --------------- .../mosip/admin/resources/img/favicon.ico | Bin 627 -> 0 bytes .../admin/resources/img/keyclok-logo.png | Bin 5268 -> 0 bytes .../admin/resources/img/keyclok-logo.svg | 194 ------ .../admin/resources/img/select-arrow.png | Bin 1154 -> 0 bytes keycloak/theme/mosip/admin/theme.properties | 2 - keycloak/theme/mosip/email/theme.properties | 1 - .../theme/mosip/login/resources/css/login.css | 581 ------------------ .../mosip/login/resources/img/favicon.ico | Bin 627 -> 0 bytes .../img/feedback-error-arrow-down.png | Bin 513 -> 0 bytes .../resources/img/feedback-error-sign.png | Bin 343 -> 0 bytes .../img/feedback-success-arrow-down.png | Bin 678 -> 0 bytes .../resources/img/feedback-success-sign.png | Bin 410 -> 0 bytes .../img/feedback-warning-arrow-down.png | Bin 513 -> 0 bytes .../resources/img/feedback-warning-sign.png | Bin 646 -> 0 bytes .../mosip/login/resources/img/keycloak-bg.png | Bin 81862 -> 0 bytes .../resources/img/keycloak-logo-text.png | Bin 19994 -> 0 bytes .../login/resources/img/keycloak-logo.png | Bin 5281 -> 0 bytes .../mosip/login/resources/img/mosiplogo.png | Bin 11347 -> 0 bytes keycloak/theme/mosip/login/theme.properties | 94 --- keycloak/theme/mosip/welcome/index.ftl | 132 ---- .../mosip/welcome/resources/admin-console.png | Bin 712 -> 0 bytes .../theme/mosip/welcome/resources/alert.png | Bin 6189 -> 0 bytes keycloak/theme/mosip/welcome/resources/bg.png | Bin 72796 -> 0 bytes .../theme/mosip/welcome/resources/bug.png | Bin 1397 -> 0 bytes .../mosip/welcome/resources/css/welcome.css | 140 ----- .../theme/mosip/welcome/resources/favicon.ico | Bin 627 -> 0 bytes .../welcome/resources/jboss_community.png | Bin 3204 -> 0 bytes .../welcome/resources/keycloak-project.png | Bin 1611 -> 0 bytes .../mosip/welcome/resources/keycloak_logo.png | Bin 7539 -> 0 bytes .../theme/mosip/welcome/resources/logo.png | Bin 7539 -> 0 bytes .../theme/mosip/welcome/resources/mail.png | Bin 1037 -> 0 bytes .../theme/mosip/welcome/resources/user.png | Bin 2423 -> 0 bytes keycloak/theme/mosip/welcome/theme.properties | 6 - 52 files changed, 4218 deletions(-) delete mode 100644 keycloak/Dockerfile delete mode 100644 keycloak/standalone/deployments/spi-keycloak-1.0.jar delete mode 100644 keycloak/theme/base/account/theme.properties delete mode 100644 keycloak/theme/base/email/theme.properties delete mode 100644 keycloak/theme/base/login/messages/messages_ara.properties delete mode 100644 keycloak/theme/base/login/messages/messages_eng.properties delete mode 100644 keycloak/theme/base/login/messages/messages_fra.properties delete mode 100644 keycloak/theme/base/login/messages/messages_hin.properties delete mode 100644 keycloak/theme/base/login/messages/messages_kan.properties delete mode 100644 keycloak/theme/base/login/messages/messages_tam.properties delete mode 100644 keycloak/theme/base/login/register.ftl delete mode 100644 keycloak/theme/base/login/theme.properties delete mode 100644 keycloak/theme/mosip/account/resources/css/account.css delete mode 100644 keycloak/theme/mosip/account/resources/img/favicon.ico delete mode 100644 keycloak/theme/mosip/account/resources/img/icon-sidebar-active.png delete mode 100644 keycloak/theme/mosip/account/resources/img/keycloak-logo.png delete mode 100644 keycloak/theme/mosip/account/resources/img/logo.png delete mode 100644 keycloak/theme/mosip/account/theme.properties delete mode 100644 keycloak/theme/mosip/admin/resources/css/styles.css delete mode 100644 keycloak/theme/mosip/admin/resources/img/favicon.ico delete mode 100644 keycloak/theme/mosip/admin/resources/img/keyclok-logo.png delete mode 100644 keycloak/theme/mosip/admin/resources/img/keyclok-logo.svg delete mode 100644 keycloak/theme/mosip/admin/resources/img/select-arrow.png delete mode 100644 keycloak/theme/mosip/admin/theme.properties delete mode 100644 keycloak/theme/mosip/email/theme.properties delete mode 100644 keycloak/theme/mosip/login/resources/css/login.css delete mode 100644 keycloak/theme/mosip/login/resources/img/favicon.ico delete mode 100644 keycloak/theme/mosip/login/resources/img/feedback-error-arrow-down.png delete mode 100644 keycloak/theme/mosip/login/resources/img/feedback-error-sign.png delete mode 100644 keycloak/theme/mosip/login/resources/img/feedback-success-arrow-down.png delete mode 100644 keycloak/theme/mosip/login/resources/img/feedback-success-sign.png delete mode 100644 keycloak/theme/mosip/login/resources/img/feedback-warning-arrow-down.png delete mode 100644 keycloak/theme/mosip/login/resources/img/feedback-warning-sign.png delete mode 100644 keycloak/theme/mosip/login/resources/img/keycloak-bg.png delete mode 100644 keycloak/theme/mosip/login/resources/img/keycloak-logo-text.png delete mode 100644 keycloak/theme/mosip/login/resources/img/keycloak-logo.png delete mode 100644 keycloak/theme/mosip/login/resources/img/mosiplogo.png delete mode 100644 keycloak/theme/mosip/login/theme.properties delete mode 100644 keycloak/theme/mosip/welcome/index.ftl delete mode 100644 keycloak/theme/mosip/welcome/resources/admin-console.png delete mode 100644 keycloak/theme/mosip/welcome/resources/alert.png delete mode 100644 keycloak/theme/mosip/welcome/resources/bg.png delete mode 100644 keycloak/theme/mosip/welcome/resources/bug.png delete mode 100644 keycloak/theme/mosip/welcome/resources/css/welcome.css delete mode 100644 keycloak/theme/mosip/welcome/resources/favicon.ico delete mode 100644 keycloak/theme/mosip/welcome/resources/jboss_community.png delete mode 100644 keycloak/theme/mosip/welcome/resources/keycloak-project.png delete mode 100644 keycloak/theme/mosip/welcome/resources/keycloak_logo.png delete mode 100644 keycloak/theme/mosip/welcome/resources/logo.png delete mode 100644 keycloak/theme/mosip/welcome/resources/mail.png delete mode 100644 keycloak/theme/mosip/welcome/resources/user.png delete mode 100644 keycloak/theme/mosip/welcome/theme.properties diff --git a/keycloak/Dockerfile b/keycloak/Dockerfile deleted file mode 100644 index c3cf4c1d..00000000 --- a/keycloak/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM jboss/keycloak:9.0.0 - -ADD --chown=jboss:root ./theme/ ./theme - -RUN cp -R ./theme/mosip /opt/jboss/keycloak/themes/mosip - -RUN cp -R ./theme/base /opt/jboss/keycloak/themes - - -ADD --chown=jboss:root ./standalone/ ./standalone - -RUN cp -R ./standalone/deployments/* /opt/jboss/keycloak/standalone/deployments - diff --git a/keycloak/standalone/deployments/spi-keycloak-1.0.jar b/keycloak/standalone/deployments/spi-keycloak-1.0.jar deleted file mode 100644 index 03e897e3b7ecc448bfe37340f8d83f9926b80a1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6179 zcmb7I2UJs8*Nv5?(wkHZMM?leZ;D7w2rYCF1B99oNa!7g7K(x(y>|tq7ZC(edO}e; zh(H8Xx+vB1!#I}t9G!n|)_w10q54F*HD5f z2&zGqg|z-MBL$T2n^E*A*gEY09I!v>el*iifT}4g>B4{-${QN^9tcBlqhx19I5pBAY@3)azfN#`r2W2K;p1L@HF(DvwT z&_%t+zl-v`pQaANs<%}7;a=mEjPgBkRFCM)%Hok(a-of;ji!LF!Tr34WBb9`Ia;H? z#s9Mj#a9y)8f)kD8^eQ*{>k;l&;j9TiA2L4euH591;Pn~cC)iWV15Io*@u2Rd@KUv zW@m}OezPb2^I?fc40o)Z004S90RY*5bEW8tbwQ(a5H@yL7Yy9R4(+IgL0j7)5kN~M z9E)u-B=e!0qyOAY;0BGQ1At+NX%d{~uEi*xp(d3&pK=+0m^?xf$=%gr?Vg?-ee|YR zwSAL`x1Gs^@uJ>1xjkpj@U_~SP5EWi>Yn@(V((${7{MCUb^PN;@@Bl>hVSa`)Smxp z6FS3xuFD2cQcw$MSPKuPJnqEA!52cwk+2pEh*%GgQfXVIUYF!!ze$$TaRl<%L9>%7 z!5QMjnkaIX*u@E*zQdW(4x*7i-GY=oYn^d>O@x^v(OCnK*}}u+qu!3aD9`p}c{?h& z?>JTa28}!qF$BQ3w!^v7!f55A-JWRWW7KY7<)ha=V&!AjE)iUdR^QeK2+d9$@*#O~ zdtEMjZcpI@;1XSKV$e3Vp8%2Pq8}gRV{%kx&vppa9=PHY|N3@~#|Pzhbjaq5u5Di` z{}zrm;)V6=%>J#Jh!0%h&9i8Q4{Smd+Mi?AHM4ijX+G&jKpW4pf4)sh6MI$uN_nyO zMDJ$8@JiFNV6aw)pQ~2%lcB5T=k1xja>@d=hSMNP2`S}nch{@iS4-11mf5@?q|~C( z%Tww}i^BPWa_l12^2^urz%>E{RbjN6?AS;lb8s7*TCPx~zxh+qqo>HYx{~+e&B$0pRZ@dQSGR_om_4{#_0$`= z6lyzYsy-&mWbv6sPr2Zmi?^D*OfBEHK^!XcZY5>kVW6zl^ICZ&yCruwnVZ74=rlP0 z#+Xx{pxp`4wkI)qss)b~4W+pTj!NAYEp>CFICGH;J3g3nTQu}^FiHNkg%B<8izQ1D z@&xM_h39~rIQUg%+RfvQ2!uv7f!q?o2wFawT7HEuQ z`2(^l)Enf>)V(+_2xrlq$~R(`ym_fI5JI@UzVr~?O&*~U4;BUedZoz1S_hJ`o1h(n zNTg-v(-UCEZpGx%@s7ej)*n4p&-F6DQuFlq#6wS31)`y473U&`#4`Sb7?SGnR{nbr z&BXDJ!|r+vM^AyvN9RK;f}0vGB0$AFPjExDL4$Z(*Rvd0NwScEWbIZPRaNf6^mys^ zS6Qb=yqC^l+h2N*zovRCoC{-Oky2wH=0)0T3*Ij8Jk|ZEb1tnHuPR_?8{6wL`IJQI z#?ot;?%4|4&{$E)PEdQ8WY)>bN_~aPNg(km;o9d*80Z4BZSSXd?+dP;5e8ZTv_+7Z;`dZjXFiv)-3t% zb2Pfr?JptbGOn<3HEC4D-O7F}Pu;SyP@k~jmeOuihvvPjrcZYkbB5XG4aFstfj7ZPafJ_&MU??Naw;w`qyj|bjw-1NwwXTL664+?shmlZfbxV&jd?n z4TTO})l6a$S`fpVWn`~{DU2&xdZ&r!kgTMOxN^yCctYNA6?DYU+fle!H;0)#{mL1f zHJ@mtH8z%&pra9*eF_K5?`M_1?JmYW?6xaHsMVK zma-&-5YO<;JFNBoX(zJV{M9k7*Am|GfPC+S#Z0z2$@7~OaKBUBWUs>jqy*>JZx%|5 znTL-*o~C8?hO(pGvPX}f+7rLolA&Kt%P722w3V`_w~`73N3uh6l*sk^EpQ3E)v$Vy zf0$dfsdjZ#0vL8ji(Zc(rdUHWbOEMG-8(O?WGK_AfVfaO8q!h{B(u)lYPa*CyM&g{ zt^RTOSSF;yyA_v5e?w|0x|C{2Bb&ZjCmUqjaHZI`Cg{P{d%Snb9*&ljF}PKQs`4}P zAEMa9Hy|8uVJ{4v4jF!$Op~79FKyhX5-1^`#B(|4_%X8cT=uY6$nmT!#x#h8S>7<4 z{oRSC9LMK5ZQul;$u%=tDQ_Z|w@}k;ck#V@WfQt_iY@5dj3YNa%Pevwo^s<-NTbX0 zsr79^V*G zw+)5dR+Z!GW-e0LvQ;;;3EaUuFkhUz{2^+W&on%gIBaRa-pW8Jx~|u@L40mD4Y$|Lv4$f7_HDauD+bYl-q6G7qSIR< zMbF^&YcZ3_u?y<+F~>(q2Jj;hb2~FBYu;_M7h;?dGzLK_Vtxwt%nzx> zEq!kWujQ?GD?2kTZC%6g(Bi%I>X7o88o$0^g0-%c>H@Zx*$iUFFm2$LjRHq~gBZ z3De|rL6v7oollIOtslWEmAE(MljW4$STyT@|NVO0gQ*nru=P!(HW8 zYL?=&1!PdvGz8YYVWh|9ACf=j;Gx}QH?}BP z*Apejg^0#{k6o*2Msz`rS#0&OyH22dCknPFr7kBOa~+&{o`*|Jj2bOpKl2A0yIJ%I zNXI%3CsEG8!O(wbGCY;Zl6pKu0%N>Iw3bkkg4J2waYWpmSgLty&@VXSM&_^l8UMqY55qFI_Tq8C7m@Y8Pc0+$sl6;W($#?Z)Op~-hY~0@;_zc zPu(DRlwC?JOCM6bw=^xanV>kk;EP<{6FIU)bnyvD-vdl+aRS>Fb9?7?Gb{XWdTZHa z(W2WXJlqR&yWG5~pXtvmvs!eFomG)^s0&Y@U0J_S%6loFZ4+X*Rep)B7rQgE+U5CV zzQj$xYIt|@BDeDDZ20z4Y`KY{i_jFY8&!8`Ikxo1LO6k-&s-5t4>qb;MYuB*CG|nH zL{=9_`=hvlE0pzT_3LB!@66l#Ir@obWD?703~t~DSeBt5YF|E6Twqh_uq+btJDvU@ z;)aET3nODLYM?`y7+&g0*F0AOKLfT~coBy5r39T0pt>o&jyA2f15T;5)tBYH^Z(j1 ze(9tzpD|35`yG_{{=Bq5f9|}{7#rZ%jt>ZTb+JV_y4YF%*+&7D(HNA15tOe-E@2(%YqpALi%n7V3eh2|mRF1%X|CC)G9j1b`RR1-kHk6ujM< zJ$SWazv*Kse+&u*cSAUS>ji)AXqkRCwnGE|t-a;?4GQaIC-`;u-yD+yY&W@`t;%Tsb&>05h1?nKl~C?wsXC9 zV!7WDb#h8Dk^cj6WixVJt3Nogp@8ei3)2lSs;2JNz<9w<$Jz!qys0-$xI)sZm%`$Y z{1E(QA9n~I8V zP<>R9f^Tqd7aDN4vP9a)@I1Llda5zI8;ikP0%AU8Gf z%suH8H(aet&O^ycWkE}c#yksNuB%VjWS@geV`Dt0=IfLf>l3Nwd0XXG%+SaodCMFT z2KKNFQM%)$C`Gr#_KJZW<{Ihp_YI3c!@ldYQJQ-kNn6Y2xsh=bRDfgw4v#5b8S+A} zNN1G$^3tb{K))9q(d?H!&gQ+oqB0Ma})x5VzMG3td(iOKI0W&a1(Y! zgjk*}l@vNb^z;DUNt(vCP@$}in8G%lrZ_U3l4fyUa&sO>rq@3%aW$9&pL07Gp5WsJ zZ2&{}Jg7L7S3b&NCO;26pP{@;sUgaXt)kuVN#h8E(@lMfTAnbEov}q{Ca$MS#F7V1 zJ|EZ1a>&|s(h1D;rc_Uw)*7y8Y??7k5oEl#!ywwd%JDP}7J;@qS*EsCocK6z*Pop9 z+L8?nzTOq!52shCHoP#b588Ni8E^AA!6qiTa3G^EUWNtN&=)mB5&7Zx-xCP6xZ$Mz z{@ah-pP>KpFW8rYoDdinI|TM*X9f8m!c>6%kJF!KT8waHz#y!%)7?u>Z)#4~s?}e8 z)Lb?})T1QJF}2E_%fV@qkq&*3a^z=LL5;ZIbHCBP02wxnTpRYtb7t{D`iblXw-|qj z9KqN?A5P5~H^;gM>x%9%h1QCY?&rQkhv|;|TJ+nGe}7N`mK6@}-*Vx1*guPa2gU~@ zFOX;d`VIDjB>0`-=cIL@)O{HTj-Tu=|I+P#9qWN|_hlSF7WS7v$aBB*b)e*Z83#bB zLw^JQkmr8w`as$H&T!=y3_s|6zot4+`o2^7?o)j`x*v4EulRpf{=PEg1(yC>DF31Z zem}N{0} ユーザーの代理 -realmChoice=レルム -unknownUser=不明なユーザー -loginTotpTitle=モバイル Authenticator セットアップ -loginProfileTitle=アカウント情報の更新 -loginTimeout=انتهت مهلة محاولة تسجيل الدخول الخاصة بك. سيبدأ تسجيل الدخول من البداية. -oauthGrantTitle={0}へのアクセスを許可 -oauthGrantTitleHtml={0} -errorTitle=申し訳ございません -errorTitleHtml=申し訳ございません -emailVerifyTitle=Eメール確認 -emailForgotTitle=パスワードをお忘れですか? -updatePasswordTitle=パスワード更新 -codeSuccessTitle=成功コード -codeErrorTitle=エラーコード\: {0} -displayUnsupported=要求された表示タイプがサポートされていません -browserRequired=ログインに必要なブラウザー -browserContinue=ログインを完了するために必要なブラウザー -browserContinuePrompt=ブラウザーを開いてログインを続行しますか? [y/n]: -browserContinueAnswer=y - - -termsTitle=利用規約 -termsText=

利用規約はここで設定する必要があります

-termsPlainText=定義される利用規約。 - -recaptchaFailed=無効な reCAPTCHA -recaptchaNotConfigured=reCAPTCHA が必須ですが、設定されていません -consentDenied=同意は拒否されました。 - -noAccount=新規ユーザーですか? -username=ユーザー名 -usernameOrEmail=اسم المستخدم أو البريد الالكتروني -firstName=名 -givenName=名 -fullName=氏名 -lastName=姓 -familyName=姓 -email=Eメール -password=كلمه السر -passwordConfirm=パスワード (確認) -passwordNew=新しいパスワード -passwordNewConfirm=新しいパスワード (確認) -rememberMe=ログイン状態の保存 -authenticatorCode=ワンタイムコード -address=住所 -street=番地 -locality=市区町村 -region=都道府県 -postal_code=郵便番号 -country=国 -emailVerified=確認済みEメール -gssDelegationCredential=GSS 代行クレデンシャル - -profileScopeConsentText=ユーザープロフィール -emailScopeConsentText=メールアドレス -addressScopeConsentText=アドレス -phoneScopeConsentText=電話番号 -offlineAccessScopeConsentText=オフラインアクセス -samlRoleListScopeConsentText=ロール -rolesScopeConsentText=ユーザーロール - -loginTotpIntro=このアカウントにアクセスするには、ワンタイムパスワードジェネレーターを設定する必要があります -loginTotpStep1=次のアプリケーションのいずれかをモバイルにインストールしてください -loginTotpStep2=アプリケーションを開き、バーコードをスキャンしてください -loginTotpStep3=アプリケーションで提供されたワンタイムコードを入力して送信をクリックし、セットアップを完了してください。 -loginTotpManualStep2=アプリケーションを開き、キーを入力してください -loginTotpManualStep3=アプリケーションが設定できる場合は、次の設定値を使用してください -loginTotpUnableToScan=スキャンできませんか? -loginTotpScanBarcode=バーコードをスキャンしますか? -loginOtpOneTime=ワンタイムコード -loginTotpType=タイプ -loginTotpAlgorithm=アルゴリズム -loginTotpDigits=桁 -loginTotpInterval=間隔 -loginTotpCounter=カウンター - -loginTotp.totp=時間ベース -loginTotp.hotp=カウンターベース - - -oauthGrantRequest=アクセス権を許可してよろしいでしょうか? -inResource=in - -emailVerifyInstruction1=メールアドレスを確認する手順を記載したEメールを送信しました。 -emailVerifyInstruction2=Eメールで確認コードを受け取っていませんか? -emailVerifyInstruction3=Eメールを再送信します。 - -emailLinkIdpTitle=リンク {0} -emailLinkIdp1={0} の {1} アカウントを あなたの {2} アカウントとリンクするための手順を記載したEメールを送信しました。 -emailLinkIdp2=Eメールで確認コードを受け取っていませんか? -emailLinkIdp3=Eメールを再送信します。 -emailLinkIdp4=別のブラウザーでメールを確認済みの場合 -emailLinkIdp5=続けるには - -backToLogin=« ログインに戻る - -emailInstruction=ユーザー名またメールアドレスを入力してください。新しいパスワードの設定方法をご案内いたします。 - -copyCodeInstruction=このコードをコピーし、あなたのアプリケーションにペーストしてください: - -pageExpiredTitle=ページの有効期限が切れています -pageExpiredMsg1=ログインプロセスを再開するには -pageExpiredMsg2=ログイン処理を続行するには - -personalInfo=個人情報: -role_admin=管理者 -role_realm-admin=レルム管理者 -role_create-realm=レルムの作成 -role_create-client=クライアントの作成 -role_view-realm=レルムの参照 -role_view-users=ユーザーの参照 -role_view-applications=アプリケーションの参照 -role_view-clients=クライアントの参照 -role_view-events=イベントの参照 -role_view-identity-providers=アイデンティティ プロバイダーの参照 -role_manage-realm=レルムの管理 -role_manage-users=ユーザーの管理 -role_manage-applications=アプリケーションの管理 -role_manage-identity-providers=アイデンティティ プロバイダーの管理 -role_manage-clients=クライアントの管理 -role_manage-events=イベントの管理 -role_view-profile=プロフィールの参照 -role_manage-account=アカウントの管理 -role_manage-account-links=アカウントリンクの管理 -role_read-token=トークンの読み取り -role_offline-access=オフラインアクセス -client_account=アカウント -client_security-admin-console=セキュリティ管理コンソール -client_admin-cli=管理 CLI -client_realm-management=レルム管理 -client_broker=ブローカー - -invalidUserMessage=خطأ في اسم المستخدم أو كلمة مرور -invalidEmailMessage=無効なメールアドレスです。 -accountDisabledMessage=アカウントは無効です。管理者に連絡してください。 -accountTemporarilyDisabledMessage=アカウントは一時的に無効です。管理者に連絡、またはしばらく時間をおいてから再度お試しください。 -expiredCodeMessage=ログインタイムアウトが発生しました。再度ログインしてください。 -expiredActionMessage=アクションは期限切れです。今すぐログインしてください。 -expiredActionTokenNoSessionMessage=アクションは期限切れです。 -expiredActionTokenSessionExistsMessage=アクションは期限切れです。もう一度やり直してください。 - -missingFirstNameMessage=名を指定してください。 -missingLastNameMessage=姓を指定してください。 -missingEmailMessage=Eメールを指定してください。 -missingUsernameMessage=ユーザー名を指定してください。 -missingPasswordMessage=رمز مرور خاطئ -missingTotpMessage=Authenticator コードを指定してください。 -notMatchPasswordMessage=パスワードが一致していません。 - -invalidPasswordExistingMessage=間違った既存のパスワードです。 -invalidPasswordBlacklistedMessage=無効なパスワード: パスワードがブラックリストに含まれています。 -invalidPasswordConfirmMessage=パスワード確認が一致していません。 -invalidTotpMessage=間違った Authenticator コードです。 - -usernameExistsMessage=既に存在するユーザー名です。 -emailExistsMessage=既に存在するEメールです。 - -federatedIdentityExistsMessage={0} {1} のユーザーは既に存在します。そのアカウントをリンクするにはアカウント管理にログインしてください。 - -confirmLinkIdpTitle=既に存在するアカウントです。 -federatedIdentityConfirmLinkMessage={0} {1} のユーザーは既に存在します。継続しますか? -#federatedIdentityConfirmReauthenticateMessage={1} でアカウントをリンクするために {0} として認証します -confirmLinkIdpReviewProfile=プロフィールの確認 -confirmLinkIdpContinue=既存のアカウントに追加する - -configureTotpMessage=アカウントを有効にするにはモバイル Authenticator のセットアップが必要です。 -updateProfileMessage=アカウントを有効にするにはユーザープロフィールの更新が必要です。 -updatePasswordMessage=アカウントを有効にするにはパスワードの更新が必要です。 -resetPasswordMessage=パスワードを変更する必要があります。 -verifyEmailMessage=アカウントを有効にするにはメールアドレスの確認が必要です。 -linkIdpMessage=アカウントを {0} とリンクするにはメールアドレスの確認が必要です。 - -emailSentMessage=詳細な手順を記載したEメールをすぐに受信してください。 -emailSendErrorMessage=Eメールの送信に失敗しました。しばらく時間をおいてから再度お試しください。 - -accountUpdatedMessage=アカウントが更新されました。 -accountPasswordUpdatedMessage=パスワードが更新されました。 - -delegationCompleteHeader=ログインに成功しました -delegationCompleteMessage=このブラウザーのウィンドウを閉じて、コンソールアプリケーションに戻ることができます。 -delegationFailedHeader=ログインに失敗しました -delegationFailedMessage=このブラウザーウィンドウを閉じてコンソールアプリケーションに戻り、再度ログインを試みることができます。 - -noAccessMessage=アクセスがありません - -invalidPasswordMinLengthMessage=無効なパスワード: 最小 {0} の長さが必要です。 -invalidPasswordMinDigitsMessage=無効なパスワード: 少なくとも {0} 文字の数字を含む必要があります。 -invalidPasswordMinLowerCaseCharsMessage=無効なパスワード: 少なくとも {0} 文字の小文字を含む必要があります。 -invalidPasswordMinUpperCaseCharsMessage=無効なパスワード: 少なくとも {0} 文字の大文字を含む必要があります。 -invalidPasswordMinSpecialCharsMessage=無効なパスワード: 少なくとも {0} 文字の特殊文字を含む必要があります。 -invalidPasswordNotUsernameMessage=無効なパスワード: ユーザー名と同じパスワードは禁止されています。 -invalidPasswordRegexPatternMessage=無効なパスワード: 正規表現パターンと一致しません。 -invalidPasswordHistoryMessage=無効なパスワード: 最近の {0} パスワードのいずれかと同じパスワードは禁止されています。 -invalidPasswordGenericMessage=無効なパスワード: 新しいパスワードはパスワードポリシーと一致しません。 - -failedToProcessResponseMessage=応答を処理できませんでした -httpsRequiredMessage=HTTPS が必須です -realmNotEnabledMessage=レルムが有効ではありません -invalidRequestMessage=無効なリクエストです -failedLogout=ログアウトに失敗しました -unknownLoginRequesterMessage=不明なログイン要求元です -loginRequesterNotEnabledMessage=ログイン要求元は有効ではありません -bearerOnlyMessage=bearer-only のアプリケーションはブラウザーログインを開始することが許可されていません -standardFlowDisabledMessage=与えられた response_type でクライアントはブラウザーログインを開始することが許可されていません。 Standard Flow は無効です。 -implicitFlowDisabledMessage=与えられた response_type でクライアントはブラウザーログインを開始することが許可されていません。 Implicit Flow は無効です。 -invalidRedirectUriMessage=無効なリダイレクト URI です -unsupportedNameIdFormatMessage=サポートされていない NameID Format です -invalidRequesterMessage=無効な要求元です -registrationNotAllowedMessage=登録は許可されていません -resetCredentialNotAllowedMessage=クレデンシャルのリセットは許可されていません - -permissionNotApprovedMessage=アクセス権は承認されていません。 -noRelayStateInResponseMessage=アイデンティティ プロバイダーからの応答に RelayState がありません。 -insufficientPermissionMessage=アイデンティティにリンクするには不十分なアクセス権です。 -couldNotProceedWithAuthenticationRequestMessage=アイデンティティ プロバイダーに認証要求を続行できませんでした。 -couldNotObtainTokenMessage=アイデンティティ プロバイダーからトークンを取得できませんでした。 -unexpectedErrorRetrievingTokenMessage=アイデンティティ プロバイダーからのトークン取得で予期せぬエラーが発生しました。 -unexpectedErrorHandlingResponseMessage=アイデンティティ プロバイダーからの応答を処理する際に予期せぬエラーが発生しました。 -identityProviderAuthenticationFailedMessage=認証に失敗しました。アイデンティティ プロバイダーを使用して認証できませんでした。 -couldNotSendAuthenticationRequestMessage=アイデンティティ プロバイダーに認証要求を送信することができませんでした。 -unexpectedErrorHandlingRequestMessage=アイデンティティ プロバイダーへの認証要求を処理する際に予期せぬエラーが発生しました。 -invalidAccessCodeMessage=無効なアクセスコードです。 -sessionNotActiveMessage=セッションが有効ではありません。 -invalidCodeMessage=エラーが発生しました。アプリケーションを介して再度ログインしてください。 -identityProviderUnexpectedErrorMessage=アイデンティティ プロバイダーによる認証の際に予期せぬエラーが発生しました -identityProviderNotFoundMessage=該当の識別子を持つアイデンティティ プロバイダーが見つかりませんでした。 -identityProviderLinkSuccess=Eメールを正常に確認しました。元のブラウザーに戻ってログインしてください。 -staleCodeMessage=このページはもはや有効ではありませんので、アプリケーションに戻り再度ログインしてください -realmSupportsNoCredentialsMessage=レルムはクレデンシャルタイプをサポートしていません。 -identityProviderNotUniqueMessage=レルムは複数のアイデンティティ プロバイダーをサポートしています。どのアイデンティティ プロバイダーが認証に使用されるべきか判断できませんでした。 -emailVerifiedMessage=メールアドレスが確認できました。 -staleEmailVerificationLink=クリックしたリンクは古いリンクであり、有効ではありません。すでにメールを確認していませんか? -identityProviderAlreadyLinkedMessage={0}によって返された連携されたアイデンティティは、すでに別のユーザーにリンクされています。 -confirmAccountLinking=アイデンティティプロバイダー{1}のアカウント{0}とあなたのアカウントとのリンクを確認してください。 -confirmEmailAddressVerification=Eメールアドレス{0}の有効性を確認してください。 -confirmExecutionOfActions=次の操作を実行します。 - -locale_ca=Catal\u00E0 -locale_de=Deutsch -locale_eng=English -locale_es=Espa\u00F1ol -locale_fra=Fran\u00E7ais -locale_it=Italiano -locale_ja=\u65E5\u672C\u8A9E -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polish -locale_pt_BR=Portugu\u00EAs (Brasil) -locale_pt-BR=Portugu\u00EAs (Brasil) -locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 -locale_lt=Lietuvi\u0173 -locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 -locale_sk=Sloven\u010Dina -locale_sv=Svenska -locale_ara=Arabic -locale_tam=தமிழ் -locale_kan=ಕನ್ನಡ -locale_hin=हिंदी - -backToApplication=« アプリケーションに戻る -missingParameterMessage=不足パラメータ\: {0} -clientNotFoundMessage=クライアントが見つかりません。 -clientDisabledMessage=クライアントが無効になっています。 -invalidParameterMessage=無効なパラメータ\: {0} -alreadyLoggedIn=既にログインしています。 -differentUserAuthenticated=すでにこのセッションで異なるユーザー''{0}''として認証されています。まずログアウトしてください。 -brokerLinkingSessionExpired=要求されたブローカーアカウントのリンクは、現在のセッションでは有効ではありません。 -proceedWithAction=» 続行するにはここをクリックしてください - -requiredAction.CONFIGURE_TOTP=OTPの設定 -requiredAction.terms_and_conditions=利用規約 -requiredAction.UPDATE_PASSWORD=パスワードの更新 -requiredAction.UPDATE_PROFILE=プロフィールの更新 -requiredAction.VERIFY_EMAIL=Eメールの確認 - -doX509Login=次のユーザーとしてログインします\: -clientCertificate=X509クライアント証明書\: -noCertificate=[証明書なし] - - -pageNotFound=ページが見つかりません -internalServerError=内部サーバーエラーが発生しました - -console-username=ユーザー名: -console-password=パスワード: -console-otp=ワンタイムパスワード: -console-new-password=新しいパスワード: -console-confirm-password=パスワードの確認: -console-update-password=パスワードの更新が必要です。 -console-verify-email=メールアドレスを確認する必要があります。確認コードを含むメールが{0}に送信されました。このコードを以下に入力してください。 -console-email-code=Eメールコード: -console-accept-terms=利用規約に同意しますか? [y/n]: -console-accept=y - -# Openshift messages -openshift.scope.user_info=ユーザー情報 -openshift.scope.user_check-access=ユーザーアクセス情報 -openshift.scope.user_full=フルアクセス -openshift.scope.list-projects=プロジェクトの一覧表示 - -# SAML authentication -saml.post-form.title=認証リダイレクト -saml.post-form.message=リダイレクトしています。お待ちください。 -saml.post-form.js-disabled=JavaScriptが無効になっています。有効にすることを強くお勧めします。継続するには、下のボタンをクリックしてください。 diff --git a/keycloak/theme/base/login/messages/messages_eng.properties b/keycloak/theme/base/login/messages/messages_eng.properties deleted file mode 100644 index 62893f74..00000000 --- a/keycloak/theme/base/login/messages/messages_eng.properties +++ /dev/null @@ -1,376 +0,0 @@ -doLogIn=Log In -doRegister=Register -doCancel=Cancel -doSubmit=Submit -doBack=Back -doYes=Yes -doNo=No -doContinue=Continue -doIgnore=Ignore -doAccept=Accept -doDecline=Decline -doForgotPassword=Forgot Password? -doClickHere=Click here -doImpersonate=Impersonate -doTryAgain=Try again -doTryAnotherWay=Try Another Way -kerberosNotConfigured=Kerberos Not Configured -kerberosNotConfiguredTitle=Kerberos Not Configured -bypassKerberosDetail=Either you are not logged in by Kerberos or your browser is not set up for Kerberos login. Please click continue to login in through other means -kerberosNotSetUp=Kerberos is not set up. You cannot login. -registerTitle=Register -loginTitle=Log in to {0} -loginTitleHtml={0} -impersonateTitle={0} Impersonate User -impersonateTitleHtml={0} Impersonate User -realmChoice=Realm -unknownUser=Unknown user -loginTotpTitle=Mobile Authenticator Setup -loginProfileTitle=Update Account Information -loginTimeout=Your login attempt timed out. Login will start from the beginning. -oauthGrantTitle=Grant Access to {0} -oauthGrantTitleHtml={0} -errorTitle=We are sorry... -errorTitleHtml=We are sorry ... -emailVerifyTitle=Email verification -emailForgotTitle=Forgot Your Password? -updatePasswordTitle=Update password -codeSuccessTitle=Success code -codeErrorTitle=Error code\: {0} -displayUnsupported=Requested display type unsupported -browserRequired=Browser required to login -browserContinue=Browser required to complete login -browserContinuePrompt=Open browser and continue login? [y/n]: -browserContinueAnswer=y - - -termsTitle=Terms and Conditions -termsText=

Terms and conditions to be defined

-termsPlainText=Terms and conditions to be defined. - -recaptchaFailed=Invalid Recaptcha -recaptchaNotConfigured=Recaptcha is required, but not configured -consentDenied=Consent denied. - -noAccount=New user? -username=Username -usernameOrEmail=Username or email -firstName=First name -givenName=Given name -fullName=Full name -lastName=Last name -familyName=Family name -email=Email -password=Password -passwordConfirm=Confirm password -passwordNew=New Password -passwordNewConfirm=New Password confirmation -rememberMe=Remember me -authenticatorCode=One-time code -address=Address -street=Street -locality=City or Locality -region=State, Province, or Region -postal_code=Zip or Postal code -country=Country -emailVerified=Email verified -gssDelegationCredential=GSS Delegation Credential -organizationName=Organization Name -phoneNumber=Phone Number -partnerType=Partner Type -langCode=Notification Language - -profileScopeConsentText=User profile -emailScopeConsentText=Email address -addressScopeConsentText=Address -phoneScopeConsentText=Phone number -offlineAccessScopeConsentText=Offline Access -samlRoleListScopeConsentText=My Roles -rolesScopeConsentText=User roles - -restartLoginTooltip=Restart login - -loginTotpIntro=You need to set up a One Time Password generator to access this account -loginTotpStep1=Install one of the following applications on your mobile: -loginTotpStep2=Open the application and scan the barcode: -loginTotpStep3=Enter the one-time code provided by the application and click Submit to finish the setup. -loginTotpStep3DeviceName=Provide a Device Name to help you manage your OTP devices. -loginTotpManualStep2=Open the application and enter the key: -loginTotpManualStep3=Use the following configuration values if the application allows setting them: -loginTotpUnableToScan=Unable to scan? -loginTotpScanBarcode=Scan barcode? -loginCredential=Credential -loginOtpOneTime=One-time code -loginTotpType=Type -loginTotpAlgorithm=Algorithm -loginTotpDigits=Digits -loginTotpInterval=Interval -loginTotpCounter=Counter -loginTotpDeviceName=Device Name - -loginTotp.totp=Time-based -loginTotp.hotp=Counter-based - -loginChooseAuthenticator=Select login method - -oauthGrantRequest=Do you grant these access privileges? -inResource=in - -emailVerifyInstruction1=An email with instructions to verify your email address has been sent to you. -emailVerifyInstruction2=Haven''t received a verification code in your email? -emailVerifyInstruction3=to re-send the email. - -emailLinkIdpTitle=Link {0} -emailLinkIdp1=An email with instructions to link {0} account {1} with your {2} account has been sent to you. -emailLinkIdp2=Haven''t received a verification code in your email? -emailLinkIdp3=to re-send the email. -emailLinkIdp4=If you already verified the email in different browser -emailLinkIdp5=to continue. - -backToLogin=« Back to Login - -emailInstruction=Enter your username or email address and we will send you instructions on how to create a new password. - -copyCodeInstruction=Please copy this code and paste it into your application: - -pageExpiredTitle=Page has expired -pageExpiredMsg1=To restart the login process -pageExpiredMsg2=To continue the login process - -personalInfo=Personal Info: -role_admin=Admin -role_realm-admin=Realm Admin -role_create-realm=Create realm -role_create-client=Create client -role_view-realm=View realm -role_view-users=View users -role_view-applications=View applications -role_view-clients=View clients -role_view-events=View events -role_view-identity-providers=View identity providers -role_manage-realm=Manage realm -role_manage-users=Manage users -role_manage-applications=Manage applications -role_manage-identity-providers=Manage identity providers -role_manage-clients=Manage clients -role_manage-events=Manage events -role_view-profile=View profile -role_manage-account=Manage account -role_manage-account-links=Manage account links -role_read-token=Read token -role_offline-access=Offline access -client_account=Account -client_account-console=Account Console -client_security-admin-console=Security Admin Console -client_admin-cli=Admin CLI -client_realm-management=Realm Management -client_broker=Broker - -requiredFields=Required fields - -invalidUserMessage=Invalid username or password. -invalidUsernameMessage=Invalid username. -invalidUsernameOrEmailMessage=Invalid username or email. -invalidPasswordMessage=Invalid password. -invalidEmailMessage=Invalid email address. -accountDisabledMessage=Account is disabled, contact your administrator. -accountTemporarilyDisabledMessage=Account is temporarily disabled; contact your administrator or retry later. -expiredCodeMessage=Login timeout. Please log in again. -expiredActionMessage=Action expired. Please continue with login now. -expiredActionTokenNoSessionMessage=Action expired. -expiredActionTokenSessionExistsMessage=Action expired. Please start again. - -missingFirstNameMessage=Please specify first name. -missingLastNameMessage=Please specify last name. -missingEmailMessage=Please specify email. -missingUsernameMessage=Please specify username. -missingPasswordMessage=Please specify password. -missingTotpMessage=Please specify authenticator code. -missingTotpDeviceNameMessage=Please specify device name. -notMatchPasswordMessage=Passwords don''t match. - -invalidPasswordExistingMessage=Invalid existing password. -invalidPasswordBlacklistedMessage=Invalid password: password is blacklisted. -invalidPasswordConfirmMessage=Password confirmation doesn''t match. -invalidTotpMessage=Invalid authenticator code. - -usernameExistsMessage=Username already exists. -emailExistsMessage=Email already exists. - -federatedIdentityExistsMessage=User with {0} {1} already exists. Please login to account management to link the account. - -confirmLinkIdpTitle=Account already exists -federatedIdentityConfirmLinkMessage=User with {0} {1} already exists. How do you want to continue? -federatedIdentityConfirmReauthenticateMessage=Authenticate to link your account with {0} -nestedFirstBrokerFlowMessage=The {0} user {1} is not linked to any known user. -confirmLinkIdpReviewProfile=Review profile -confirmLinkIdpContinue=Add to existing account - -configureTotpMessage=You need to set up Mobile Authenticator to activate your account. -updateProfileMessage=You need to update your user profile to activate your account. -updatePasswordMessage=You need to change your password to activate your account. -resetPasswordMessage=You need to change your password. -verifyEmailMessage=You need to verify your email address to activate your account. -linkIdpMessage=You need to verify your email address to link your account with {0}. - -emailSentMessage=You should receive an email shortly with further instructions. -emailSendErrorMessage=Failed to send email, please try again later. - -accountUpdatedMessage=Your account has been updated. -accountPasswordUpdatedMessage=Your password has been updated. - -delegationCompleteHeader=Login Successful -delegationCompleteMessage=You may close this browser window and go back to your console application. -delegationFailedHeader=Login Failed -delegationFailedMessage=You may close this browser window and go back to your console application and try logging in again. - -noAccessMessage=No access - -invalidPasswordMinLengthMessage=Invalid password: minimum length {0}. -invalidPasswordMinDigitsMessage=Invalid password: must contain at least {0} numerical digits. -invalidPasswordMinLowerCaseCharsMessage=Invalid password: must contain at least {0} lower case characters. -invalidPasswordMinUpperCaseCharsMessage=Invalid password: must contain at least {0} upper case characters. -invalidPasswordMinSpecialCharsMessage=Invalid password: must contain at least {0} special characters. -invalidPasswordNotUsernameMessage=Invalid password: must not be equal to the username. -invalidPasswordRegexPatternMessage=Invalid password: fails to match regex pattern(s). -invalidPasswordHistoryMessage=Invalid password: must not be equal to any of last {0} passwords. -invalidPasswordGenericMessage=Invalid password: new password doesn''t match password policies. - -failedToProcessResponseMessage=Failed to process response -httpsRequiredMessage=HTTPS required -realmNotEnabledMessage=Realm not enabled -invalidRequestMessage=Invalid Request -failedLogout=Logout failed -unknownLoginRequesterMessage=Unknown login requester -loginRequesterNotEnabledMessage=Login requester not enabled -bearerOnlyMessage=Bearer-only applications are not allowed to initiate browser login -standardFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Standard flow is disabled for the client. -implicitFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Implicit flow is disabled for the client. -invalidRedirectUriMessage=Invalid redirect uri -unsupportedNameIdFormatMessage=Unsupported NameIDFormat -invalidRequesterMessage=Invalid requester -registrationNotAllowedMessage=Registration not allowed -resetCredentialNotAllowedMessage=Reset Credential not allowed - -permissionNotApprovedMessage=Permission not approved. -noRelayStateInResponseMessage=No relay state in response from identity provider. -insufficientPermissionMessage=Insufficient permissions to link identities. -couldNotProceedWithAuthenticationRequestMessage=Could not proceed with authentication request to identity provider. -couldNotObtainTokenMessage=Could not obtain token from identity provider. -unexpectedErrorRetrievingTokenMessage=Unexpected error when retrieving token from identity provider. -unexpectedErrorHandlingResponseMessage=Unexpected error when handling response from identity provider. -identityProviderAuthenticationFailedMessage=Authentication failed. Could not authenticate with identity provider. -couldNotSendAuthenticationRequestMessage=Could not send authentication request to identity provider. -unexpectedErrorHandlingRequestMessage=Unexpected error when handling authentication request to identity provider. -invalidAccessCodeMessage=Invalid access code. -sessionNotActiveMessage=Session not active. -invalidCodeMessage=An error occurred, please login again through your application. -identityProviderUnexpectedErrorMessage=Unexpected error when authenticating with identity provider -identityProviderNotFoundMessage=Could not find an identity provider with the identifier. -identityProviderLinkSuccess=You successfully verified your email. Please go back to your original browser and continue there with the login. -staleCodeMessage=This page is no longer valid, please go back to your application and log in again -realmSupportsNoCredentialsMessage=Realm does not support any credential type. -credentialSetupRequired=Cannot login, credential setup required. -identityProviderNotUniqueMessage=Realm supports multiple identity providers. Could not determine which identity provider should be used to authenticate with. -emailVerifiedMessage=Your email address has been verified. -staleEmailVerificationLink=The link you clicked is an old stale link and is no longer valid. Maybe you have already verified your email. -identityProviderAlreadyLinkedMessage=Federated identity returned by {0} is already linked to another user. -confirmAccountLinking=Confirm linking the account {0} of identity provider {1} with your account. -confirmEmailAddressVerification=Confirm validity of e-mail address {0}. -confirmExecutionOfActions=Perform the following action(s) - -locale_ca=Catal\u00E0 -locale_de=Deutsch -locale_eng=English -locale_es=Espa\u00F1ol -locale_fra=Fran\u00E7ais -locale_it=Italiano -locale_ja=\u65E5\u672C\u8A9E -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polish -locale_pt_BR=Portugu\u00EAs (Brasil) -locale_pt-BR=Portugu\u00EAs (Brasil) -locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 -locale_lt=Lietuvi\u0173 -locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 -locale_sk=Sloven\u010Dina -locale_sv=Svenska -locale_ara=Arabic - -backToApplication=« Back to Application -missingParameterMessage=Missing parameters\: {0} -clientNotFoundMessage=Client not found. -clientDisabledMessage=Client disabled. -invalidParameterMessage=Invalid parameter\: {0} -alreadyLoggedIn=You are already logged in. -differentUserAuthenticated=You are already authenticated as different user ''{0}'' in this session. Please log out first. -brokerLinkingSessionExpired=Requested broker account linking, but current session is no longer valid. -proceedWithAction=» Click here to proceed - -requiredAction.CONFIGURE_TOTP=Configure OTP -requiredAction.terms_and_conditions=Terms and Conditions -requiredAction.UPDATE_PASSWORD=Update Password -requiredAction.UPDATE_PROFILE=Update Profile -requiredAction.VERIFY_EMAIL=Verify Email - -doX509Login=You will be logged in as\: -clientCertificate=X509 client certificate\: -noCertificate=[No Certificate] - - -pageNotFound=Page not found -internalServerError=An internal server error has occurred - -console-username=Username: -console-password=Password: -console-otp=One Time Password: -console-new-password=New Password: -console-confirm-password=Confirm Password: -console-update-password=Update of your password is required. -console-verify-email=You need to verify your email address. We sent an email to {0} that contains a verification code. Please enter this code into the input below. -console-email-code=Email Code: -console-accept-terms=Accept Terms? [y/n]: -console-accept=y - -# Openshift messages -openshift.scope.user_info=User information -openshift.scope.user_check-access=User access information -openshift.scope.user_full=Full Access -openshift.scope.list-projects=List projects - -# SAML authentication -saml.post-form.title=Authentication Redirect -saml.post-form.message=Redirecting, please wait. -saml.post-form.js-disabled=JavaScript is disabled. We strongly recommend to enable it. Click the button below to continue. - -#authenticators -otp-display-name=Authenticator Application -otp-help-text=Enter a verification code from authenticator application. -password-display-name=Password -password-help-text=Log in by entering your password. -auth-username-form-display-name=Username -auth-username-form-help-text=Start log in by entering your username -auth-username-password-form-display-name=Username and password -auth-username-password-form-help-text=Log in by entering your username and password. - -# WebAuthn -webauthn-display-name=Security Key -webauthn-help-text=Use your security key to log in. -webauthn-passwordless-display-name=Security Key -webauthn-passwordless-help-text=Use your security key for passwordless log in. -webauthn-login-title=Security Key login -webauthn-registration-title=Security Key Registration -webauthn-available-authenticators=Available authenticators - -# WebAuthn Error -webauthn-error-title=Security Key Error -webauthn-error-registration=Failed to register your Security key. -webauthn-error-api-get=Failed to authenticate by the Security key. -webauthn-error-different-user=First authenticated user is not the one authenticated by the Security key. -webauthn-error-auth-verification=Security key authentication result is invalid. -webauthn-error-register-verification=Security key registration result is invalid. -webauthn-error-user-not-found=Unknown user authenticated by the Security key. - -identity-provider-redirector=Connect with another Identity Provider - diff --git a/keycloak/theme/base/login/messages/messages_fra.properties b/keycloak/theme/base/login/messages/messages_fra.properties deleted file mode 100644 index 7c9a2a99..00000000 --- a/keycloak/theme/base/login/messages/messages_fra.properties +++ /dev/null @@ -1,299 +0,0 @@ -# encoding: utf-8 - -doLogIn=Connexion -doRegister=Enregistrement -doCancel=Annuler -doSubmit=Soumettre -doYes=Oui -doNo=Non -doContinue=Continuer -doIgnore=Ignorer -doAccept=Accepter -doDecline=D\u00e9cliner -doForgotPassword=Mot de passe oubli\u00e9 ? -doClickHere=Cliquez ici -doImpersonate=Impersonate -kerberosNotConfigured=Kerberos non configur\u00e9 -kerberosNotConfiguredTitle=Kerberos non configur\u00e9 -bypassKerberosDetail=Si vous n''\u00eates pas connect\u00e9 via Kerberos ou bien que votre navigateur n''est pas configur\u00e9 pour la connexion via Kerberos. Veuillez cliquer pour vous connecter via un autre moyen. -kerberosNotSetUp=Kerberos n''est pas configur\u00e9. Connexion impossible. -registerTitle=S''enregistrer -registerWithTitle=Enregistrement avec {0} -registerWithTitleHtml={0} -loginTitle=Se connecter \u00e0 {0} -loginTitleHtml={0} -impersonateTitle={0} utilisateur impersonate -impersonateTitleHtml={0} utilisateur impersonate -realmChoice=Domaine -unknownUser=Utilisateur inconnu -loginTotpTitle=Configuration de l''authentification par mobile -loginProfileTitle=Mise \u00e0 jour du compte -loginTimeout=Le temps imparti pour la connexion est \u00e9coul\u00e9. Le processus de connexion red\u00e9marre depuis le d\u00e9but. -oauthGrantTitle=OAuth Grant -oauthGrantTitleHtml={0} -errorTitle=Nous sommes d\u00e9sol\u00e9s... -errorTitleHtml=Nous sommes d\u00e9sol\u00e9s... -emailVerifyTitle=V\u00e9rification du courriel -emailForgotTitle=Mot de passe oubli\u00e9 ? -updatePasswordTitle=Mise \u00e0 jour du mot de passe -codeSuccessTitle=Code succ\u00e8s -codeErrorTitle=Code d''erreur \: {0} -displayUnsupported=Type d''affichage demand\u00e9 non support\u00e9 -browserRequired=Navigateur requis pour se connecter -browserContinue=Navigateur requis pour continuer la connexion -browserContinuePrompt=Ouvrir le navigateur et continuer la connexion? [y/n]: -browserContinueAnswer=y - -termsTitle=Termes et Conditions -termsTitleHtml=Termes et Conditions -termsText=

Termes et conditions \u00e0 d\u00e9finir

-termsPlainText=Termes et conditions \u00e0 d\u00e9finir - -recaptchaFailed=Re-captcha invalide -recaptchaNotConfigured=Re-captcha est requis, mais il n''est pas configur\u00e9 -consentDenied=Consentement refus\u00e9. - -noAccount=Nouvel utilisateur ? -username=Nom d''utilisateur -usernameOrEmail=Nom d''utilisateur ou courriel -firstName=Pr\u00e9nom -givenName=Pr\u00e9nom -fullName=Nom complet -lastName=Nom -familyName=Nom de famille -email=Courriel -password=Mot de passe -passwordConfirm=Confirmation du mot de passe -passwordNew=Nouveau mot de passe -passwordNewConfirm=Confirmation du nouveau mot de passe -rememberMe=Se souvenir de moi -authenticatorCode=Code \u00e0 usage unique -address=Adresse -street=Rue -locality=Ville ou Localit\u00e9 -region=\u00c9tat, Province ou R\u00e9gion -postal_code=Code postal -country=Pays -emailVerified=Courriel v\u00e9rifi\u00e9 -gssDelegationCredential=Accr\u00e9ditation de d\u00e9l\u00e9gation GSS - -loginTotpIntro=Il est n\u00e9cessaire de configurer un g\u00e9n\u00e9rateur One Time Password pour acc\u00e9der \u00e0 ce compte -loginTotpStep1=Installez FreeOTP ou bien Google Authenticator sur votre mobile. Ces deux applications sont disponibles sur Google Play et Apple App Store. -loginTotpStep2=Ouvrez l''application et scannez le code-barres ou entrez la clef. -loginTotpStep3=Entrez le code \u00e0 usage unique fourni par l''application et cliquez sur Sauvegarder pour terminer. -loginTotpManualStep2=Ouvrez l''application et saisissez la cl\u00e9 -loginTotpManualStep3=Utilisez la configuration de valeur suivante si l''application permet son \u00e9dition -loginTotpUnableToScan=Impossible de scanner? -loginTotpScanBarcode=Scanner le code barre ? -loginOtpOneTime=Code \u00e0 usage unique -loginTotpType=Type -loginTotpAlgorithm=Algorithme -loginTotpDigits=Chiffres -loginTotpInterval=Intervalle -loginTotpCounter=Compteur - -loginTotp.totp=Bas\u00e9 sur le temps -loginTotp.hotp=Bas\u00e9 sur les compteurs - -oauthGrantRequest=Voulez-vous accorder ces privil\u00e8ges d''acc\u00e8s ? -inResource=dans - -emailVerifyInstruction1=Un courriel avec des instructions \u00e0 suivre vous a \u00e9t\u00e9 envoy\u00e9. -emailVerifyInstruction2=Vous n''avez pas re\u00e7u de code dans le courriel ? -emailVerifyInstruction3=pour renvoyer le courriel. - -emailLinkIdpTitle=Association avec {0} -emailLinkIdp1=Un courriel avec des instructions pour associer le compte {1} sur {0} avec votre compte {2} vous a \u00e9t\u00e9 envoy\u00e9. -emailLinkIdp2=Vous n''avez pas re\u00e7u de code dans le courriel ? -emailLinkIdp3=pour renvoyer le courriel. -emailLinkIdp4=Si vous avez d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre courriel dans un autre navigateur -emailLinkIdp5=pour continuer. - -backToLogin=« Retour \u00e0 la connexion - -emailInstruction=Entrez votre nom d''utilisateur ou votre courriel ; un courriel va vous \u00eatre envoy\u00e9 vous permettant de cr\u00e9er un nouveau mot de passe. - -copyCodeInstruction=Copiez le code et recopiez le dans votre application : - -pageExpiredTitle=La page a expir\u00e9 -pageExpiredMsg1=Pour recommencer le processus d''authentification -pageExpiredMsg2=Pour continuer le processus d''authentification - -personalInfo=Information personnelle : -role_admin=Administrateur -role_realm-admin=Administrateur du domaine -role_create-realm=Cr\u00e9er un domaine -role_create-client=Cr\u00e9er un client -role_view-realm=Voir un domaine -role_view-users=Voir les utilisateurs -role_view-applications=Voir les applications -role_view-clients=Voir les clients -role_view-events=Voir les \u00e9v\u00e9nements -role_view-identity-providers=Voir les fournisseurs d''identit\u00e9 -role_manage-realm=G\u00e9rer le domaine -role_manage-users=G\u00e9rer les utilisateurs -role_manage-applications=G\u00e9rer les applications -role_manage-identity-providers=G\u00e9rer les fournisseurs d''identit\u00e9 -role_manage-clients=G\u00e9rer les clients -role_manage-events=G\u00e9rer les \u00e9v\u00e9nements -role_view-profile=Voir le profil -role_manage-account=G\u00e9rer le compte -role_manage-account-links=G\u00e9rer les liens de compte -role_read-token=Lire le jeton d''authentification -role_offline-access=Acc\u00e8s hors-ligne -client_account=Compte -client_security-admin-console=Console d''administration de la s\u00e9curit\u00e9 -client_admin-cli=Admin CLI -client_realm-management=Gestion du domaine -client_broker=Broker - -invalidUserMessage=Nom d''utilisateur ou mot de passe invalide. -invalidEmailMessage=Courriel invalide. -accountDisabledMessage=Compte d\u00e9sactiv\u00e9, contactez votre administrateur. -accountTemporarilyDisabledMessage=Ce compte est temporairement d\u00e9sactiv\u00e9, contactez votre administrateur ou bien r\u00e9essayez plus tard. -expiredCodeMessage=Connexion expir\u00e9e. Veuillez vous reconnecter. -expiredActionMessage=Action expir\u00e9e. Merci de continuer la connexion. -expiredActionTokenNoSessionMessage=Action expir\u00e9e. -expiredActionTokenSessionExistsMessage=Action expir\u00e9e. Merci de recommencer. - -missingFirstNameMessage=Veuillez entrer votre pr\u00e9nom. -missingLastNameMessage=Veuillez entrer votre nom. -missingEmailMessage=Veuillez entrer votre courriel. -missingUsernameMessage=Veuillez entrer votre nom d''utilisateur. -missingPasswordMessage=Veuillez entrer votre mot de passe. -missingTotpMessage=Veuillez entrer votre code d''authentification. -notMatchPasswordMessage=Les mots de passe ne sont pas identiques. - -invalidPasswordExistingMessage=Mot de passe existant invalide. -invalidPasswordBlacklistedMessage=Mot de passe invalide : ce mot de passe est blacklist\u00e9. -invalidPasswordConfirmMessage=Le mot de passe de confirmation ne correspond pas. -invalidTotpMessage=Le code d''authentification est invalide. - -usernameExistsMessage=Le nom d''utilisateur existe d\u00e9j\u00e0. -emailExistsMessage=Le courriel existe d\u00e9j\u00e0. - -federatedIdentityExistsMessage=L''utilisateur avec {0} {1} existe d\u00e9j\u00e0. Veuillez acc\u00e9der \u00e0 au gestionnaire de compte pour lier le compte. -federatedIdentityEmailExistsMessage=Cet utilisateur avec ce courriel existe d\u00e9j\u00e0. Veuillez vous connecter au gestionnaire de compte pour lier le compte. - -confirmLinkIdpTitle=Ce compte existe d\u00e9j\u00e0 -federatedIdentityConfirmLinkMessage=L''utilisateur {0} {1} existe d\u00e9j\u00e0. Que souhaitez-vous faire ? -federatedIdentityConfirmReauthenticateMessage=Identifiez vous afin de lier votre compte avec {0} -confirmLinkIdpReviewProfile=V\u00e9rifiez vos informations de profil -confirmLinkIdpContinue=Souhaitez-vous lier {0} \u00e0 votre compte existant - -configureTotpMessage=Vous devez configurer l''authentification par mobile pour activer votre compte. -updateProfileMessage=Vous devez mettre \u00e0 jour votre profil pour activer votre compte. -updatePasswordMessage=Vous devez changer votre mot de passe pour activer votre compte. -resetPasswordMessage=Vous devez changer votre mot de passe. -verifyEmailMessage=Vous devez v\u00e9rifier votre courriel pour activer votre compte. -linkIdpMessage=Vous devez v\u00e9rifier votre courriel pour lier votre compte avec {0}. - -emailSentMessage=Vous devriez recevoir rapidement un courriel avec de plus amples instructions. -emailSendErrorMessage=Erreur lors de l''envoi du courriel, veuillez essayer plus tard. - -accountUpdatedMessage=Votre compte a \u00e9t\u00e9 mis \u00e0 jour. -accountPasswordUpdatedMessage=Votre mot de passe a \u00e9t\u00e9 mis \u00e0 jour. - -noAccessMessage=Aucun acc\u00e8s - -invalidPasswordMinLengthMessage=Mot de passe invalide : longueur minimale requise de {0}. -invalidPasswordMinDigitsMessage=Mot de passe invalide : doit contenir au moins {0} chiffre(s). -invalidPasswordMinLowerCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en minuscule. -invalidPasswordMinUpperCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en majuscule. -invalidPasswordMinSpecialCharsMessage=Mot de passe invalide : doit contenir au moins {0} caract\u00e8re(s) sp\u00e9ciaux. -invalidPasswordNotUsernameMessage=Mot de passe invalide : ne doit pas \u00eatre identique au nom d''utilisateur. -invalidPasswordRegexPatternMessage=Mot de passe invalide : ne valide pas l''expression rationnelle. -invalidPasswordHistoryMessage=Mot de passe invalide : ne doit pas \u00eatre \u00e9gal aux {0} derniers mots de passe. -invalidPasswordGenericMessage=Mot de passe invalide : le nouveau mot de passe ne r\u00e9pond pas \u00e0 la politique de mot de passe. - -failedToProcessResponseMessage=Erreur lors du traitement de la r\u00e9ponse -httpsRequiredMessage=Le protocole HTTPS est requis -realmNotEnabledMessage=Le domaine n''est pas activ\u00e9 -invalidRequestMessage=Requ\u00eate invalide -failedLogout=La d\u00e9connexion a \u00e9chou\u00e9e -unknownLoginRequesterMessage=Compte inconnu du demandeur -loginRequesterNotEnabledMessage=La connexion du demandeur n''est pas active -bearerOnlyMessage=Les applications Bearer-only ne sont pas autoris\u00e9es \u00e0 initier la connexion par navigateur. -standardFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux standard est d\u00e9sactiv\u00e9 pour le client. -implicitFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux implicite est d\u00e9sactiv\u00e9 pour le client. -invalidRedirectUriMessage=L''URI de redirection est invalide -unsupportedNameIdFormatMessage=NameIDFormat non support\u00e9 -invalidRequesterMessage=Demandeur invalide -registrationNotAllowedMessage=L''enregistrement n''est pas autoris\u00e9 -resetCredentialNotAllowedMessage=La remise \u00e0 z\u00e9ro n''est pas autoris\u00e9e - -permissionNotApprovedMessage=La permission n''est pas approuv\u00e9e. -noRelayStateInResponseMessage=Aucun \u00e9tat de relais dans la r\u00e9ponse du fournisseur d''identit\u00e9. -insufficientPermissionMessage=Permissions insuffisantes pour lier les identit\u00e9s. -couldNotProceedWithAuthenticationRequestMessage=Impossible de continuer avec la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9. -couldNotObtainTokenMessage=Impossible de r\u00e9cup\u00e9rer le jeton du fournisseur d''identit\u00e9. -unexpectedErrorRetrievingTokenMessage=Erreur inattendue lors de la r\u00e9cup\u00e9ration du jeton provenant du fournisseur d''identit\u00e9. -unexpectedErrorHandlingResponseMessage=Erreur inattendue lors du traitement de la r\u00e9ponse provenant du fournisseur d''identit\u00e9. -identityProviderAuthenticationFailedMessage=L''authentification a \u00e9chou\u00e9e. Impossible de s''authentifier avec le fournisseur d''identit\u00e9. -couldNotSendAuthenticationRequestMessage=Impossible d''envoyer la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9. -unexpectedErrorHandlingRequestMessage=Erreur inattendue lors du traitement de la requ\u00eate vers le fournisseur d''identit\u00e9. -invalidAccessCodeMessage=Code d''acc\u00e8s invalide. -sessionNotActiveMessage=La session n''est pas active. -invalidCodeMessage=Une erreur est survenue, veuillez vous reconnecter \u00e0 votre application. -identityProviderUnexpectedErrorMessage=Erreur inattendue lors de l''authentification avec fournisseur d''identit\u00e9. -identityProviderNotFoundMessage=Impossible de trouver le fournisseur d''identit\u00e9 avec cet identifiant. -identityProviderLinkSuccess=Votre compte a \u00e9t\u00e9 correctement li\u00e9 avec {0} compte {1} . -staleCodeMessage=Cette page n''est plus valide, merci de retourner \u00e0 votre application et de vous connecter \u00e0 nouveau. -realmSupportsNoCredentialsMessage=Ce domaine ne supporte aucun type d''accr\u00e9ditation. -identityProviderNotUniqueMessage=Ce domaine autorise plusieurs fournisseurs d''identit\u00e9. Impossible de d\u00e9terminer le fournisseur d''identit\u00e9 avec lequel s''authentifier. -emailVerifiedMessage=Votre courriel a \u00e9t\u00e9 v\u00e9rifi\u00e9. - -staleEmailVerificationLink=Le lien que vous avez cliqu\u00e9 est p\u00e9rim\u00e9 et n''est plus valide. Peut-\u00eatre avez vous d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre mot de passe ? -identityProviderAlreadyLinkedMessage=L''identit\u00e9 f\u00e9d\u00e9r\u00e9e retourn\u00e9e par {0} est d\u00e9j\u00e0 li\u00e9e \u00e0 un autre utilisateur. -confirmAccountLinking=Confirmez la liaison du compte {0} du fournisseur d''entit\u00e9 {1} avec votre compte. -confirmEmailAddressVerification=Confirmez la validit\u00e9 de l''adresse courriel {0}. -confirmExecutionOfActions=Suivez les instructions suivantes - - -backToApplication=« Revenir \u00e0 l''application -missingParameterMessage=Param\u00e8tres manquants \: {0} -clientNotFoundMessage=Client inconnu. -clientDisabledMessage=Client d\u00e9sactiv\u00e9. -invalidParameterMessage=Param\u00e8tre invalide \: {0} -alreadyLoggedIn=Vous \u00eates d\u00e9j\u00e0 connect\u00e9. - -differentUserAuthenticated=Vous \u00eates d\u00e9j\u00e0 authentifi\u00e9 avec un autre utilisateur ''{0}'' dans cette session. Merci de vous d\u00e9connecter. -proceedWithAction=» Cliquez ici - - -requiredAction.CONFIGURE_TOTP=Configurer OTP -requiredAction.terms_and_conditions=Termes et conditions -requiredAction.UPDATE_PASSWORD=Mettre \u00e0 jour votre mot de passe -requiredAction.UPDATE_PROFILE=Mettre \u00e0 jour votre profil -requiredAction.VERIFY_EMAIL=Valider votre adresse email - - -doX509Login=Vous allez \u00eatre connect\u00e9 en tant que\: -clientCertificate=X509 certificat client\: -noCertificate=[Pas de certificat] - - -pageNotFound=Page non trouv\u00e9e -internalServerError=Une erreur interne du serveur s''est produite - -locale_ca=Catal\u00E0 -locale_de=Deutsch -locale_eng=English -locale_es=Espa\u00F1ol -locale_fra=Fran\u00E7ais -locale_it=Italiano -locale_ja=\u65E5\u672C\u8A9E -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polish -locale_pt_BR=Portugu\u00EAs (Brasil) -locale_pt-BR=Portugu\u00EAs (Brasil) -locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 -locale_lt=Lietuvi\u0173 -locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 -locale_sk=Sloven\u010Dina -locale_sv=Svenska -locale_ara=Arabic -locale_tam=தமிழ் -locale_kan=ಕನ್ನಡ -locale_hin=हिंदी \ No newline at end of file diff --git a/keycloak/theme/base/login/messages/messages_hin.properties b/keycloak/theme/base/login/messages/messages_hin.properties deleted file mode 100644 index 094e34af..00000000 --- a/keycloak/theme/base/login/messages/messages_hin.properties +++ /dev/null @@ -1,374 +0,0 @@ -# encoding: utf-8 -doLogIn=लॉग इन करें -doRegister=रजिस्टर करें -doCancel=रद्द करना -doSubmit=प्रस्तुत -doBack=वापस -doYes=हाँ -doNo=नहीं न -doContinue=जारी रखें -doIgnore=नज़रअंदाज़ करना -doAccept=स्वीकार करना -doDecline=पतन -doForgotPassword=Forgot Password? -doClickHere=यहाँ क्लिक करें -doImpersonate=अभिनय करना -doTryAgain=Try फिर व -doTryAnotherWay=दूसरा तरीका आजमाएं -kerberosNotConfigured=Kerberos कॉन्फ़िगर नहीं किया गया -kerberosNotConfiguredTitle=Kerberos कॉन्फ़िगर नहीं किया गया -bypassKerberosDetail=या तो आप Kerberos द्वारा लॉग इन नहीं हैं या आपका ब्राउज़र Kerberos लॉगिन के लिए सेट अप नहीं है। कृपया अन्य माध्यमों से लॉगिन करना जारी रखें पर क्लिक करें -kerberosNotSetUp=Kerberos सेट नहीं है। आप लॉगिन नहीं कर सकते। -registerTitle=रजिस्टर करें -loginTitle=में प्रवेश करें {0} -loginTitleHtml={0} -impersonateTitle={0} प्रतिरूपण उपयोगकर्ता -impersonateTitleHtml={0} प्रतिरूपण उपयोगकर्ता -realmChoice=क्षेत्र -unknownUser=अज्ञात उपयोगकर्ता -loginTotpTitle=मोबाइल प्रमाणक सेटअप -loginProfileTitle=लेखा जानकारी को अद्यतन बनाएं -loginTimeout=आपके लॉगिन प्रयास का समय समाप्त हो गया। लॉगिन शुरुआत से शुरू हो जाएगा। -oauthGrantTitle=पहुँच प्रदान करें{0} -oauthGrantTitleHtml={0} -errorTitle=हमें खेद है... -errorTitleHtml=हम हैं माफ़ करना ... -emailVerifyTitle=ईमेल सत्यापन -emailForgotTitle=क्या आप पासवर्ड भूल गए? -updatePasswordTitle=पासवर्ड अपडेट करें -codeSuccessTitle=सफलता कोड -codeErrorTitle=त्रुटि कोड\: {0} -displayUnsupported=अनुरोधित प्रदर्शन प्रकार असमर्थित -browserRequired=लॉगिन करने के लिए आवश्यक ब्राउज़र -browserContinue=लॉगिन पूरा करने के लिए ब्राउज़र की आवश्यकता है -browserContinuePrompt=ब्राउज़र खोलें और लॉगिन जारी रखें? [y/n]: -browserContinueAnswer=y - - -termsTitle=नियम और शर्तें -termsText=

परिभाषित किए जाने वाले नियम और शर्तें

-termsPlainText=परिभाषित किए जाने वाले नियम और शर्तें. - -recaptchaFailed=अमान्य रीकैप्चा -recaptchaNotConfigured=रिकैप्चा आवश्यक है, लेकिन कॉन्फ़िगर नहीं किया गया है -consentDenied=सहमति अस्वीकृत. - -noAccount=नया उपयोगकर्ता? -username=उपयोगकर्ता नाम -usernameOrEmail=उपयोगकर्ता का नाम या ईमेल -firstName=पहला नाम -givenName=प्रदत्त नाम -fullName=पूरा नाम -lastName=अंतिम नाम -familyName=परिवार का नाम -email=ईमेल -password=कुंजिका -passwordConfirm=पासवर्ड की पुष्टि कीजिये -passwordNew=नया पासवर्ड -passwordNewConfirm=नया पासवर्ड पुष्टि -rememberMe=मुझे याद रखना -authenticatorCode=एक बार का कोड -address=पता -street=सड़क -locality=शहर या इलाका -region=राज्य, प्रांत या क्षेत्र -postal_code=डाक कोड -country=देश -emailVerified=ईमेल सत्यापित हुआ -gssDelegationCredential=जीएसएस प्रतिनिधिमंडल क्रेडेंशियल - -profileScopeConsentText=उपयोगकर्ता प्रोफ़ाइल -emailScopeConsentText=ईमेल पता -addressScopeConsentText=पता -phoneScopeConsentText=फ़ोन नंबर -offlineAccessScopeConsentText=ऑफलाइन एक्सेस -samlRoleListScopeConsentText=मेरी भूमिकाएं -rolesScopeConsentText=उपयोगकर्ता भूमिका - -restartLoginTooltip=लॉगिन पुनरारंभ करें - -loginTotpIntro=इस खाते तक पहुंचने के लिए आपको वन टाइम पासवर्ड जनरेटर सेट करना होगा -loginTotpStep1=अपने मोबाइल में निम्न में से कोई एक एप्लिकेशन इंस्टॉल करें: -loginTotpStep2=एप्लिकेशन खोलें और बारकोड को स्कैन करें: -loginTotpStep3=एप्लिकेशन द्वारा प्रदान किया गया वन-टाइम कोड दर्ज करें और सेटअप समाप्त करने के लिए सबमिट पर क्लिक करें। -loginTotpStep3DeviceName=अपने ओटीपी उपकरणों को प्रबंधित करने में आपकी सहायता के लिए डिवाइस का नाम प्रदान करें। -loginTotpManualStep2=एप्लिकेशन खोलें और कुंजी दर्ज करें: -loginTotpManualStep3=यदि एप्लिकेशन उन्हें सेट करने की अनुमति देता है तो निम्न कॉन्फ़िगरेशन मानों का उपयोग करें: -loginTotpUnableToScan=स्कैन करने में असमर्थ? -loginTotpScanBarcode=बारकोड स्कैन करें? -loginCredential=क्रेडेंशियल -loginOtpOneTime=एक बार का कोड -loginTotpType=प्रकार -loginTotpAlgorithm=कलन विधि -loginTotpDigits=कलन विधि -loginTotpInterval=मध्यान्तर -loginTotpCounter=काउंटर -loginTotpDeviceName=डिवाइस का नाम - -loginTotp.totp=समय पर आधारित -loginTotp.hotp=काउंटर-आधारित - -loginChooseAuthenticator=लॉगिन विधि चुनें - -oauthGrantRequest=क्या आप इन एक्सेस विशेषाधिकारों को प्रदान करते हैं? -inResource=में - -emailVerifyInstruction1=आपका ईमेल पता सत्यापित करने के निर्देशों वाला एक ईमेल आपको भेज दिया गया है। -emailVerifyInstruction2=आपके ईमेल में सत्यापन कोड प्राप्त नहीं हुआ है? -emailVerifyInstruction3=ईमेल को फिर से भेजने के लिए। - -emailLinkIdpTitle=संपर्क{0} -emailLinkIdp1=आपके {2} खाते के साथ {0} खाते {1} को लिंक करने के निर्देशों वाला एक ईमेल आपको भेजा गया है। -emailLinkIdp2=आपके ईमेल में सत्यापन कोड प्राप्त नहीं हुआ है? -emailLinkIdp3=ईमेल को फिर से भेजने के लिए। -emailLinkIdp4=यदि आप पहले ही ईमेल को भिन्न ब्राउज़र में सत्यापित कर चुके हैं -emailLinkIdp5=जारी रखने के लिए। - -backToLogin=« लॉगिन पर वापस जाएं - -emailInstruction=अपना उपयोगकर्ता नाम या ईमेल पता दर्ज करें और हम आपको एक नया पासवर्ड बनाने के निर्देश भेजेंगे। - -copyCodeInstruction=कृपया इस कोड को कॉपी करें और इसे अपने आवेदन में पेस्ट करें: - -pageExpiredTitle=पृष्ठ समाप्त हो गया है -pageExpiredMsg1=लॉगिन प्रक्रिया को पुनः आरंभ करने के लिए -pageExpiredMsg2=लॉगिन प्रक्रिया जारी रखने के लिए - -personalInfo=व्यक्तिगत जानकारी: -role_admin=व्यवस्थापक -role_realm-admin=क्षेत्र व्यवस्थापक -role_create-realm=दायरे बनाएं -role_create-client=क्लाइंट बनाएं -role_view-realm=क्षेत्र देखें -role_view-users=उपयोगकर्ताओं को देखें -role_view-applications=एप्लिकेशन देखें -role_view-clients=ग्राहकों को देखें -role_view-events=इवेंट देखें -role_view-identity-providers=पहचान प्रदाता देखें -role_manage-realm=दायरे का प्रबंधन करें -role_manage-users=उपयोगकर्ताओं को प्रबंधित करें -role_manage-applications=अनुप्रयोगों का प्रबंधन -role_manage-identity-providers=पहचान प्रदाताओं को प्रबंधित करें -role_manage-clients=ग्राहकों को प्रबंधित करें -role_manage-events=ईवेंट प्रबंधित करें -role_view-profile=प्रोफ़ाइल देखें -role_manage-account=खाते का प्रबंधन करें -role_manage-account-links=खाता लिंक प्रबंधित करें -role_read-token=टोकन पढ़ें -role_offline-access=ऑफ़लाइन पहुंच -client_account=लेखा -client_account-console=खाता कंसोल -client_security-admin-console=सुरक्षा व्यवस्थापक कंसोल -client_admin-cli=व्यवस्थापक सीएलआई -client_realm-management=क्षेत्र प्रबंधन -client_broker=दलाल - -requiredFields=आवश्यक फील्ड्स - -invalidUserMessage=अमान्य उपयोगकर्ता नाम या पासवर्ड। -invalidUsernameMessage=अमान्य उपयोगकर्ता नाम। -invalidUsernameOrEmailMessage=अमान्य उपयोगकर्ता नाम या ईमेल। -invalidPasswordMessage=अवैध पासवर्ड। -invalidEmailMessage=अमान्य ईमेल पता। -accountDisabledMessage=खाता अक्षम है, अपने व्यवस्थापक से संपर्क करें। -accountTemporarilyDisabledMessage=खाता अस्थायी रूप से अक्षम है; अपने व्यवस्थापक से संपर्क करें या बाद में पुनः प्रयास करें। -expiredCodeMessage=लॉगिन मध्यांतर। कृपया फिर भाग लें। -expiredActionMessage=कार्रवाई समाप्त हो गई। कृपया अभी लॉगिन जारी रखें। -expiredActionTokenNoSessionMessage=कार्रवाई समाप्त हो गई। -expiredActionTokenSessionExistsMessage=कार्रवाई समाप्त हो गई। कृपया फिर से शुरू करें। - -missingFirstNameMessage=कृपया प्रथम नाम निर्दिष्ट करें। -missingLastNameMessage=कृपया अंतिम नाम निर्दिष्ट करें। -missingEmailMessage=कृपया ईमेल निर्दिष्ट करें। -missingUsernameMessage=कृपया उपयोगकर्ता नाम निर्दिष्ट करें। -missingPasswordMessage=कृपया पासवर्ड निर्दिष्ट करें। -missingTotpMessage=कृपया प्रमाणक कोड निर्दिष्ट करें। -missingTotpDeviceNameMessage=कृपया डिवाइस का नाम निर्दिष्ट करें। -notMatchPasswordMessage=पासवर्ड मेल नहीं खाते। - -invalidPasswordExistingMessage=अमान्य मौजूदा पासवर्ड। -invalidPasswordBlacklistedMessage=अमान्य पासवर्ड: पासवर्ड काली सूची में डाल दिया गया है। -invalidPasswordConfirmMessage=पासवर्ड पुष्टिकरण मेल नहीं खाता। -invalidTotpMessage=अमान्य प्रमाणक कोड। - -usernameExistsMessage=उपयोगकर्ता का नाम पहले से मौजूद है। -emailExistsMessage=ईमेल पहले से मौजूद है। - -federatedIdentityExistsMessage={0} {1} वाला उपयोगकर्ता पहले से मौजूद है। खाते को लिंक करने के लिए कृपया खाता प्रबंधन में लॉगिन करें। - -confirmLinkIdpTitle=खाता पहले से मौजूद है -federatedIdentityConfirmLinkMessage={0} {1} वाला उपयोगकर्ता पहले से मौजूद है। आप कैसे जारी रखना चाहते हैं? -federatedIdentityConfirmReauthenticateMessage=अपने खाते को {0} से जोड़ने के लिए प्रमाणित करें -nestedFirstBrokerFlowMessage={0} उपयोगकर्ता {1} किसी ज्ञात उपयोगकर्ता से लिंक नहीं है। -confirmLinkIdpReviewProfile=प्रोफ़ाइल की समीक्षा करें -confirmLinkIdpContinue=मौजूदा खाते में जोड़ें - -configureTotpMessage=अपना खाता सक्रिय करने के लिए आपको मोबाइल प्रमाणक सेट करना होगा। -updateProfileMessage=अपने खाते को सक्रिय करने के लिए आपको अपनी उपयोगकर्ता प्रोफ़ाइल को अपडेट करना होगा। -updatePasswordMessage=अपना खाता सक्रिय करने के लिए आपको अपना पासवर्ड बदलना होगा। -resetPasswordMessage=आपको अपना पासवर्ड बदलना होगा। -verifyEmailMessage=अपना खाता सक्रिय करने के लिए आपको अपना ईमेल पता सत्यापित करना होगा। -linkIdpMessage=अपने खाते को {0} से जोड़ने के लिए आपको अपना ईमेल पता सत्यापित करना होगा। - -emailSentMessage=आपको आगे के निर्देशों के साथ शीघ्र ही एक ईमेल प्राप्त होना चाहिए। -emailSendErrorMessage=ईमेल भेजने में विफल, कृपया बाद में पुन: प्रयास करें। -accountUpdatedMessage=आपका खाता नवीनीकृत हो चुका है। -accountPasswordUpdatedMessage=आपका पासवर्ड बदला जा चुका है। - -delegationCompleteHeader=लॉग इन सफल -delegationCompleteMessage=आप इस ब्राउज़र विंडो को बंद कर सकते हैं और अपने कंसोल एप्लिकेशन पर वापस जा सकते हैं। -delegationFailedHeader=लॉगिन विफल -delegationFailedMessage=आप इस ब्राउज़र विंडो को बंद कर सकते हैं और अपने कंसोल एप्लिकेशन पर वापस जा सकते हैं और फिर से लॉग इन करने का प्रयास कर सकते हैं। - -noAccessMessage=तक पहुँच नहीं - -invalidPasswordMinLengthMessage=अमान्य पासवर्ड: न्यूनतम लंबाई {0}. -invalidPasswordMinDigitsMessage=अमान्य पासवर्ड: कम से कम {0} संख्यात्मक अंक होने चाहिए। -invalidPasswordMinLowerCaseCharsMessage=अमान्य पासवर्ड: कम से कम {0} लोअर केस वर्ण होने चाहिए। -invalidPasswordMinUpperCaseCharsMessage=अमान्य पासवर्ड: कम से कम {0} अपर केस वर्ण होने चाहिए। -invalidPasswordMinSpecialCharsMessage=अमान्य पासवर्ड: कम से कम {0} विशेष वर्ण होने चाहिए। -invalidPasswordNotUsernameMessage=अमान्य पासवर्ड: उपयोगकर्ता नाम के बराबर नहीं होना चाहिए। -invalidPasswordRegexPatternMessage=अमान्य पासवर्ड: रेगेक्स पैटर्न से मेल नहीं खाता (एस .)). -invalidPasswordHistoryMessage=अमान्य पासवर्ड: किसी भी अंतिम {0} पासवर्ड के बराबर नहीं होना चाहिए। -invalidPasswordGenericMessage=अमान्य पासवर्ड: नया पासवर्ड पासवर्ड नीतियों से मेल नहीं खाता। - -failedToProcessResponseMessage=प्रतिक्रिया संसाधित करने में विफल -httpsRequiredMessage=HTTPS आवश्यक -realmNotEnabledMessage=क्षेत्र सक्षम नहीं है -invalidRequestMessage=अमान्य अनुरोध -failedLogout=लॉगआउट विफल -unknownLoginRequesterMessage=अज्ञात लॉगिन अनुरोधकर्ता -loginRequesterNotEnabledMessage=लॉगिन अनुरोधकर्ता सक्षम नहीं है -bearerOnlyMessage=केवल वाहक अनुप्रयोगों को ब्राउज़र लॉगिन आरंभ करने की अनुमति नहीं है -standardFlowDisabledMessage=क्लाइंट को दिए गए response_type के साथ ब्राउज़र लॉगिन शुरू करने की अनुमति नहीं है। क्लाइंट के लिए मानक प्रवाह अक्षम है। -implicitFlowDisabledMessage=क्लाइंट को दिए गए response_type के साथ ब्राउज़र लॉगिन शुरू करने की अनुमति नहीं है। क्लाइंट के लिए निहित प्रवाह अक्षम है। -invalidRedirectUriMessage=अमान्य रीडायरेक्ट यूरी -unsupportedNameIdFormatMessage=असमर्थित NameIDFormat -invalidRequesterMessage=अमान्य अनुरोधकर्ता -registrationNotAllowedMessage=पंजीकरण की अनुमति नहीं है -resetCredentialNotAllowedMessage=क्रेडेंशियल रीसेट करने की अनुमति नहीं है - -permissionNotApprovedMessage=अनुमति स्वीकृत नहीं है। -noRelayStateInResponseMessage=पहचान प्रदाता के जवाब में कोई रिले स्थिति नहीं है। -insufficientPermissionMessage=पहचान लिंक करने के लिए अपर्याप्त अनुमतियां। -couldNotProceedWithAuthenticationRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध के साथ आगे नहीं बढ़ सका। -couldNotObtainTokenMessage=पहचान प्रदाता से टोकन प्राप्त नहीं कर सका। -unexpectedErrorRetrievingTokenMessage=पहचान प्रदाता से टोकन प्राप्त करते समय अनपेक्षित त्रुटि। -unexpectedErrorHandlingResponseMessage=पहचान प्रदाता से प्रतिक्रिया को संभालते समय अनपेक्षित त्रुटि। -identityProviderAuthenticationFailedMessage=प्रमाणीकरण विफल होना। पहचान प्रदाता के साथ प्रमाणित नहीं किया जा सका। -couldNotSendAuthenticationRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध नहीं भेजा जा सका। -unexpectedErrorHandlingRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध को संसाधित करते समय अनपेक्षित त्रुटि। -invalidAccessCodeMessage=अमान्य एक्सेस कोड। -sessionNotActiveMessage=सत्र सक्रिय नहीं है। -invalidCodeMessage=एक त्रुटि हुई, कृपया अपने आवेदन के माध्यम से फिर से लॉगिन करें। -identityProviderUnexpectedErrorMessage=पहचान प्रदाता के साथ प्रमाणीकरण करते समय अनपेक्षित त्रुटि -identityProviderNotFoundMessage=पहचानकर्ता के साथ एक पहचान प्रदाता नहीं मिला। -identityProviderLinkSuccess=आपने अपना ईमेल सफलतापूर्वक सत्यापित कर लिया है। कृपया अपने मूल ब्राउज़र पर वापस जाएं और वहां लॉगिन के साथ जारी रखें। -staleCodeMessage=यह पृष्ठ अब मान्य नहीं है, कृपया अपने आवेदन पर वापस जाएं और फिर से लॉग इन करें -realmSupportsNoCredentialsMessage=दायरे किसी भी क्रेडेंशियल प्रकार का समर्थन नहीं करता है। -credentialSetupRequired=लॉगिन नहीं कर सकता, क्रेडेंशियल सेटअप की आवश्यकता है। -identityProviderNotUniqueMessage=दायरे कई पहचान प्रदाताओं का समर्थन करता है। यह निर्धारित नहीं किया जा सका कि किस पहचान प्रदाता के साथ प्रमाणित करने के लिए उपयोग किया जाना चाहिए। -emailVerifiedMessage=आपका ईमेल पता सत्यापित कर दिया गया है। -staleEmailVerificationLink=आपके द्वारा क्लिक किया गया लिंक पुराना पुराना लिंक है और अब मान्य नहीं है। हो सकता है कि आपने अपना ईमेल पहले ही सत्यापित कर लिया हो। -identityProviderAlreadyLinkedMessage={0} द्वारा लौटाई गई फ़ेडरेटेड पहचान पहले से ही किसी अन्य उपयोगकर्ता से जुड़ी हुई है। -confirmAccountLinking=पहचान प्रदाता {1} के खाते को अपने खाते से जोड़ने की पुष्टि करें। -confirmEmailAddressVerification=ई-मेल पते {0} की वैधता की पुष्टि करें। -confirmExecutionOfActions=निम्नलिखित क्रियाएं करें - -locale_ca=कैटल\u00E0 -locale_de=deutsch -locale_eng=अंग्रेज़ी -locale_es=एस्पा\u00F1ol -locale_fra=फ़्रैन\u00E7ais -locale_it=Italiano -locale_ja=\u65E5\u672C\u8A9E -locale_nl=नीदरलैंड्स -locale_no=Norsk -locale_pl=Polish -locale_pt_BR=Portugu\u00EAs (Brasil) -locale_pt-BR=Portugu\u00EAs (Brasil) -locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 -locale_lt=Lietuvi\u0173 -locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 -locale_sk=Sloven\u010Dina -locale_sv=Svenska -locale_ara=Arabic -locale_tam=தமிழ் -locale_kan=ಕನ್ನಡ -locale_hin=हिंदी - -backToApplication=« आवेदन पर वापस जाएं -missingParameterMessage=गुम पैरामीटर\: {0} -clientNotFoundMessage=ग्राहक नहीं मिला। -clientDisabledMessage=क्लाइंट अक्षम. -invalidParameterMessage=अमान्य मापदंड\: {0} -alreadyLoggedIn=आप पहले से लॉगिन कर रहे हैं. -differentUserAuthenticated=आप इस सत्र में पहले से ही भिन्न उपयोगकर्ता ''{0}'' के रूप में प्रमाणित हैं। कृपया पहले लॉग आउट करें। -brokerLinkingSessionExpired=अनुरोधित ब्रोकर खाता लिंकिंग, लेकिन वर्तमान सत्र अब मान्य नहीं है। -proceedWithAction=» आगे बढ़ने के लिए यहां क्लिक करें - -requiredAction.CONFIGURE_TOTP=ओटीपी कॉन्फ़िगर करें -requiredAction.terms_and_conditions=नियम और शर्तें -requiredAction.UPDATE_PASSWORD=पासवर्ड अपडेट करें -requiredAction.UPDATE_PROFILE=प्रोफ़ाइल अपडेट करें -requiredAction.VERIFY_EMAIL=Verify Email - -doX509Login=आप के रूप में लॉग इन किया जाएगा\: -clientCertificate=X509 क्लाइंट प्रमाणपत्र\: -noCertificate=[कोई प्रमाणपत्र नहीं] - - -pageNotFound=पृष्ठ नहीं मिला -internalServerError=एक आंतरिक सर्वर त्रुटि हुई है - -console-username=उपयोगकर्ता नाम: -console-password=कुंजिका: -console-otp=वन टाइम पासवर्ड: -console-new-password=नया पासवर्ड: -console-confirm-password=पासवर्ड की पुष्टि कीजिये: -console-update-password=आपके पासवर्ड का अद्यतन आवश्यक है। -console-verify-email=आपको अपना ईमेल पता सत्यापित करना होगा। हमने {0} को एक ईमेल भेजा है जिसमें एक सत्यापन कोड है। कृपया इस कोड को नीचे दिए गए इनपुट में दर्ज करें। -console-email-code=ईमेल कोड: -console-accept-terms=शर्तों को स्वीकारें? [y/n]: -console-accept=y - -# Openshift messages -openshift.scope.user_info=यूजर जानकारी -openshift.scope.user_check-access=उपयोगकर्ता पहुंच जानकारी -openshift.scope.user_full=Full Access -openshift.scope.list-projects=परियोजनाओं की सूची बनाएं - -# SAML authentication -saml.post-form.title=प्रमाणीकरण पुनर्निर्देशन -saml.post-form.message=फिर से भेजा जा रहा है ............ कृपया इंतजार करें। -saml.post-form.js-disabled=जावास्क्रिप्ट अक्षम है। हम इसे सक्षम करने की दृढ़ता से अनुशंसा करते हैं। जारी रखने के लिए नीचे के बटन पर क्लिक करें। - -#authenticators -otp-display-name=प्रमाणक आवेदन -otp-help-text=प्रमाणक आवेदन से सत्यापन कोड दर्ज करें। -password-display-name=कुंजिका -password-help-text=अपना पासवर्ड डालकर लॉग इन करें। -auth-username-form-display-name=उपयोगकर्ता नाम -auth-username-form-help-text=अपना उपयोगकर्ता नाम दर्ज करके लॉग इन प्रारंभ करें -auth-username-password-form-display-name=उपयोगकर्ता नाम और पासवर्ड -auth-username-password-form-help-text=अपना यूजरनेम और पासवर्ड डालकर लॉग इन करें। - -# WebAuthn -webauthn-display-name=सुरक्षा कुंजी -webauthn-help-text=लॉग इन करने के लिए अपनी सुरक्षा कुंजी का उपयोग करें। -webauthn-passwordless-display-name=सुरक्षा कुंजी -webauthn-passwordless-help-text=पासवर्ड रहित लॉग इन के लिए अपनी सुरक्षा कुंजी का उपयोग करें। -webauthn-login-title=सुरक्षा कुंजी लॉगिन -webauthn-registration-title=सुरक्षा कुंजी पंजीकरण -webauthn-available-authenticators=उपलब्ध प्रमाणक - -# WebAuthn Error -webauthn-error-title=सुरक्षा कुंजी त्रुटि -webauthn-error-registration=आपकी सुरक्षा कुंजी पंजीकृत करने में विफल. -webauthn-error-api-get=सुरक्षा कुंजी द्वारा प्रमाणित करने में विफल. -webauthn-error-different-user=पहला प्रमाणीकृत उपयोगकर्ता सुरक्षा कुंजी द्वारा प्रमाणित नहीं है. -webauthn-error-auth-verification=सुरक्षा कुंजी प्रमाणीकरण परिणाम अमान्य है. -webauthn-error-register-verification=सुरक्षा कुंजी पंजीकरण परिणाम अमान्य है. -webauthn-error-user-not-found=सुरक्षा कुंजी द्वारा प्रमाणित अज्ञात उपयोगकर्ता. - -identity-provider-redirector=किसी अन्य पहचान प्रदाता से जुड़ें \ No newline at end of file diff --git a/keycloak/theme/base/login/messages/messages_kan.properties b/keycloak/theme/base/login/messages/messages_kan.properties deleted file mode 100644 index 0dbe0594..00000000 --- a/keycloak/theme/base/login/messages/messages_kan.properties +++ /dev/null @@ -1,375 +0,0 @@ -# encoding: utf-8 -doLogIn=ಲಾಗ್ ಇನ್ ಮಾಡಿ -doRegister=ನೋಂದಾಯಿಸಿ -doCancel=ರದ್ದುಮಾಡಿ -doSubmit=ಸಲ್ಲಿಸಿ -doBack=ಹಿಂದೆ -doYes=ಹೌದು -doNo=ಇಲ್ಲ -doContinue=ಮುಂದುವರಿಸಿ -doIgnore=ನಿರ್ಲಕ್ಷಿಸು -doAccept=ಸ್ವೀಕರಿಸಿ -doDecline=ಅವನತಿ -doForgotPassword=ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ? -doClickHere=ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ -doImpersonate=ಸೋಗು ಹಾಕಿ -doTryAgain=ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ -doTryAnotherWay=ಇನ್ನೊಂದು ರೀತಿಯಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ -kerberosNotConfigured=ಕರ್ಬರೋಸ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ -kerberosNotConfiguredTitle=ಕರ್ಬರೋಸ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ -bypassKerberosDetail=ಒಂದೋ ನೀವು ಕರ್ಬರೋಸ್‌ನಿಂದ ಲಾಗಿನ್ ಆಗಿಲ್ಲ ಅಥವಾ ಕರ್ಬರೋಸ್ ಲಾಗಿನ್‌ಗಾಗಿ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ. ಇತರ ವಿಧಾನಗಳ ಮೂಲಕ ಲಾಗಿನ್ ಆಗಲು ಮುಂದುವರಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ -kerberosNotSetUp= ಕರ್ಬರೋಸ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ. ನೀವು ಲಾಗಿನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. -registerTitle=ನೋಂದಾಯಿಸಿ -loginTitle={0} to ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ -loginTitleHtml={0} -impersonateTitle={0} ಸೋಗು ಹಾಕುವ ಬಳಕೆದಾರ -impersonateTitleHtml= {0} ಸೋಗು ಹಾಕುವ ಬಳಕೆದಾರ -realmChoice=ಕ್ಷೇತ್ರ -unknownUser=ಅಜ್ಞಾತ ಬಳಕೆದಾರ -loginTotpTitle=ಮೊಬೈಲ್ ದೃ hentic ೀಕರಣ ಸೆಟಪ್ -loginProfileTitle=ಖಾತೆ ಮಾಹಿತಿಯನ್ನು ನವೀಕರಿಸಿ -loginTimeout=ನಿಮ್ಮ ಲಾಗಿನ್ ಪ್ರಯತ್ನ ಮುಗಿದಿದೆ. ಲಾಗಿನ್ ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. -oauthGrantTitle={0}to ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡಿ -oauthGrantTitleHtml={0} -errorTitle=ನಮ್ಮನ್ನು ಕ್ಷಮಿಸಿ ... -errorTitleHtml=ನಾವು ಕ್ಷಮಿಸಿ ... -emailVerifyTitle=ಇಮೇಲ್ ಪರಿಶೀಲನೆ -emailForgotTitle=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ? -updatePasswordTitle=ಪಾಸ್‌ವರ್ಡ್ ನವೀಕರಿಸಿ -codeSuccessTitle=ಯಶಸ್ಸಿನ ಕೋಡ್ -codeErrorTitle=ದೋಷ ಕೋಡ್ \: {0} -displayUnsupported=ವಿನಂತಿಸಿದ ಪ್ರದರ್ಶನ ಪ್ರಕಾರವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ -browserRequired=ಲಾಗಿನ್ ಮಾಡಲು ಬ್ರೌಸರ್ ಅಗತ್ಯವಿದೆ -browserContinue=ಲಾಗಿನ್ ಪೂರ್ಣಗೊಳಿಸಲು ಬ್ರೌಸರ್ ಅಗತ್ಯವಿದೆ -browserContinuePrompt=ಬ್ರೌಸರ್ ತೆರೆಯಿರಿ ಮತ್ತು ಲಾಗಿನ್ ಮುಂದುವರಿಸುವುದೇ? [y / n]: -browserContinueAnswer=y - - -termsTitle=ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು -termsText=

ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾದ ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು -termsPlainText=ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾದ ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು. - -recaptchaFailed=ಅಮಾನ್ಯ ಮರುಸಂಗ್ರಹ -recaptchaNotConfigured=Recaptcha ಅಗತ್ಯವಿದೆ, ಆದರೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ -consentDenied=ಒಪ್ಪಿಗೆ ನಿರಾಕರಿಸಲಾಗಿದೆ. - -noAccount=ಹೊಸ ಬಳಕೆದಾರ? -username=ಬಳಕೆದಾರಹೆಸರು -usernameOrEmail=ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್ -firstName=ಮೊದಲ ಹೆಸರು -givenName=ಕೊಟ್ಟಿರುವ ಹೆಸರು -fullName=ಪೂರ್ಣ ಹೆಸರು -lastName=ಕೊನೆಯ ಹೆಸರು -familyName=ಕುಟುಂಬದ ಹೆಸರು -email=ಇಮೇಲ್ -password=ಪಾಸ್ವರ್ಡ್ -passwordConfirm=ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ದೃ irm ೀಕರಿಸಿ -passwordNew=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ -passwordNewConfirm=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ದೃ mation ೀಕರಣ -rememberMe=ನನ್ನನ್ನು ನೆನಪಿಡಿ -authenticatorCode=ಒಂದು-ಬಾರಿ ಕೋಡ್ -address=ವಿಳಾಸ -street=ರಸ್ತೆ -locality=ನಗರ ಅಥವಾ ಸ್ಥಳ -region=ರಾಜ್ಯ, ಪ್ರಾಂತ್ಯ ಅಥವಾ ಪ್ರದೇಶ -postal_code=ಪಿನ್ ಅಥವಾ ಅಂಚೆ ಕೋಡ್ -country=ದೇಶ -emailVerified=ಇಮೇಲ್ ಪರಿಶೀಲಿಸಲಾಗಿದೆ -gssDelegationCredential=ಜಿಎಸ್ಎಸ್ ನಿಯೋಗ ರುಜುವಾತು - -profileScopeConsentText=ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ -emailScopeConsentText=ಇಮೇಲ್ ವಿಳಾಸ -addressScopeConsentText=ವಿಳಾಸ -phoneScopeConsentText=ಫೋನ್ ಸಂಖ್ಯೆ -offlineAccessScopeConsentText=ಆಫ್‌ಲೈನ್ ಪ್ರವೇಶ -samlRoleListScopeConsentText=ನನ್ನ ಪಾತ್ರಗಳು -rolesScopeConsentText=ಬಳಕೆದಾರರ ಪಾತ್ರಗಳು - -restartLoginTooltip=ಲಾಗಿನ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ - -loginTotpIntro=ಈ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಒನ್ ಟೈಮ್ ಪಾಸ್ವರ್ಡ್ ಜನರೇಟರ್ ಅನ್ನು ಹೊಂದಿಸಬೇಕಾಗಿದೆ -loginTotpStep1=ನಿಮ್ಮ ಮೊಬೈಲ್‌ನಲ್ಲಿ ಈ ಕೆಳಗಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಒಂದನ್ನು ಸ್ಥಾಪಿಸಿ: -loginTotpStep2=ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ ಮತ್ತು ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ: -loginTotpStep3=ಅಪ್ಲಿಕೇಶನ್ ಒದಗಿಸಿದ ಒನ್-ಟೈಮ್ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಸೆಟಪ್ ಮುಗಿಸಲು ಸಲ್ಲಿಸು ಕ್ಲಿಕ್ ಮಾಡಿ. -loginTotpStep3DeviceName=ನಿಮ್ಮ OTP ಸಾಧನಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ಸಾಧನದ ಹೆಸರನ್ನು ಒದಗಿಸಿ. -loginTotpManualStep2=ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ ಮತ್ತು ಕೀಲಿಯನ್ನು ನಮೂದಿಸಿ: -loginTotpManualStep3=ಅಪ್ಲಿಕೇಶನ್ ಅವುಗಳನ್ನು ಹೊಂದಿಸಲು ಅನುಮತಿಸಿದರೆ ಈ ಕೆಳಗಿನ ಸಂರಚನಾ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಿ: -loginTotpUnableToScan=ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲವೇ? -loginTotpScanBarcode=ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುವುದೇ? -loginCredential=ರುಜುವಾತು -loginOtpOneTime=ಒಂದು-ಬಾರಿ ಕೋಡ್ -loginTotpType=ಪ್ರಕಾರ -loginTotpAlgorithm=ಅಲ್ಗಾರಿದಮ್ -loginTotpDigits=ಅಂಕೆಗಳು -loginTotpInterval=ಮಧ್ಯಂತರ -loginTotpCounter=ಕೌಂಟರ್ -loginTotpDeviceName=ಸಾಧನದ ಹೆಸರು - -loginTotp.totp=ಸಮಯ ಆಧಾರಿತ -loginTotp.hotp=ಕೌಂಟರ್ ಆಧಾರಿತ - -loginChooseAuthenticator=ಲಾಗಿನ್ ವಿಧಾನವನ್ನು ಆರಿಸಿ - -oauthGrantRequest=ನೀವು ಈ ಪ್ರವೇಶ ಸೌಲಭ್ಯಗಳನ್ನು ನೀಡುತ್ತೀರಾ? -inResource=இல் - -emailVerifyInstruction1=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲು ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇಮೇಲ್ ಅನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲಾಗಿದೆ. -emailVerifyInstruction2=ನಿಮ್ಮ ಇಮೇಲ್‌ನಲ್ಲಿ ಪರಿಶೀಲನೆ ಕೋಡ್ ಸ್ವೀಕರಿಸಿಲ್ಲವೇ? -emailVerifyInstruction3=ಇಮೇಲ್ ಅನ್ನು ಮರು ಕಳುಹಿಸಲು. - -emailLinkIdpTitle=ಲಿಂಕ್ {0} -emailLinkIdp1=ನಿಮ್ಮ {2} ಖಾತೆಯೊಂದಿಗೆ {0} ಖಾತೆ {1 link ಅನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇಮೇಲ್ ಅನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲಾಗಿದೆ. -emailLinkIdp2=ನಿಮ್ಮ ಇಮೇಲ್‌ನಲ್ಲಿ ಪರಿಶೀಲನೆ ಕೋಡ್ ಸ್ವೀಕರಿಸಿಲ್ಲವೇ? -emailLinkIdp3=ಇಮೇಲ್ ಅನ್ನು ಮರು ಕಳುಹಿಸಲು. -emailLinkIdp4=ನೀವು ಈಗಾಗಲೇ ಬೇರೆ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದರೆ -emailLinkIdp5=ಮುಂದುವರಿಸಲು. - -backToLogin=& laquo; ಲಾಗಿನ್‌ಗೆ ಹಿಂತಿರುಗಿ - -emailInstruction=ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ನಾವು ನಿಮಗೆ ಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ. - -copyCodeInstruction=ದಯವಿಟ್ಟು ಈ ಕೋಡ್ ಅನ್ನು ನಕಲಿಸಿ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅಂಟಿಸಿ: - -pageExpiredTitle=ಪುಟ ಅವಧಿ ಮೀರಿದೆ -pageExpiredMsg1=ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು -pageExpiredMsg2=ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮುಂದುವರಿಸಲು - -personalInfo=ವೈಯಕ್ತಿಕ ಮಾಹಿತಿ: -role_admin=ನಿರ್ವಹಣೆ -role_realm-admin=ಕ್ಷೇತ್ರ ನಿರ್ವಹಣೆ -role_create-realm=ಕ್ಷೇತ್ರವನ್ನು ರಚಿಸಿ -role_create-client=ಕ್ಲೈಂಟ್ ರಚಿಸಿ -role_view-realm=ಕ್ಷೇತ್ರವನ್ನು ವೀಕ್ಷಿಸಿ -role_view-users=ಬಳಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ -role_view-applications=ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ -role_view-clients=ಗ್ರಾಹಕರನ್ನು ವೀಕ್ಷಿಸಿ -role_view-events=ಈವೆಂಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ -role_view-identity-providers=ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ -role_manage-realm=ಕ್ಷೇತ್ರವನ್ನು ನಿರ್ವಹಿಸಿ -role_manage-users=ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ -role_manage-applications=ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ -role_manage-identity-providers=ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ -role_manage-clients=ಕ್ಲೈಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ -role_manage-events=ಈವೆಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ -role_view-profile= ಪ್ರೊಫೈಲ್ ವೀಕ್ಷಿಸಿ -role_manage-account=ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಿ -role_manage-account-links=ಖಾತೆ ಲಿಂಕ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ -role_read-token=ಟೋಕನ್ ಓದಿ -role_offline-access=ಆಫ್‌ಲೈನ್ ಪ್ರವೇಶ -client_account=ಖಾತೆ -client_account-console=ಖಾತೆ ಕನ್ಸೋಲ್ -client_security-admin-console=ಭದ್ರತಾ ನಿರ್ವಹಣೆ ಕನ್ಸೋಲ್ -client_admin-cli=ನಿರ್ವಹಣೆ CLI -client_realm-management=ಕ್ಷೇತ್ರ ನಿರ್ವಹಣೆ -client_broker=ಬ್ರೋಕರ್ - -requiredFields=ಅಗತ್ಯವಿರುವ ಕ್ಷೇತ್ರಗಳು - -invalidUserMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್. -invalidUsernameMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು. -invalidUsernameOrEmailMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್. -invalidPasswordMessage=ಅಮಾನ್ಯ ಪಾಸ್ವರ್ಡ್. -invalidEmailMessage=ಅಮಾನ್ಯ ಇಮೇಲ್ ವಿಳಾಸ. -accountDisabledMessage=ಖಾತೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ. -accountTemporarilyDisabledMessage=ಖಾತೆಯನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ; ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ ಅಥವಾ ನಂತರ ಮರುಪ್ರಯತ್ನಿಸಿ. -expiredCodeMessage=ಲಾಗಿನ್ ಕಾಲಾವಧಿ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ. -expiredActionMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ಈಗ ಲಾಗಿನ್‌ನೊಂದಿಗೆ ಮುಂದುವರಿಸಿ. -expiredActionTokenNoSessionMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. -expiredActionTokenSessionExistsMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಾರಂಭಿಸಿ. - -missingFirstNameMessage=ದಯವಿಟ್ಟು ಮೊದಲ ಹೆಸರನ್ನು ಸೂಚಿಸಿ. -missingLastNameMessage=ದಯವಿಟ್ಟು ಕೊನೆಯ ಹೆಸರನ್ನು ಸೂಚಿಸಿ. -missingEmailMessage=ದಯವಿಟ್ಟು ಇಮೇಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. -missingUsernameMessage=ದಯವಿಟ್ಟು ಬಳಕೆದಾರಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. -missingPasswordMessage=ದಯವಿಟ್ಟು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. -missingTotpMessage=ದಯವಿಟ್ಟು ದೃ hentic ೀಕರಣ ಕೋಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. -missingTotpDeviceNameMessage=ದಯವಿಟ್ಟು ಸಾಧನದ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. -notMatchPasswordMessage=ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. - -invalidPasswordExistingMessage=ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪಾಸ್‌ವರ್ಡ್ ಅಮಾನ್ಯವಾಗಿದೆ. -invalidPasswordBlacklistedMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕಪ್ಪುಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. -invalidPasswordConfirmMessage=ಪಾಸ್‌ವರ್ಡ್ ದೃ mation ೀಕರಣವು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. -invalidTotpMessage=ಅಮಾನ್ಯ ದೃ hentic ೀಕರಣ ಕೋಡ್. - -usernameExistsMessage=ಬಳಕೆದಾರಹೆಸರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. -emailExistsMessage=ಇಮೇಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. - -federatedIdentityExistsMessage= {0} {1} with ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ. ಖಾತೆಯನ್ನು ಲಿಂಕ್ ಮಾಡಲು ದಯವಿಟ್ಟು ಖಾತೆ ನಿರ್ವಹಣೆಗೆ ಲಾಗಿನ್ ಮಾಡಿ. - -confirmLinkIdpTitle=ಖಾತೆ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ -federatedIdentityConfirmLinkMessage={0} {1} with ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ. ನೀವು ಹೇಗೆ ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಿ? -federatedIdentityConfirmReauthenticateMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು {0 }with ನೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ದೃ hentic ೀಕರಿಸಿ -nestedFirstBrokerFlowMessage={0} ಬಳಕೆದಾರ {1} known ತಿಳಿದಿರುವ ಯಾವುದೇ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಿಲ್ಲ. -confirmLinkIdpReviewProfile=ವಿಮರ್ಶೆ ಪ್ರೊಫೈಲ್ -confirmLinkIdpContinue=ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಖಾತೆಗೆ ಸೇರಿಸಿ - -configureTotpMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನೀವು ಮೊಬೈಲ್ ದೃ hentic ೀಕರಣವನ್ನು ಹೊಂದಿಸಬೇಕಾಗಿದೆ. -updateProfileMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಅನ್ನು ನೀವು ನವೀಕರಿಸಬೇಕಾಗಿದೆ. -updatePasswordMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. -resetPasswordMessage=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. -verifyEmailMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. -linkIdpMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು {0} with ನೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. - -emailSentMessage=ಹೆಚ್ಚಿನ ಸೂಚನೆಗಳೊಂದಿಗೆ ನೀವು ಶೀಘ್ರದಲ್ಲೇ ಇಮೇಲ್ ಸ್ವೀಕರಿಸಬೇಕು. -emailSendErrorMessage= ಇಮೇಲ್ ಕಳುಹಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ, ದಯವಿಟ್ಟು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ. - -accountUpdatedMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ. -accountPasswordUpdatedMessage=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ. - -delegationCompleteHeader=ಲಾಗಿನ್ ಯಶಸ್ವಿಯಾಗಿದೆ -delegationCompleteMessage=ನೀವು ಈ ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ಮುಚ್ಚಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕನ್ಸೋಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಬಹುದು. -delegationFailedHeader=ಲಾಗಿನ್ ವಿಫಲವಾಗಿದೆ -delegationFailedMessage=ನೀವು ಈ ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ಮುಚ್ಚಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕನ್ಸೋಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. - -noAccessMessage=ಪ್ರವೇಶವಿಲ್ಲ - -invalidPasswordMinLengthMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ ಉದ್ದ {0}. -invalidPasswordMinDigitsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ಸಂಖ್ಯಾತ್ಮಕ ಅಂಕೆಗಳನ್ನು ಹೊಂದಿರಬೇಕು. -invalidPasswordMinLowerCaseCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ಲೋವರ್ ಕೇಸ್ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. -invalidPasswordMinUpperCaseCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ದೊಡ್ಡಕ್ಷರ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. -invalidPasswordMinSpecialCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. -invalidPasswordNotUsernameMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಬಳಕೆದಾರಹೆಸರಿಗೆ ಸಮನಾಗಿರಬಾರದು. -invalidPasswordRegexPatternMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ರಿಜೆಕ್ಸ್ ಮಾದರಿ (ಗಳನ್ನು) ಹೊಂದಿಸಲು ವಿಫಲವಾಗಿದೆ. -invalidPasswordHistoryMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕೊನೆಯ {0} ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಗೆ ಸಮನಾಗಿರಬಾರದು. -invalidPasswordGenericMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಪಾಸ್‌ವರ್ಡ್ ನೀತಿಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. - -failedToProcessResponseMessage=ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ವಿಫಲವಾಗಿದೆ -httpsRequiredMessage=HTTPS ಅಗತ್ಯವಿದೆ -realmNotEnabledMessage=ಕ್ಷೇತ್ರವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ -invalidRequestMessage=ಅಮಾನ್ಯ ವಿನಂತಿ -failedLogout=ಲಾಗ್ out ಟ್ ವಿಫಲವಾಗಿದೆ -unknownLoginRequesterMessage=ಅಜ್ಞಾತ ಲಾಗಿನ್ ವಿನಂತಿ -loginRequesterNotEnabledMessage=ಲಾಗಿನ್ ವಿನಂತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ -bearerOnlyMessage=ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಬೇರರ್-ಮಾತ್ರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ -standardFlowDisabledMessage= ಕೊಟ್ಟಿರುವ ಪ್ರತಿಕ್ರಿಯೆ_ ಪ್ರಕಾರದೊಂದಿಗೆ ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕ್ಲೈಂಟ್‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್ಗಾಗಿ ಪ್ರಮಾಣಿತ ಹರಿವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. -implicitFlowDisabledMessage=ಕೊಟ್ಟಿರುವ ಪ್ರತಿಕ್ರಿಯೆ_ ಪ್ರಕಾರದೊಂದಿಗೆ ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕ್ಲೈಂಟ್‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್‌ಗೆ ಸೂಚ್ಯ ಹರಿವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. -invalidRedirectUriMessage=ಅಮಾನ್ಯ ಮರುನಿರ್ದೇಶನ ಯೂರಿ -unsupportedNameIdFormatMessage=ಬೆಂಬಲಿಸದ NameIDFormat -invalidRequesterMessage=ಅಮಾನ್ಯ ವಿನಂತಿ -registrationNotAllowedMessage=ನೋಂದಣಿಯನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ -resetCredentialNotAllowedMessage=ರುಜುವಾತು ಮರುಹೊಂದಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ - -permissionNotApprovedMessage=ಅನುಮತಿಯನ್ನು ಅನುಮೋದಿಸಲಾಗಿಲ್ಲ. -noRelayStateInResponseMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ಯಾವುದೇ ರಿಲೇ ಸ್ಥಿತಿ ಇಲ್ಲ. -insufficientPermissionMessage=ಗುರುತುಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಸಾಕಷ್ಟು ಅನುಮತಿಗಳು ಇಲ್ಲ. -couldNotProceedWithAuthenticationRequestMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ request ೀಕರಣ ವಿನಂತಿಯೊಂದಿಗೆ ಮುಂದುವರಿಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. -couldNotObtainTokenMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಟೋಕನ್ ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. -unexpectedErrorRetrievingTokenMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಟೋಕನ್ ಅನ್ನು ಹಿಂಪಡೆಯುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ.. -unexpectedErrorHandlingResponseMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ. -identityProviderAuthenticationFailedMessage=ದೃ hentic ೀಕರಣ ವಿಫಲವಾಗಿದೆ. ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ದೃ ate ೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. -couldNotSendAuthenticationRequestMessage= ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ request ೀಕರಣ ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಲಾಗಲಿಲ್ಲ. -unexpectedErrorHandlingRequestMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ hentic ೀಕರಣ ವಿನಂತಿಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ. -invalidAccessCodeMessage=ಅಮಾನ್ಯ ಪ್ರವೇಶ ಕೋಡ್. -sessionNotActiveMessage=ಸೆಷನ್ ಸಕ್ರಿಯವಾಗಿಲ್ಲ. -invalidCodeMessage=ದೋಷ ಸಂಭವಿಸಿದೆ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಿ. -identityProviderUnexpectedErrorMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ದೃ ating ೀಕರಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ -identityProviderNotFoundMessage=ಗುರುತಿಸುವಿಕೆಯೊಂದಿಗೆ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗಲಿಲ್ಲ. -identityProviderLinkSuccess=ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ನೀವು ಯಶಸ್ವಿಯಾಗಿ ಪರಿಶೀಲಿಸಿದ್ದೀರಿ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಮೂಲ ಬ್ರೌಸರ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಲಾಗಿನ್‌ನೊಂದಿಗೆ ಮುಂದುವರಿಯಿರಿ. -staleCodeMessage=ಈ ಪುಟವು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ -realmSupportsNoCredentialsMessage= ಕ್ಷೇತ್ರವು ಯಾವುದೇ ರುಜುವಾತು ಪ್ರಕಾರವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. -credentialSetupRequired=ಲಾಗಿನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ, ರುಜುವಾತು ಸೆಟಪ್ ಅಗತ್ಯವಿದೆ. -identityProviderNotUniqueMessage=ಕ್ಷೇತ್ರವು ಅನೇಕ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ದೃ ate ೀಕರಿಸಲು ಯಾವ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಬಳಸಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. -emailVerifiedMessage=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ. -staleEmailVerificationLink= ನೀವು ಕ್ಲಿಕ್ ಮಾಡಿದ ಲಿಂಕ್ ಹಳೆಯ ಹಳೆಯ ಲಿಂಕ್ ಆಗಿದೆ ಮತ್ತು ಅದು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ. ಬಹುಶಃ ನೀವು ಈಗಾಗಲೇ ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದ್ದೀರಿ. -identityProviderAlreadyLinkedMessage={0} by ನಿಂದ ಹಿಂತಿರುಗಿಸಲಾದ ಫೆಡರೇಟೆಡ್ ಗುರುತನ್ನು ಈಗಾಗಲೇ ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರರಿಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ. -confirmAccountLinking=ಗುರುತಿನ ಪೂರೈಕೆದಾರ {1 of ನ ಖಾತೆಯನ್ನು {0 your ನಿಮ್ಮ ಖಾತೆಯೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡುವುದನ್ನು ಖಚಿತಪಡಿಸಿ. -confirmEmailAddressVerification=ಇ-ಮೇಲ್ ವಿಳಾಸದ ಸಿಂಧುತ್ವವನ್ನು ದೃ irm ೀಕರಿಸಿ {0}. -confirmExecutionOfActions=ಈ ಕೆಳಗಿನ ಕ್ರಿಯೆಯನ್ನು (ಗಳನ್ನು) ಮಾಡಿ - -locale_ca=Catal\u00E0 -locale_de=Deutsch -locale_eng=English -locale_es=Espa\u00F1ol -locale_fra=Fran\u00E7ais -locale_it=Italiano -locale_ja=\u65E5\u672C\u8A9E -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polish -locale_pt_BR=Portugu\u00EAs (Brasil) -locale_pt-BR=Portugu\u00EAs (Brasil) -locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 -locale_lt=Lietuvi\u0173 -locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 -locale_sk=Sloven\u010Dina -locale_sv=Svenska -locale_ara=Arabic -locale_tam=தமிழ் -locale_kan=ಕನ್ನಡ -locale_hin=हिंदी - -backToApplication=& laquo; ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ -missingParameterMessage=ಕಾಣೆಯಾದ ನಿಯತಾಂಕಗಳು \: {0} -clientNotFoundMessage=ಗ್ರಾಹಕ ಕಂಡುಬಂದಿಲ್ಲ. -clientDisabledMessage=ಗ್ರಾಹಕನನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. -invalidParameterMessage=ಅಮಾನ್ಯ ನಿಯತಾಂಕ \: {0} -alreadyLoggedIn= ನೀವು ಈಗಾಗಲೇ ಲಾಗ್ ಇನ್ ಆಗಿದ್ದೀರಿ. -differentUserAuthenticated=ಈ ಅಧಿವೇಶನದಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ವಿಭಿನ್ನ ಬಳಕೆದಾರ '' {0} '' ಎಂದು ದೃ ated ೀಕರಿಸಲ್ಪಟ್ಟಿದ್ದೀರಿ. ದಯವಿಟ್ಟು ಮೊದಲು ಲಾಗ್ out ಟ್ ಮಾಡಿ. -brokerLinkingSessionExpired=ವಿನಂತಿಸಿದ ಬ್ರೋಕರ್ ಖಾತೆ ಲಿಂಕ್, ಆದರೆ ಪ್ರಸ್ತುತ ಸೆಷನ್ ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ. -proceedWithAction=& raquo; ಮುಂದುವರಿಯಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ - -requiredAction.CONFIGURE_TOTP= OTP ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ -requiredAction.terms_and_conditions=ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು -requiredAction.UPDATE_PASSWORD=ಪಾಸ್‌ವರ್ಡ್ ನವೀಕರಿಸಿ -requiredAction.UPDATE_PROFILE=ಪ್ರೊಫೈಲ್ ನವೀಕರಿಸಿ -requiredAction.VERIFY_EMAIL=ಇಮೇಲ್ ಪರಿಶೀಲಿಸಿ - -doX509Login=ನಿಮ್ಮನ್ನು as ಆಗಿ ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗುತ್ತದೆ: -clientCertificate=X509 ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರ \: -noCertificate=[ಪ್ರಮಾಣಪತ್ರವಿಲ್ಲ] - - -pageNotFound=ಪುಟ ಬಳಕೆದಾರಹೆಸರು -internalServerError=ಆಂತರಿಕ ಸರ್ವರ್ ದೋಷ ಸಂಭವಿಸಿದೆ - -console-username=ಬಳಕೆದಾರಹೆಸರು: -console-password=ಪಾಸ್‌ವರ್ಡ್: -console-otp= ಒನ್ ಟೈಮ್ ಪಾಸ್‌ವರ್ಡ್: -console-new-password=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್: -console-confirm-password=ಪಾಸ್ವರ್ಡ್ ದೃ irm ೀಕರಿಸಿ: -console-update-password=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ನ ನವೀಕರಣದ ಅಗತ್ಯವಿದೆ. -console-verify-email=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. ಪರಿಶೀಲನಾ ಕೋಡ್ ಹೊಂದಿರುವ {0 to ಗೆ ನಾವು ಇಮೇಲ್ ಕಳುಹಿಸಿದ್ದೇವೆ. ದಯವಿಟ್ಟು ಈ ಕೋಡ್ ಅನ್ನು ಕೆಳಗಿನ ಇನ್ಪುಟ್ಗೆ ನಮೂದಿಸಿ. -console-email-code=ಇಮೇಲ್ ಕೋಡ್: -console-accept-terms=ನಿಯಮಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತೀರಾ? [y / n]: -console-accept=y - -# Openshift messages -openshift.scope.user_info=ಬಳಕೆದಾರ ಮಾಹಿತಿ -openshift.scope.user_check-access=ಬಳಕೆದಾರ ಪ್ರವೇಶ ಮಾಹಿತಿ -openshift.scope.user_full=ಪೂರ್ಣ ಪ್ರವೇಶ -openshift.scope.list-projects=ಯೋಜನೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ - -# SAML authentication -saml.post-form.title=ದೃ hentic ೀಕರಣ ಮರುನಿರ್ದೇಶನ -saml.post-form.message=ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ, ದಯವಿಟ್ಟು ಕಾಯಿರಿ. -saml.post-form.js-disabled=ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಾವು ಬಲವಾಗಿ ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. ಮುಂದುವರಿಸಲು ಕೆಳಗಿನ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ. - -#authenticators -otp-display-name=ದೃ hentic ೀಕರಣ ಅಪ್ಲಿಕೇಶನ್ -otp-help-text=ದೃ hentic ೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಪರಿಶೀಲನೆ ಕೋಡ್ ನಮೂದಿಸಿ. -password-display-name=ಪಾಸ್ವರ್ಡ್ -password-help-text=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಿ. -auth-username-form-display-name=ಬಳಕೆದಾರಹೆಸರು -auth-username-form-help-text=ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿ -auth-username-password-form-display-name=ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ -auth-username-password-form-help-text=ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಿ. - -# WebAuthn -webauthn-display-name=ಭದ್ರತಾ ಕೀ -webauthn-help-text=ಲಾಗ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ. -webauthn-passwordless-display-name=ಭದ್ರತಾ ಕೀ -webauthn-passwordless-help-text=ಪಾಸ್‌ವರ್ಡ್ ರಹಿತ ಲಾಗ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ. -webauthn-login-title=ಭದ್ರತಾ ಕೀ ಲಾಗಿನ್ -webauthn-registration-title=ಭದ್ರತಾ ಕೀ ನೋಂದಣಿ -webauthn-available-authenticators= ಲಭ್ಯವಿರುವ ದೃ hentic ೀಕರಣಕಾರರು - -# WebAuthn Error -webauthn-error-title=ಭದ್ರತಾ ಕೀ ದೋಷ -webauthn-error-registration= ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ನೋಂದಾಯಿಸಲು ವಿಫಲವಾಗಿದೆ. -webauthn-error-api-get=ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ate ೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ. -webauthn-error-different-user=ಮೊದಲ ದೃ hentic ೀಕೃತ ಬಳಕೆದಾರನು ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ated ೀಕರಿಸಲ್ಪಟ್ಟವನಲ್ಲ. -webauthn-error-auth-verification=ಭದ್ರತಾ ಕೀ ದೃ hentic ೀಕರಣ ಫಲಿತಾಂಶವು ಅಮಾನ್ಯವಾಗಿದೆ. -webauthn-error-register-verification=ಭದ್ರತಾ ಕೀ ನೋಂದಣಿ ಫಲಿತಾಂಶ ಅಮಾನ್ಯವಾಗಿದೆ. -webauthn-error-user-not-found=ಅಜ್ಞಾತ ಬಳಕೆದಾರರನ್ನು ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ated ೀಕರಿಸಲಾಗಿದೆ. - -identity-provider-redirector=ಮತ್ತೊಂದು ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಿ \ No newline at end of file diff --git a/keycloak/theme/base/login/messages/messages_tam.properties b/keycloak/theme/base/login/messages/messages_tam.properties deleted file mode 100644 index 526688b0..00000000 --- a/keycloak/theme/base/login/messages/messages_tam.properties +++ /dev/null @@ -1,375 +0,0 @@ -# encoding: utf-8 -doLogIn=உள்நுழைக -doRegister=பதிவு -doCancel=ரத்துசெய் -doSubmit=சமர்ப்பி -doBack=பின் -doYes=ஆம் -doNo=இல்லை -doContinue=தொடரவும் -doIgnore=புறக்கணிக்கவும் -doAccept=ஏற்றுக்கொள் -doDecline=சரிவு -doForgotPassword=கடவுச்சொல் மறந்துவிட்டதா? -doClickHere=இங்கே கிளிக் செய்க -doImpersonate=ஆள்மாறாட்டம் -doTryAgain=மீண்டும் முயற்சிக்கவும் -doTryAnotherWay=வேறு வழியில் முயற்சிக்கவும் -kerberosNotConfigured=கெர்பரோஸ் கட்டமைக்கப்படவில்லை -kerberosNotConfiguredTitle=கெர்பரோஸ் கட்டமைக்கப்படவில்லை -bypassKerberosDetail=ஒன்று நீங்கள் கெர்பரோஸால் உள்நுழைந்திருக்கவில்லை அல்லது உங்கள் உலாவி கெர்பரோஸ் உள்நுழைவுக்கு அமைக்கப்படவில்லை. பிற வழிகளில் உள்நுழைவதைத் தொடரவும் என்பதைக் கிளிக் செய்க -kerberosNotSetUp=கெர்பரோஸ் அமைக்கப்படவில்லை. நீங்கள் உள்நுழைய முடியாது.. -registerTitle=பதிவு -loginTitle={0} to இல் உள்நுழைக -loginTitleHtml={0} -impersonateTitle={0} ஆள்மாறாட்டம் பயனர் -impersonateTitleHtml= {0} ஆள்மாறாட்டம் பயனர் -realmChoice=சாம்ராஜ்யம் -unknownUser=தெரியாத பயனர் -loginTotpTitle=மொபைல் அங்கீகார அமைப்பு -loginProfileTitle=கணக்குத் தகவலைப் புதுப்பிக்கவும் -loginTimeout=உங்கள் உள்நுழைவு முயற்சி முடிந்தது. உள்நுழைவு தொடக்கத்திலிருந்தே தொடங்கும். -oauthGrantTitle={0} to க்கு அணுகலை வழங்குக -oauthGrantTitleHtml={0} -errorTitle=மன்னிக்கவும் ... -errorTitleHtml=நாங்கள் மன்னிக்கவும் ... -emailVerifyTitle=மின்னஞ்சல் சரிபார்ப்பு -emailForgotTitle=உங்கள் கடவுச்சொல்லை மறந்துவிட்டீர்களா? -updatePasswordTitle=கடவுச்சொல்லைப் புதுப்பிக்கவும் -codeSuccessTitle=வெற்றிக் குறியீடு -codeErrorTitle=பிழை குறியீடு \: {0} -displayUnsupported=கோரப்பட்ட காட்சி வகை ஆதரிக்கப்படவில்லை -browserRequired=உள்நுழைய உலாவி தேவை -browserContinue=உள்நுழைவை முடிக்க உலாவி தேவை -browserContinuePrompt=உலாவியைத் திறந்து உள்நுழைவைத் தொடரவா? [y / n]: -browserContinueAnswer=y - - -termsTitle=விதிமுறைகள் மற்றும் நிபந்தனைகள் -termsText=

வரையறுக்க வேண்டிய விதிமுறைகள் மற்றும் நிபந்தனைகள் -termsPlainText=வரையறுக்க வேண்டிய விதிமுறைகள் மற்றும் நிபந்தனைகள். - -recaptchaFailed=தவறான Recaptcha -recaptchaNotConfigured=Recaptcha தேவை, ஆனால் உள்ளமைக்கப்படவில்லை -consentDenied=ஒப்புதல் மறுக்கப்பட்டது. - -noAccount=புதிய பயனரா? -username=பயனர்பெயர் -usernameOrEmail=பயனர்பெயர் அல்லது மின்னஞ்சல் -firstName=முதல் பெயர் -givenName=கொடுக்கப்பட்ட பெயர் -fullName=முழு பெயர் -lastName=கடைசி பெயர் -familyName=குடும்ப பெயர் -email=மின்னஞ்சல் -password=கடவுச்சொல் -passwordConfirm=கடவுச்சொல்லை உறுதிப்படுத்தவும் -passwordNew=புதிய கடவுச்சொல் -passwordNewConfirm=புதிய கடவுச்சொல் உறுதிப்படுத்தல் -rememberMe=என்னை நினைவில் வையுங்கள் -authenticatorCode=ஒரு முறை குறியீடு -address=முகவரி -street=தெரு -locality=நகரம் அல்லது இடம் -region=மாநிலம், மாகாணம் அல்லது பிராந்தியம் -postal_code=ஜிப் அல்லது அஞ்சல் குறியீடு -country=நாடு -emailVerified=மின்னஞ்சல் சரிபார்க்கப்பட்டது -gssDelegationCredential=ஜிஎஸ்எஸ் பிரதிநிதிகள் நற்சான்றிதழ் - -profileScopeConsentText=பயனர் சுயவிவரம் -emailScopeConsentText=மின்னஞ்சல் முகவரி -addressScopeConsentText=முகவரி -phoneScopeConsentText=தொலைபேசி எண் -offlineAccessScopeConsentText=ஆஃப்லைன் அணுகல் -samlRoleListScopeConsentText=எனது பாத்திரங்கள் -rolesScopeConsentText=பயனர் பாத்திரங்கள் - -restartLoginTooltip=உள்நுழைவை மறுதொடக்கம் செய்யுங்கள் - -loginTotpIntro=இந்த கணக்கை அணுக நீங்கள் ஒரு முறை கடவுச்சொல் ஜெனரேட்டரை அமைக்க வேண்டும் -loginTotpStep1=உங்கள் மொபைலில் பின்வரும் பயன்பாடுகளில் ஒன்றை நிறுவவும்: -loginTotpStep2=பயன்பாட்டைத் திறந்து பார்கோடு ஸ்கேன் செய்யுங்கள்: -loginTotpStep3=பயன்பாடு வழங்கிய ஒரு முறை குறியீட்டை உள்ளிட்டு, அமைப்பை முடிக்க சமர்ப்பி என்பதைக் கிளிக் செய்க. -loginTotpStep3DeviceName=உங்கள் OTP சாதனங்களை நிர்வகிக்க உதவும் சாதன பெயரை வழங்கவும். -loginTotpManualStep2=பயன்பாட்டைத் திறந்து விசையை உள்ளிடவும்: -loginTotpManualStep3=பயன்பாடு அவற்றை அமைக்க அனுமதித்தால் பின்வரும் உள்ளமைவு மதிப்புகளைப் பயன்படுத்தவும்: -loginTotpUnableToScan=ஸ்கேன் செய்ய முடியவில்லையா? -loginTotpScanBarcode=பார்கோடு ஸ்கேன் செய்யவா? -loginCredential=நற்சான்றிதழ் -loginOtpOneTime=ஒரு முறை குறியீடு -loginTotpType=வகை -loginTotpAlgorithm=அல்காரிதம் -loginTotpDigits=இலக்கங்கள் -loginTotpInterval=இடைவெளி -loginTotpCounter=எதிர் -loginTotpDeviceName=சாதனத்தின் பெயர் - -loginTotp.totp=நேரத்தை அடிப்படையாகக் கொண்டது -loginTotp.hotp=எதிர் அடிப்படையிலான - -loginChooseAuthenticator=உள்நுழைவு முறையைத் தேர்ந்தெடுக்கவும் - -oauthGrantRequest=இந்த அணுகல் சலுகைகளை வழங்குகிறீர்களா? -inResource=இல் - -emailVerifyInstruction1=உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வழிமுறைகளுடன் ஒரு மின்னஞ்சல் உங்களுக்கு அனுப்பப்பட்டுள்ளது. -emailVerifyInstruction2=உங்கள் மின்னஞ்சலில் சரிபார்ப்புக் குறியீட்டைப் பெறவில்லையா? -emailVerifyInstruction3=மின்னஞ்சலை மீண்டும் அனுப்ப. - -emailLinkIdpTitle=இணைப்பு {0} -emailLinkIdp1=உங்கள் {2} கணக்குடன் {0} கணக்கு {1 link ஐ இணைப்பதற்கான வழிமுறைகளைக் கொண்ட மின்னஞ்சல் உங்களுக்கு அனுப்பப்பட்டுள்ளது. -emailLinkIdp2=உங்கள் மின்னஞ்சலில் சரிபார்ப்புக் குறியீட்டைப் பெறவில்லையா? -emailLinkIdp3=மின்னஞ்சலை மீண்டும் அனுப்ப. -emailLinkIdp4=நீங்கள் ஏற்கனவே வெவ்வேறு உலாவியில் மின்னஞ்சலை சரிபார்த்திருந்தால் -emailLinkIdp5=தொடர. - -backToLogin=& laquo; உள்நுழைவுக்குத் திரும்பு - -emailInstruction=உங்கள் பயனர்பெயர் அல்லது மின்னஞ்சல் முகவரியை உள்ளிடுக, புதிய கடவுச்சொல்லை எவ்வாறு உருவாக்குவது என்பது குறித்த வழிமுறைகளை நாங்கள் உங்களுக்கு அனுப்புவோம். - -copyCodeInstruction=தயவுசெய்து இந்த குறியீட்டை நகலெடுத்து உங்கள் பயன்பாட்டில் ஒட்டவும்: - -pageExpiredTitle=பக்கம் காலாவதியானது -pageExpiredMsg1=உள்நுழைவு செயல்முறையை மறுதொடக்கம் செய்ய -pageExpiredMsg2=உள்நுழைவு செயல்முறையைத் தொடர - -personalInfo=தனிப்பட்ட தகவல்: -role_admin=நிர்வாகம் -role_realm-admin=சாம்ராஜ்ய நிர்வாகம் -role_create-realm=சாம்ராஜ்யத்தை உருவாக்கு -role_create-client=கிளையண்டை உருவாக்கவும் -role_view-realm=சாம்ராஜ்யத்தைக் காண்க -role_view-users=பயனர்களைக் காண்க -role_view-applications=பயன்பாடுகளைக் காண்க -role_view-clients=வாடிக்கையாளர்களைக் காண்க -role_view-events=நிகழ்வுகளைக் காண்க -role_view-identity-providers=அடையாள வழங்குநர்களைக் காண்க -role_manage-realm=சாம்ராஜ்யத்தை நிர்வகிக்கவும் -role_manage-users=பயனர்களை நிர்வகிக்கவும் -role_manage-applications=பயன்பாடுகளை நிர்வகிக்கவும் -role_manage-identity-providers=அடையாள வழங்குநர்களை நிர்வகிக்கவும் -role_manage-clients=வாடிக்கையாளர்களை நிர்வகிக்கவும் -role_manage-events=நிகழ்வுகளை நிர்வகிக்கவும் -role_view-profile=சுயவிவரத்தைக் காண்க -role_manage-account=கணக்கை நிர்வகிக்கவும் -role_manage-account-links=கணக்கை நிர்வகிக்கவும் -role_read-token=டோக்கனைப் படியுங்கள் -role_offline-access=ஆஃப்லைன் அணுகல் -client_account=கணக்கு -client_account-console=கணக்கு பணியகம் -client_security-admin-console=பாதுகாப்பு நிர்வாக கன்சோல் -client_admin-cli=நிர்வாகம் CLI -client_realm-management=சாம்ராஜ்ய மேலாண்மை -client_broker=தரகர் - -requiredFields=தேவையான புலங்கள் - -invalidUserMessage=தவறான பயனர்பெயர் அல்லது கடவுச்சொல். -invalidUsernameMessage=தவறான பயனர்பெயர். -invalidUsernameOrEmailMessage=தவறான பயனர்பெயர் அல்லது மின்னஞ்சல். -invalidPasswordMessage=தவறான கடவுச்சொல். -invalidEmailMessage=தவறான மின்னஞ்சல் முகவரி. -accountDisabledMessage=கணக்கு முடக்கப்பட்டுள்ளது, உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளுங்கள். -accountTemporarilyDisabledMessage=கணக்கு தற்காலிகமாக முடக்கப்பட்டுள்ளது; உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளவும் அல்லது பின்னர் மீண்டும் முயற்சிக்கவும். -expiredCodeMessage=உள்நுழைவு நேரம் முடிந்தது. மீண்டும் உள்நுழைக. -expiredActionMessage=செயல் காலாவதியானது. இப்போது உள்நுழைவுடன் தொடரவும். -expiredActionTokenNoSessionMessage=செயல் காலாவதியானது. -expiredActionTokenSessionExistsMessage=செயல் காலாவதியானது. மீண்டும் தொடங்கவும். - -missingFirstNameMessage=தயவுசெய்து முதல் பெயரைக் குறிப்பிடவும். -missingLastNameMessage=தயவுசெய்து கடைசி பெயரைக் குறிப்பிடவும். -missingEmailMessage=தயவுசெய்து மின்னஞ்சலைக் குறிப்பிடவும். -missingUsernameMessage=தயவுசெய்து பயனர்பெயரைக் குறிப்பிடவும். -missingPasswordMessage=தயவுசெய்து கடவுச்சொல்லைக் குறிப்பிடவும். -missingTotpMessage=அங்கீகாரக் குறியீட்டைக் குறிப்பிடவும். -missingTotpDeviceNameMessage=சாதனத்தின் பெயரைக் குறிப்பிடவும். -notMatchPasswordMessage=கடவுச்சொற்கள் பொருந்தவில்லை. - -invalidPasswordExistingMessage=ஏற்கனவே உள்ள கடவுச்சொல் தவறானது. -invalidPasswordBlacklistedMessage=தவறான கடவுச்சொல்: கடவுச்சொல் தடுப்புப்பட்டியலில் உள்ளது. -invalidPasswordConfirmMessage=கடவுச்சொல் உறுதிப்படுத்தல் பொருந்தவில்லை. -invalidTotpMessage=தவறான அங்கீகார குறியீடு. - -usernameExistsMessage=பயனர்பெயர் ஏற்கனவே உள்ளது. -emailExistsMessage=மின்னஞ்சல் ஏற்கனவே உள்ளது. - -federatedIdentityExistsMessage= {0} {1} with உடன் பயனர் ஏற்கனவே உள்ளது. கணக்கை இணைக்க கணக்கு நிர்வாகத்தில் உள்நுழைக. - -confirmLinkIdpTitle=கணக்கு ஏற்கனவே உள்ளது -federatedIdentityConfirmLinkMessage={0} {1} with உடன் பயனர் ஏற்கனவே உள்ளது. நீங்கள் எவ்வாறு தொடர விரும்புகிறீர்கள்? -federatedIdentityConfirmReauthenticateMessage=உங்கள் கணக்கை உடன் இணைக்க அங்கீகரிக்கவும்{0} -nestedFirstBrokerFlowMessage=known {0} பயனர் {1} known எந்தவொரு அறியப்பட்ட பயனருடனும் இணைக்கப்படவில்லை. -confirmLinkIdpReviewProfile=மதிப்பாய்வு சுயவிவரம் -confirmLinkIdpContinue=இருக்கும் கணக்கில் சேர்க்கவும் - -configureTotpMessage=உங்கள் கணக்கைச் செயல்படுத்த மொபைல் அங்கீகாரத்தை அமைக்க வேண்டும். -updateProfileMessage=உங்கள் கணக்கைச் செயல்படுத்த உங்கள் பயனர் சுயவிவரத்தைப் புதுப்பிக்க வேண்டும். -updatePasswordMessage=உங்கள் கணக்கை செயல்படுத்த உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். -resetPasswordMessage=உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். -verifyEmailMessage=உங்கள் கணக்கைச் செயல்படுத்த உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வேண்டும். -linkIdpMessage=உங்கள் கணக்கை {0 with உடன் இணைக்க உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வேண்டும். - -emailSentMessage=மேலதிக வழிமுறைகளுடன் விரைவில் ஒரு மின்னஞ்சலைப் பெற வேண்டும். -emailSendErrorMessage=மின்னஞ்சல் அனுப்புவதில் தோல்வி, தயவுசெய்து பின்னர் மீண்டும் முயற்சிக்கவும். - -accountUpdatedMessage=உங்கள் கணக்கு புதுப்பிக்கப்பட்டது. -accountPasswordUpdatedMessage=உங்கள் கடவுச்சொல் புதுப்பிக்கப்பட்டது. - -delegationCompleteHeader=உள்நுழைவு வெற்றிகரமாக -delegationCompleteMessage=நீங்கள் இந்த உலாவி சாளரத்தை மூடிவிட்டு உங்கள் கன்சோல் பயன்பாட்டிற்குச் செல்லலாம். -delegationFailedHeader=உள்நுழைவு தோல்வியுற்றது -delegationFailedMessage=நீங்கள் இந்த உலாவி சாளரத்தை மூடிவிட்டு உங்கள் கன்சோல் பயன்பாட்டிற்குச் சென்று மீண்டும் உள்நுழைய முயற்சி செய்யலாம். - -noAccessMessage=அணுகல் இல்லை - -invalidPasswordMinLengthMessage=தவறான கடவுச்சொல்: குறைந்தபட்ச நீளம் {0}. -invalidPasswordMinDigitsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} எண் இலக்கங்களைக் கொண்டிருக்க வேண்டும். -invalidPasswordMinLowerCaseCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} சிறிய எழுத்துக்குறிகளைக் கொண்டிருக்க வேண்டும். -invalidPasswordMinUpperCaseCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} மேல் வழக்கு எழுத்துக்களைக் கொண்டிருக்க வேண்டும். -invalidPasswordMinSpecialCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} சிறப்பு எழுத்துக்களைக் கொண்டிருக்க வேண்டும். -invalidPasswordNotUsernameMessage=தவறான கடவுச்சொல்: பயனர்பெயருக்கு சமமாக இருக்கக்கூடாது. -invalidPasswordRegexPatternMessage=தவறான கடவுச்சொல்: ரீஜெக்ஸ் முறை (களை) பொருத்தத் தவறிவிட்டது. -invalidPasswordHistoryMessage=தவறான கடவுச்சொல்: கடைசி {0} கடவுச்சொற்களுக்கு சமமாக இருக்கக்கூடாது. -invalidPasswordGenericMessage=தவறான கடவுச்சொல்: புதிய கடவுச்சொல் கடவுச்சொல் கொள்கைகளுடன் பொருந்தவில்லை. - -failedToProcessResponseMessage=பதிலைச் செயலாக்குவதில் தோல்வி -httpsRequiredMessage=HTTPS தேவை -realmNotEnabledMessage=சாம்ராஜ்யம் இயக்கப்படவில்லை -invalidRequestMessage=தவறான கோரிக்கை -failedLogout=வெளியேறுதல் தோல்வியுற்றது -unknownLoginRequesterMessage=அறியப்படாத உள்நுழைவு கோரிக்கை -loginRequesterNotEnabledMessage=உள்நுழைவு கோரிக்கை இயக்கப்படவில்லை -bearerOnlyMessage=உலாவி உள்நுழைவைத் தொடங்க தாங்கி மட்டும் பயன்பாடுகள் அனுமதிக்கப்படவில்லை -standardFlowDisabledMessage=கொடுக்கப்பட்ட மறுமொழி_வகை மூலம் உலாவி உள்நுழைவைத் தொடங்க கிளையன்ட் அனுமதிக்கப்படுவதில்லை. வாடிக்கையாளருக்கு நிலையான ஓட்டம் முடக்கப்பட்டுள்ளது. -implicitFlowDisabledMessage=கொடுக்கப்பட்ட மறுமொழி_வகை மூலம் உலாவி உள்நுழைவைத் தொடங்க கிளையன்ட் அனுமதிக்கப்படுவதில்லை. கிளையண்ட்டுக்கு மறைமுக ஓட்டம் முடக்கப்பட்டுள்ளது. -invalidRedirectUriMessage=தவறான வழிமாற்று யூரி -unsupportedNameIdFormatMessage=ஆதரிக்கப்படாத NameIDFormat -invalidRequesterMessage=தவறான கோரிக்கை -registrationNotAllowedMessage=பதிவு செய்ய அனுமதிக்கப்படவில்லை -resetCredentialNotAllowedMessage=நற்சான்றிதழை மீட்டமைக்க அனுமதிக்கப்படவில்லை - -permissionNotApprovedMessage=அனுமதி அங்கீகரிக்கப்படவில்லை. -noRelayStateInResponseMessage=அடையாள வழங்குநரின் பதிலில் ரிலே நிலை இல்லை. -insufficientPermissionMessage=அடையாளங்களை இணைக்க போதுமான அனுமதி இல்லை. -couldNotProceedWithAuthenticationRequestMessage=அடையாள வழங்குநரிடம் அங்கீகார கோரிக்கையுடன் தொடர முடியவில்லை. -couldNotObtainTokenMessage=அடையாள வழங்குநரிடமிருந்து டோக்கனைப் பெற முடியவில்லை. -unexpectedErrorRetrievingTokenMessage=அடையாள வழங்குநரிடமிருந்து டோக்கனை மீட்டெடுக்கும்போது எதிர்பாராத பிழை. -unexpectedErrorHandlingResponseMessage=அடையாள வழங்குநரிடமிருந்து பதிலைக் கையாளும் போது எதிர்பாராத பிழை. -identityProviderAuthenticationFailedMessage=அங்கீகாரம் தோல்வியுற்றது. அடையாள வழங்குநருடன் அங்கீகரிக்க முடியவில்லை. -couldNotSendAuthenticationRequestMessage= அடையாள வழங்குநருக்கு அங்கீகார கோரிக்கையை அனுப்ப முடியவில்லை. -unexpectedErrorHandlingRequestMessage=அடையாள வழங்குநரிடம் அங்கீகார கோரிக்கையை கையாளும் போது எதிர்பாராத பிழை. -invalidAccessCodeMessage=தவறான அணுகல் குறியீடு. -sessionNotActiveMessage=அமர்வு செயலில் இல்லை. -invalidCodeMessage=பிழை ஏற்பட்டது, தயவுசெய்து உங்கள் விண்ணப்பத்தின் மூலம் மீண்டும் உள்நுழைக. -identityProviderUnexpectedErrorMessage=அடையாள வழங்குநருடன் அங்கீகரிக்கும் போது எதிர்பாராத பிழை -identityProviderNotFoundMessage=அடையாளங்காட்டியுடன் அடையாள வழங்குநரைக் கண்டுபிடிக்க முடியவில்லை. -identityProviderLinkSuccess=உங்கள் மின்னஞ்சலை வெற்றிகரமாக சரிபார்க்கிறீர்கள். தயவுசெய்து உங்கள் அசல் உலாவிக்குச் சென்று உள்நுழைவுடன் தொடரவும். -staleCodeMessage=இந்த பக்கம் இனி செல்லுபடியாகாது, தயவுசெய்து உங்கள் பயன்பாட்டிற்குச் சென்று மீண்டும் உள்நுழைக -realmSupportsNoCredentialsMessage=எந்த நற்சான்றிதழ் வகையையும் சாம்ராஜ்யம் ஆதரிக்கவில்லை. -credentialSetupRequired=உள்நுழைய முடியாது, நற்சான்றிதழ் அமைப்பு தேவை. -identityProviderNotUniqueMessage=பல அடையாள வழங்குநர்களை மெய்ப்பாடு ஆதரிக்கிறது. எந்த அடையாள வழங்குநரை அங்கீகரிக்க பயன்படுத்த வேண்டும் என்பதை தீர்மானிக்க முடியவில்லை. -emailVerifiedMessage=உங்கள் மின்னஞ்சல் முகவரி சரிபார்க்கப்பட்டது. -staleEmailVerificationLink=நீங்கள் கிளிக் செய்த இணைப்பு பழைய பழமையான இணைப்பு மற்றும் இனி செல்லுபடியாகாது. உங்கள் மின்னஞ்சலை நீங்கள் ஏற்கனவே சரிபார்த்திருக்கலாம். -identityProviderAlreadyLinkedMessage={0} by வழங்கிய கூட்டாட்சி அடையாளம் ஏற்கனவே மற்றொரு பயனருடன் இணைக்கப்பட்டுள்ளது. -confirmAccountLinking=அடையாள வழங்குநரின் {1} account கணக்கை your 1 your உங்கள் கணக்கோடு இணைப்பதை உறுதிப்படுத்தவும். -confirmEmailAddressVerification=மின்னஞ்சல் முகவரியின் செல்லுபடியை உறுதிப்படுத்தவும் {0}. -confirmExecutionOfActions=பின்வரும் செயலை (களை) செய்யவும் - -locale_ca=Catal\u00E0 -locale_de=Deutsch -locale_eng=English -locale_es=Espa\u00F1ol -locale_fra=Fran\u00E7ais -locale_it=Italiano -locale_ja=\u65E5\u672C\u8A9E -locale_nl=Nederlands -locale_no=Norsk -locale_pl=Polish -locale_pt_BR=Portugu\u00EAs (Brasil) -locale_pt-BR=Portugu\u00EAs (Brasil) -locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 -locale_lt=Lietuvi\u0173 -locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 -locale_sk=Sloven\u010Dina -locale_sv=Svenska -locale_ara=Arabic -locale_tam=தமிழ் -locale_kan=ಕನ್ನಡ -locale_hin=हिंदी - -backToApplication=& laquo; பயன்பாட்டிற்குத் திரும்பு -missingParameterMessage=காணாமல் போன அளவுருக்கள் \: {0} -clientNotFoundMessage=வாடிக்கையாளர் கிடைக்கவில்லை. -clientDisabledMessage=வாடிக்கையாளர் முடக்கப்பட்டுள்ளது. -invalidParameterMessage=தவறான அளவுரு \: {0} -alreadyLoggedIn= நீங்கள் ஏற்கனவே உள்நுழைந்துள்ளீர்கள். -differentUserAuthenticated=இந்த அமர்வில் நீங்கள் ஏற்கனவே வெவ்வேறு பயனராக '' {0} '' அங்கீகரிக்கப்பட்டுள்ளீர்கள். முதலில் வெளியேறவும். -brokerLinkingSessionExpired=கோரப்பட்ட தரகர் கணக்கு இணைத்தல், ஆனால் தற்போதைய அமர்வு இனி செல்லுபடியாகாது. -proceedWithAction=& raquo; தொடர இங்கே கிளிக் செய்க - -requiredAction.CONFIGURE_TOTP= OTP ஐ உள்ளமைக்கவும் -requiredAction.terms_and_conditions=விதிமுறைகள் மற்றும் நிபந்தனைகள் -requiredAction.UPDATE_PASSWORD=கடவுச்சொல்லைப் புதுப்பிக்கவும் -requiredAction.UPDATE_PROFILE=சுயவிவரத்தைப் புதுப்பிக்கவும் -requiredAction.VERIFY_EMAIL=மின்னஞ்சலை சரிபார்க்கவும் - -doX509Login=நீங்கள் as ஆக உள்நுழைவீர்கள்: -clientCertificate=X509 கிளையன்ட் சான்றிதழ் \: -noCertificate=[சான்றிதழ் இல்லை] - - -pageNotFound=பக்கம் காணப்படவில்லை -internalServerError=உள் சேவையக பிழை ஏற்பட்டது - -console-username=பயனர்பெயர்: -console-password=கடவுச்சொல்: -console-otp=ஒரு முறை கடவுச்சொல்: -console-new-password=புதிய கடவுச்சொல்: -console-confirm-password=கடவுச்சொல்லை உறுதிப்படுத்தவும்: -console-update-password=உங்கள் கடவுச்சொல்லின் புதுப்பிப்பு தேவை. -console-verify-email=உங்கள் மின்னஞ்சல் முகவரியை நீங்கள் சரிபார்க்க வேண்டும். சரிபார்ப்புக் குறியீட்டைக் கொண்ட மின்னஞ்சலை {0 to க்கு அனுப்பினோம். கீழே உள்ளீட்டில் இந்த குறியீட்டை உள்ளிடவும். -console-email-code=மின்னஞ்சல் குறியீடு: -console-accept-terms=விதிமுறைகளை ஏற்கவா? [y/n]: -console-accept=y - -# Openshift messages -openshift.scope.user_info=பயனர் தகவல் -openshift.scope.user_check-access=பயனர் அணுகல் தகவல் -openshift.scope.user_full=முழு அணுகல் -openshift.scope.list-projects=திட்டங்களை பட்டியலிடுங்கள் - -# SAML authentication -saml.post-form.title=அங்கீகார வழிமாற்று -saml.post-form.message=திருப்பி விடுகிறது, தயவுசெய்து காத்திருங்கள். -saml.post-form.js-disabled=ஜாவாஸ்கிரிப்ட் முடக்கப்பட்டுள்ளது. அதை இயக்க நாங்கள் கடுமையாக பரிந்துரைக்கிறோம். தொடர கீழே உள்ள பொத்தானைக் கிளிக் செய்க. - -#authenticators -otp-display-name=அங்கீகார பயன்பாடு -otp-help-text=அங்கீகார பயன்பாட்டிலிருந்து சரிபார்ப்புக் குறியீட்டை உள்ளிடவும். -password-display-name=கடவுச்சொல் -password-help-text=உங்கள் கடவுச்சொல்லை உள்ளிட்டு உள்நுழைக. -auth-username-form-display-name=பயனர்பெயர் -auth-username-form-help-text=உங்கள் பயனர்பெயரை உள்ளிட்டு உள்நுழையத் தொடங்குங்கள் -auth-username-password-form-display-name=பயனர்பெயர் மற்றும் கடவுச்சொல் -auth-username-password-form-help-text=உங்கள் பயனர்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிட்டு உள்நுழைக. - -# WebAuthn -webauthn-display-name=பாதுகாப்பு விசை -webauthn-help-text=உள்நுழைய உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்தவும். -webauthn-passwordless-display-name=பாதுகாப்பு விசை -webauthn-passwordless-help-text=கடவுச்சொல் இல்லாத உள்நுழைவுக்கு உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்தவும். -webauthn-login-title=பாதுகாப்பு விசை உள்நுழைவு -webauthn-registration-title=பாதுகாப்பு விசை பதிவு -webauthn-available-authenticators=கிடைக்கக்கூடிய அங்கீகாரங்கள் - -# WebAuthn Error -webauthn-error-title=பாதுகாப்பு விசை பிழை -webauthn-error-registration=உங்கள் பாதுகாப்பு விசையை பதிவு செய்வதில் தோல்வி. -webauthn-error-api-get=பாதுகாப்பு விசையால் அங்கீகரிக்க முடியவில்லை. -webauthn-error-different-user=முதல் அங்கீகரிக்கப்பட்ட பயனர் பாதுகாப்பு விசையால் அங்கீகரிக்கப்பட்டவர் அல்ல. -webauthn-error-auth-verification=பாதுகாப்பு விசை அங்கீகார முடிவு தவறானது. -webauthn-error-register-verification=பாதுகாப்பு விசை பதிவு முடிவு தவறானது. -webauthn-error-user-not-found=பாதுகாப்பு விசையால் அங்கீகரிக்கப்பட்ட அறியப்படாத பயனர். - -identity-provider-redirector=மற்றொரு அடையாள வழங்குநருடன் இணைக்கவும் \ No newline at end of file diff --git a/keycloak/theme/base/login/register.ftl b/keycloak/theme/base/login/register.ftl deleted file mode 100644 index f0c13009..00000000 --- a/keycloak/theme/base/login/register.ftl +++ /dev/null @@ -1,150 +0,0 @@ -<#import "template.ftl" as layout> -<@layout.registrationLayout; section> - <#if section = "header"> - ${msg("registerTitle")} - <#elseif section = "form"> -

- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - <#if !realm.registrationEmailAsUsername> -
-
- -
-
- -
-
- - - <#if passwordRequired??> -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- - - <#if recaptchaRequired??> -
-
-
-
-
- - - - - - diff --git a/keycloak/theme/base/login/theme.properties b/keycloak/theme/base/login/theme.properties deleted file mode 100644 index 1f7d337b..00000000 --- a/keycloak/theme/base/login/theme.properties +++ /dev/null @@ -1 +0,0 @@ -locales=ca,de,eng,es,fra,it,ja,lt,nl,no,pl,pt-BR,ru,sk,sv,tr,zh-CN,ara,hin,kan,tam diff --git a/keycloak/theme/mosip/account/resources/css/account.css b/keycloak/theme/mosip/account/resources/css/account.css deleted file mode 100644 index 3878e43a..00000000 --- a/keycloak/theme/mosip/account/resources/css/account.css +++ /dev/null @@ -1,277 +0,0 @@ -html { - height: 100%; -} - -body { - background-color: #F9F9F9; - margin: 0; - padding: 0; - height: 100%; -} - -header .navbar { - margin-bottom: 0; - min-height: inherit; -} - -.header .container { - position: relative; -} - -.navbar-title { - background-image: url('../img/logo.png'); - height: 25px; - background-repeat: no-repeat; - width: 123px; - margin: 3px 10px 5px; - text-indent: -99999px; -} - -.navbar-pf .navbar-utility { - right: 20px; - top: -34px; - font-size: 12px; -} - -.navbar-pf .navbar-utility > li > a { - color: #fff !important; - padding-bottom: 12px; - padding-top: 11px; - border-left: medium none; -} - -.container { - height: 100%; -} - -.content-area { - background-color: #fff; - border-color: #CECECE; - border-style: solid; - border-width: 0 1px; - height: 100%; - padding: 0 30px; -} - -.margin-bottom { - margin-bottom: 10px; -} - -/* Sidebar */ - -.bs-sidebar { - background-color: #f9f9f9; - padding-top: 44px; - padding-right: 0; - padding-left: 0; - z-index: 20; -} -.bs-sidebar ul { - list-style: none; - padding-left: 12px; -} - -.bs-sidebar ul li { - margin-bottom: 0.5em; - margin-left: -1em; -} -.bs-sidebar ul li a { - font-size: 14px; - padding-left: 25px; - color: #4d5258; - line-height: 28px; - display: block; - border-width: 1px 0 1px 1px; - border-style: solid; - border-color: #f9f9f9; -} -.bs-sidebar ul li a:hover, -.bs-sidebar ul li a:focus { - text-decoration: none; - color: #777777; - border-right: 2px solid #aaa; -} -.bs-sidebar ul li.active a { - background-color: #c7e5f0; - border-color: #56bae0; - font-weight: bold; - background-image: url(../img/icon-sidebar-active.png); - background-repeat: no-repeat; - background-position: right center; -} - -.bs-sidebar ul li.active a:hover { - border-right: none; -} - - -.content-area h2 { - font-family: "Open Sans", sans-serif; - font-weight: 100; - font-size: 24px; - margin-bottom: 25px; - margin-top: 25px; -} - -.subtitle { - text-align: right; - margin-top: 30px; - color: #909090; -} - -.required { - color: #CB2915; -} - - -.alert { - margin-top: 30px; - margin-bottom: 0; -} - -.feedback-aligner .alert { - background-position: 1.27273em center; - background-repeat: no-repeat; - border-radius: 2px; - border-width: 1px; - color: #4D5258; - display: inline-block; - font-size: 1.1em; - line-height: 1.4em; - margin: 0; - padding: 0.909091em 3.63636em; - position: relative; - text-align: left; -} -.alert.alert-success { - background-color: #E4F1E1; - border-color: #4B9E39; -} -.alert.alert-error { - background-color: #F8E7E7; - border-color: #B91415; -} -.alert.alert-warning { - background-color: #FEF1E9; - border-color: #F17528; -} -.alert.alert-info { - background-color: #E4F3FA; - border-color: #5994B2; -} - -.form-horizontal { - border-top: 1px solid #E9E8E8; - padding-top: 23px; -} - -.form-horizontal .control-label { - color: #909090; - line-height: 1.4em; - padding-top: 5px; - position: relative; - text-align: right; - width: 100%; -} - -.form-group { - position: relative; -} - -.control-label + .required { - position: absolute; - right: -2px; - top: 0; -} - -#kc-form-buttons { - text-align: right; - margin-top: 10px; -} - -#kc-form-buttons .btn-primary { - float: right; - margin-left: 8px; -} - -/* Authenticator page */ - -ol { - padding-left: 40px; -} - -ol li { - font-size: 13px; - margin-bottom: 10px; - position: relative; -} - -ol li img { - margin-top: 15px; - margin-bottom: 5px; - border: 1px solid #eee; -} - -hr + .form-horizontal { - border: none; - padding-top: 0; -} - -.kc-dropdown{ - position: relative; -} -.kc-dropdown > a{ - display:block; - padding: 11px 10px 12px; - line-height: 12px; - font-size: 12px; - color: #fff !important; - text-decoration: none; -} -.kc-dropdown > a::after{ - content: "\2c5"; - margin-left: 4px; -} -.kc-dropdown:hover > a{ - background-color: rgba(0,0,0,0.2); -} -.kc-dropdown ul li a{ - padding: 1px 11px; - font-size: 12px; - color: #000 !important; - border: 1px solid #fff; - text-decoration: none; - display:block; - line-height: 20px; -} -.kc-dropdown ul li a:hover{ - color: #4d5258; - background-color: #d4edfa; - border-color: #b3d3e7; -} -.kc-dropdown ul{ - position: absolute; - z-index: 2000; - list-style:none; - display:none; - padding: 5px 0px; - margin: 0px; - background-color: #fff !important; - border: 1px solid #b6b6b6; - border-radius: 1px; - -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); - background-clip: padding-box; - min-width: 100px; -} -.kc-dropdown:hover ul{ - display:block; -} - - -#kc-totp-secret-key { - border: 1px solid #eee; - font-size: 16px; - padding: 10px; - margin: 50px 0; -} \ No newline at end of file diff --git a/keycloak/theme/mosip/account/resources/img/favicon.ico b/keycloak/theme/mosip/account/resources/img/favicon.ico deleted file mode 100644 index 48188dedaaed851f39dcf435d3bde8e0dce753fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)fnm`u?`7EDZT zU@#004h&*6qDT$3A+1HARIlxQw0Gw~Fqjw}@R{Bx@00f{&kMVRw3Fz%ejPaV7yTE* zFfRVFfUfKNfww^PA5AYAhLPDOVn^Z@5Uq#8eCj{K^1uiH-%|sWPn^Z+JGia8uj_ip zZxduPnQOLfKTs5fNvoYXN5LH&;bDG;iSDDcboJ0G%bfWzLoC#S@B5!sRW1H1Fh4(U zCK8G8Z0;+U=JG_6dl~BMWvaKyqfNox4TZyDm6NS?PHPsf>mtkY)(X?p)044SEDSKQ zTqY7~#q8?iUXO?Cx}0ybNC=-sv&nO(ja);Zsw$GSbv}_!r^h5o;>pJq=GIKi)BxwS zIvtLQX_~mM%k55!1cRzr-Bk6$hn3YADC!p(StiU*sn$CQ!;;MuB0(GzS&ySNfE*{22sK>&cF zD98ZA!^0c7Ty9jX6mNc<6~^+fSY63eDwURie5q8*?sVcL zaG@TFvod&`Xu~G?W|nd+MRD*L$@~KG!V|6H_V+Po~-c73FxkIEGZ*N=jIun2<7~^e}_RcjiI`=UK zVCeYHtShu&-DyXLq!)E7W+-p1Ilz&A@c@&Xh}=}&gd+kA7qR+CC9YLuAP#kTzP zOOabP0l+XkKxNbyD diff --git a/keycloak/theme/mosip/account/resources/img/keycloak-logo.png b/keycloak/theme/mosip/account/resources/img/keycloak-logo.png deleted file mode 100644 index 955574855d493cc248e112b7d755a95d641613f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5213 zcmaJ_cT^MW_6;H;A{{Ig2}nmmLJ1`F5)_dlMWjee0)&ua5}GuDDd;Q004kV_lCCd z$(VTZ2%kN3@~%d%Rh$f$DTuoi6M`ef!=8i&XrKrVXrM06-U)4twnus0Z$~Qw0JK6F z)4P7-%Op7um(2nhVUq`w07 z_5c4+9PaOEGQ}AEU%mfGOg8l*qNR<|WP%$Bd2(=$SAVA>!nH_fdkTSMN+7uY)kPy` z0);?!CJ=#ICQzW5zC99y|GgppCqiEzu8SvA?D0snuC|Kc2?q#+LBX|UWWZoeZ72)@ zg+L$(Sr|k|3!$T^2!(*XZGXTKaqpPi9>N&b(&ER87tvY^vYr8#_^(_0gHjoST ztL*JvNpJBQXJ6LA>U7*SmPZn6gY;%Trx`1aEF{92?&t|>aF*R{Lt@SgJ>)!V1r*rV zk!imrQ*pdX5}8OI6Ox70rM3C2eKY9ZOCcZs`qG`k`c^$GbCZ_eDAAa~Q(z<|dG_Ty zb^s^9kJj2LufQBClr7P8K}4)?!{+w1&14>G{=#Q~$0_9xRY(ID##RI-@^ z|8ACygkMTDWj5lc#T@!u`Sacx@>ax_W*55PN8yj^fUQr%>;eA}c(ZUZ*Iv_iYR5Gs+>vonoU5g>S zt*a{%H2>WA*AoGiWUIxOLvo21kL|k9M2}o%nmW1F)KnDMoGn2jFTd~)5_u!kCEsl2 zio?s}MChGmXF#t+0d@yjLw`EVVfj=l^U4G7O7KvsLv4y*gUp$;m-ox*oFm)5G^Mal zxAd*c*JpTT?MG)YtIH(4^7aJO?loTZzwyOzJIDaKRy^ zS$c^q9uPm{Wv6!^DT$^W3*R)*3i*UnXVnC?PGP#TOq{6)k7LcP4e(cN@=Jn`DJHa* zdHtqZY>h_;Se#PH4=LjO7wwq!CwMyg;|7E;^Ad5zw4kqlxAmpHF9u1HFdKehR{D8l zYDMQr$JR9zhs4`(sHxplfd?Ch0IweJ^|+7igz$Me_?_OgTB}uC3ki6;^mBDKtE#dx zx%FGj<*a>^`eHUYsA|BG*LK)BF+{rl;kBcLPR9pcSQ*^TcL46eJAsj<46zR1Zunm85wPJ0O|mSWx#K=Z~fbFhw(o|XkxXhG-s{^JC-faw;d8h&mW z4!eE%;~Ul zt&Qm@7&N8x;vQ>n9SG84`L6Gq3BN5~Zq?dr_W-jo+5UY7A1y+!Kdq^_MNqApzxW)!@(|3!{l%?*?%D$P2r zTb*lYK6*4}{d1d`MTb>QKZriJr+j!m!KG`k)Vmt!wYBA@(&t!fYApec;!pK`uc)LTd*Qw963t}nZelff%`S@Mto_3F3IF0Ww zJHkj}^6=6(ru&on4*trI+GFlTc|p_V$+oV)TvJMoEG@&l>Ie6nmqf*UGX<^R+ksZk zVy_kC4QbwkpB{*S1brVs<|d_dPPWECLCLoU?i|GxUobP$u!wUpP!P)Q|KiB9md0%foVFL z=5MU}@U*P&^qP!r-Tf|Y)Gvm}eBtfZ)YGev&c{7q3{oySRg~aX7Hk!IzsMmOXkT4^ z*?VX(YRSVs0+(Fy=IwA)P!}Xk=?RsSK4Xl|mosJGf$i{$oxgSdzV_05#ck1s1|A~G z)Rm>$#*zUj*Ijdley1;dL!_^_PQ|%pB%WhP!*8N|rEIU1PgbT(4SiM?O~kT`OM^ z_x6kKjPmWMeau%S?{;hRNx4Bca&{#{lNpYFbPzRDRLw1AksFbfWsz!Q<3cgBGMNdi zd%aj6Ncx;iLDbZ|e0>w5ko0X*&uvDV*huzF@4B1kcM(;ZZm`OEHQNk_#;KHQCE2`I zdI%#^MpFhBCWxaz)U5NNK|d@>=Qx$QZ8y69KR7dXRh ztt(wuxTzJ4we`;2xEnAXTieRw96cZ9@pj`9qt$NvwXQ*-9j~vUF?=~DPi@wIZr2Un ztY81Y@>+CH$kj+EvVAkMlFf3X%AymZ+4}Ue$f6GltX?Om)S1bLp+y+f#>x#Clvqa^ zm4Tr5lU_witBrWsPP8OGEswoEGm{maHcpk?Syy1M|ACS~To3MTZmbob(Ntx6yr7As z*VdBVHhr7jmZB0`K<$P-d2D@`u$*~|O1(Uxsw%3j_8dCLF`!*)my{N;5eD7+pnRqi zY5ztXd#l=Ot>9) zvKAYjsZ7f`kSg2<4*A|Q%z~sKkHxR`vS?_~xv}--W(Fip1N%joRuGKChfHjF7xgdY zpV6wPX*e1R7FGVx)8jeY64^2TQ9L+uWZ3eYO}7H?mRo=Ij))<`wnn&B@i~|on|Ivn zA|HDX6=Ewo>e}vle{<7J$yu%rGm2EXI=kLfjlZ#6tq@Z%ptn}6d2EfNX}LyH?*?y{ zXr;BT@1}3Et|ckdyN1I1s?>IX{j-%n_b27qNI9dvWaghRqjy$wcR; zjFJ?MhE!I{&T!$+@|QxFB^@MT^M z?QH+b+v$I4*as4v1U}~5{W@2ou(;{X<}1R0lVicDvbPWDJW&`e)lma=Uu(@8=S&e> z%TyeW#qjJAI2#+CH&evW+sk#*$?ojjw-_fBz(?~V!$00X?o+DYNwk@G_Y~UFlOwhN zq<@gDY!T+v6cv<7buJ28DlmDDS&u*D?6irpkA3|U@+GR-dy)zZo?7^ZMi(Zg z^+GbR4fQe6#kXkb6t43j*oUFlA#)?2h9>U_B^c-MMO#~Zj}d90wsGs}8cETGy)g)X z!h#-fxray;(&J6|9IC-H+2LNya`t@TBkO~QR6X@YX&*UQ<5K=S?K_HX>9%I)`g?GK z{;gN}Y-85<27QKK7kRh0eo`;sPk0qGx^t)CtqwNkX|K}yo9{{bdf(fsJx8|>v^d9M z$!Ud(J5C{16;@ru8K_nsZU)`vU>R3W<5(DZRb@6m{ayTPo+`pY_7JH zO;=Y7f9}n>GMqQ{hB=~^v2(udkE4USVacL$HI^$(sxNDP6-~xOPGuP7@M#bAobdy-KSQ4a|9$Omt{j}fk zdsx^BIu7MrQPz^cZ*Jq&jqJQEFbg+)4j%I^(4C>sTT*u(q2Bchlj|&Gjwlr<08MAOBVKg2JRYd6*G6v^$#WAObvg#?#6cSOLPwJ z$n4pePe>=E>yYL_&H^vw-O}-T;*R~1?Dp4(LSJMyPwWB;VOVZS+~l#x3}roKz_CBt z>g(u~>G(BUE?39pyIWIxHQQapj}W3Hnp)?Ra^YZge{py&_#-95&fm5}vN(O_^YHgR z+oOnSktZ)5cJN$lRV~U#GLd1+2FD%ZK)u?yGryj^OrtETe?3xtRg$g0FYDYiAPeh2 z(bUqEZXbafk0s;cW7oc1V(72JqKt^d%dmD3iTGD zAHA30s^{QkpFW*%Rh^^VQZ*Fqw2}8h>4WG)?@_^OY1ubC0ZT3#S*Cqe-5CK~0 zfP36pr50(3z(?fbsyWwse7O*nXxintDlAGF1<297V-yU0e6hrWrHrp=B(q0yS9o*( z?HA{9lL4Mo*G;R)?WI@iKg15=Y55J(u6s2WRg2&4iFRygUd4BvXJC}NubF!Yt>LME zSU#g(&8|8_hu#RdB~0ojp?!_>mszTX7Lw}^#a_KCT@xr3yf5Gx!Et$#WrY3mZGs5D zaka|MWJmQlJr1b1TNW6RSDHSBU-N48ZZHgrG|=|(SKnYw)YGG<*o54VjX1^@s65&Kat00004b3#c}2nYxW zd-{Qv*}8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H154lN1K~!jg?OJ_sRYjKnoxbZ*79oIc%s&gnj<`!%5jl$MrWVy!&@Agd*w^Pt8U z(|6;>jo}~AwiQ1SR7(VF?OgmYLjyo($8mo11KYOZCjvEBIdbI4K>*%siT*v|TWf#5 zVZ(;1A0eX^7ZB&H>@j1;H~^l(k25p?1eH>Aex!_6TtGNYD|+?nbsvBU>2-$+i}7)f zD{;JIA=(lnv!O0UJ9=p`qBoC4^18JCl`*PrLQU>2?K(6!yjb!D9f5FM8_)uz%3)ILQRv`4WUn%D~yVjXDsK zrzcIC6!@tp(u)5ZjkfCb>(}q<)~(xsk2>$7}gdzPC@)aPU9|B3jl~lV+aIXSZkxfV2}g=1P~F?+RrH{C|C{P65p7> zRRacGNfc)RfDb?X@M#gbMQa^YN_~FKHP@8v*s)^)K&5~HN?EJ*DPwFVAVJ^vl~Ss~ zahxZNFc`CaiRwB4uSKKL z2g=LKPdC>t6bfZ!WMo!)o|j2P-iZ_66)#@A*lWsHUS9ql1Kmla{;8*)`dK>dp_wz6 zlgI#TS&Xs!Q!9J*>eZ!1#l-{i^Yf7`yKNBfpNt~YQ8<2aF95*gd`6Fg_Q=oA$F-eu zFsdDc88~j@p7TECqAsTs^78U=(M6q*pP!Eo9XhmW*REY=PP=xQIXUezb8~arY}>ZY z6_M+-)&s?Iarz)X_@MG}0KX=p-j3sRF~&>-03y2Daa5s*6dK>Z)LMHLv+WO{x8pcH znfVH>bGjiR%y`E5dc5!JB5Q4T zBKd8~*hNJ}s}!AG=uvI()V^=xv~HboRAt~|S8#70H|p%+4i;@l@L?3_?ietD6%Cm% z)}(ld2qHKK#uz0cNb44rm6iWOB*|l&5Ydq9ufKjj09b3op67#^AwtKDv7ZB|wwCuO zrK&{auu|&tTW`JfjEKyXc&Aif-|$*eer|62Wg-X|qany8y6u?W=Qgb8}N?Y7xQG zLp7+b_s}sjhRczt%Gf+X$+Riw|@Lt_hsob*Q=A zp2$u2g38K|#)z2bhzQIgfQ%V9aNzc|apffCFq@l)4lUW;oB{w~=+L1H-g;}(!%C@( z9Y+;y+O+8wX8u%b^AE;o0MOal*)v{w<&`1K{Evz8SOT8-_~Vafg+d_)fR!s(c2-Kg z2dH2m;M~ztf9Y7VWJxE0<}%xaSeknO{r4|U($}n6Gx^B3-@Ylr!vHwG)^7mlo1{Pa z3unlV?56T5xD>`efso!*qDm5DwE;Q%%5Kg0P5Li zpUo~VE`Gq;_`p~MH4QN=IamV#=+?bEB5-hJCSyc9NlJh*2FW)6oa3XbD>$No4v2f> zTV5t&jW&U^){e(YK!Ap1U1eou31D9#B3R3?*8FavhuWTQXaFcHE3;lKb_W2HXwYZ&?AhIubfwfIM#n{y<7`gIfwgkZ zMU{wTD-~aX)22U=Z2ZO=87cXACIVHFEWtY7b37q($Yy)x_j%^t-H4*%RBG9kj{70O*d^8kzFEy z=Xu?&<$eG`1mE3u+ig!L*i!jIMljguB$CAB$&>Yj2@}pFzpb^I%oY&g=J<`#Ln*NZ zIgV;}9_8ibr-_`@uBB99C;&YE_~VyrZLR_UA{7SnaDa|_UJP1$gUidyFHM&tA`}P& zAtK6JyEah^0Q2U}o3}EZSM~1I>lcX$AR3M0SbY@hzCH;>3VnO_z{nh6VjiOpd5C#2 z#9~ostznG;^Vzu$%hDLar_f)YMj#SKWz50qh71_XaeiwdiGD~>MY6zk?nuUB5y?pM9zTBk ztETPG2Wc)50YD^O<4(=+eg9C4?MXgO`|1#H>r@z{2>{4ZvqPZ}TjAwOIdB{o$x}u; zm~ApnrgUblJx3Snz<~qXqR}XPKc4vHWw;p8H5UVV7UEN6;addpk;%jt#)U~3%`%@8 zgg4iO@$UYE*mtN3yKEZ(z@1q!s05oa2GK|aT5D+Sqq@2pMASxW4LUcV_uRR2=kJ-Jl3eK$!bqGZ=H3R)Y8$YvrMl{U5q zw{PFx=nN|&I=T9-wWTE`CB-ErCB;J%rKF_fpPE-IzZdUML45GfeASbU~_hM_H+?AzOUi?K78N* z4Ks&~F;miXpdyi2%7|L~nT`|Ba~;>+2d(w_l-(?v z*+CGA)X&m7d7P79tz5P0u}~hgx{P_##rH7?Oixzbh!B%FQ#mq3qZVrdTb;j8HeBXoCev2Uj0F3cx;;grk?|T5? z<+X4B_X`)!Uu`YF>UlAU2r1>R3xz`QdxNBa|Ea8OXqTOx1prDph+2ygN3!sZAq>f4 zgxyT!lf}PhpM;xshCc2Ylx{zah+z~L6=Anzp(vp7`|R%^+&F(pH_$upywhg*@ZpC= z)G6;AmKc4>Yh!Wb0!AWtj z(QCZA7gn7>#4vhwD!?Aef+Ao>*6DLLx#m`tF(xV^a9uZ@kD2*KW6T+A4YbxHw`|$+ zD*#YLgsTfe*#xg z1fCG;qcH%$1}_U=*PcQ+9L7gSPhvw&7>X3k#oZwQZnU-NSa%esPMyN(a2Vn68Pqp4 z_@_^wZiqyqu}CBuYiNi@Z@A$GBO(WwdB0L>Z@Tga4I1>V=Xv9Nt@l}DKR4FiBO+w2 zt)w__HGpansTPrHrBsztYM)Z-OW&A%O^s=-KBBeWXN-S9YhB%xPDFC&op(N9tt}S8 za-~$2<2bcMbV?xWT-O~uY0{)yrcRye#pRg;%s9Zz)k-;^6VV=PxytjrYTx&(Mf3>( zc<{joSJu|nc61!)caGzJqLd0N<$kSwe;W~vtEi~x9SVgGheDxzfKEG(TODxS&9i6E z-rRJI05E&@?AMLa|LwYNH4&V#W5?#iV%`B?`_)RRgXz4_J@?#ao)^2<^J06o)`wZ- zkw(j{w6wInwYCaC$7J1^{La{R$D(RxzVrgfX~hM=InR<3_rlWvw4D2YKls+#hkvAuR$M?d`?_@9x^>$D zy!s<$&u@Kf__u`?pAtKc^DuzO50qPDjCt}0wr#~vg#QKf*2_tH span { - -moz-box-sizing: border-box; - color: white; - float: left; - font-size: 11px; - font-family: "Open Sans", sans-serif; - font-weight: bold; - height: 24px; - line-height: 24px; - padding: 0; - width: 50%; -} -.onoffswitch .onoffswitch-switch { - background-image: linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -o-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -moz-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -webkit-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -ms-linear-gradient(top, #fafafa 0%, #ededed 100%); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, 0, #ededed)); - border: 1px solid #aaa; - border-radius: 2px; - bottom: 0; - margin: 0; - position: absolute; - right: 39px; - top: 0; - transition: all 0.3s ease-in 0s; - -webkit-transition: all 0.3s ease-in 0s; - width: 23px; -} -.onoffswitch .onoffswitch-inner .onoffswitch-active { - background-image: linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -o-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -moz-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -webkit-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -ms-linear-gradient(top, #00a9ec 0%, #009bd3 100%); - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #00a9ec), color-stop(1, 0, #009bd3)); - color: #FFFFFF; - padding-left: 10px; -} -.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-active, -.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-inactive { - background-image: none; - background-color: #e5e5e5; - color: #9d9fa1; -} -.onoffswitch .onoffswitch-inner .onoffswitch-inactive { - background: linear-gradient(#fefefe, #e8e8e8) repeat scroll 0 0 transparent; - color: #4d5258; - padding-right: 10px; - text-align: right; -} -.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { - margin-left: 0; -} -.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { - right: 0; -} - - -/*********** Select 2 ***********/ - -.select2-container { - width: 100%; -} - -.select2-container-multi .select2-choices .select2-search-field { - height: 26px; -} - -/*********** html select ********/ -.overflow-select { - overflow: auto; -} - - -/*********** New Menu ***********/ - - -.sidebar-pf-left{ - background: #292e34; -} - -.sidebar-pf .nav-pills > li a i, .sidebar-pf .nav-pills > li a span{ - color: #72767b; - display: inline-block; - margin-right: 10px; -} -.sidebar-pf .nav-pills > li > a{ - color: #dbdada; - padding: 0px 20px 0 30px!important; - line-height: 30px; - border-left-width: 12px; - border-left-style: solid; - border-left-color: #292e34; - margin-left: -6px; -} - -.sidebar-pf .nav-pills > li > a:hover{ - background: #393f44; - border-color:#292e34; - border-left-color: #393f44; - color: #fff; -} - -.sidebar-pf .nav-pills > li > a:after{ - display: none!important; -} - - -.sidebar-pf .nav-pills > li.active > a { - color: #fff; - background: #393f44!important; - border-bottom: 1px solid #000!important; - border-top: 1px solid #000!important; - border-left-color: #39a5dc!important; -} - -.sidebar-pf .nav-pills > li.active a i, .sidebar-pf .nav-pills > li.active a span{ - color: #39a5dc; -} - -/*********** Realm selector ***********/ - -.realm-selector{ - color: #fff; - margin: 0 -20px; - position: relative; -} - -.realm-dropmenu{ - display: none; - cursor: pointer; - position: absolute; - top: 60px; - left: 0; - right: 0; - z-index: 999; - background: #fff; -} - -.realm-selector:hover .realm-dropmenu{ - display: block; -} - -.realm-add{ - padding: 10px; -} - -.realm-selector h2{ - font-size: 16px; - line-height: 60px; - padding: 0 20px; - margin: 0; - border-bottom: 1px solid #d5d5d6; -} - -.realm-selector h2 i{ - display: inline-block; - float: right; - line-height: 60px; -} - - -.realm-selector ul{ - padding-left: 0; - margin: 0; - list-style: none; - max-height: 200px; - overflow-y:auto; -} - - -.realm-selector ul li a{ - line-height: 60px; - padding: 0 20px; - border-bottom: 1px solid #d5d5d6; - line-height: 39px; - display: block; - font-size: 14px; -} - - -/*********** Overwrites header defaults ***********/ - -.navbar-pf{ - border-top: none!important; -} - -.navbar-pf .navbar-brand { - padding: 0; - height: 56px; - line-height: 56px; - background-position: center center; - background-image: url('../img/keyclok-logo.png'); - background-size: 148px 30px; - background-repeat: no-repeat; - width: 148px; -} - -.navbar-pf .navbar-utility .dropdown-toggle { - padding: 23px !important; -} - -.clickable { - cursor: pointer; -} - -h1 i { - color: #999999; - font-size: 18px; - margin-left: 10px; -} - -/* Action cell */ -.kc-action-cell { - background-color: #eeeeee; - background-image: linear-gradient(to bottom, #fafafa 0%, #ededed 100%); - background-repeat: repeat-x; - - text-align: center; - vertical-align: middle; - - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - - cursor:pointer; -} - -.kc-action-cell:hover { - background-color: #eeeeee; - background-image: none; -} - -.kc-sorter span { - margin-left: 10px; -} - - -/* Time selector */ - -.time-selector input { - display: inline-block; - width: 120px; - padding-right: 0; - margin-right: 0; -} - -.time-selector select { - display: inline-block; - width: 80px; - margin-left: 0; - padding-left: 0; -} - -.ace_editor { - height: 600px; - width: 100%; -} - -.kc-button-input-file input { - float: left; - width: 73%; -} - -.kc-button-input-file label { - float: left; - margin-left: 2%; - width: 25%; -} - -table.kc-authz-table-expanded { - margin-top: 0px !important; -} - -.no-gutter > [class*='col-'] { - padding-right:0!important; - padding-left:0!important; -} - -.password-conceal { - font-family: 'text-security-disc'; - font-size: 14px; -} - -/* Deactivation styles for user-group membership tree models */ - -div[tree-model] li .deactivate { - color: #4a5053; - opacity: 0.4; -} - -div[tree-model] li .deactivate_selected { - background-color: #dcdcdc; - font-weight: bold; - padding: 1px 5px; -} - -/* search highlighting */ - -div[tree-model] li .highlight { - background-color: #aaddff; -} - -/* Manage credentials */ -table.credentials-table { - margin-top: 0; - margin-bottom: 20px; -} - -table.credentials-table td.kc-action-cell { - vertical-align: middle; -} - -table.credentials-table input[type='text'] { - width: 100%; -} - -td.credential-label-cell { - padding: 5px !important; -} - -td.credential-data-cell { - padding: 0 !important; -} - -td.credential-data-cell a { - margin-left: 5px; - line-height: 2.5em; - cursor: pointer; -} - -td.credential-action-cell { - padding: 0px !important; -} - -td.credential-action-cell div.kc-action-cell { - width: 100%; - height: 36px; - line-height: 34px; -} - -td.credential-action-cell.expanded div.kc-action-cell { - border-bottom: 1px solid #d1d1d1; -} - -table.credential-data-table { - margin-top: 0; -} - -table.credential-data-table tr:first-child td { - border-top: 0; -} - -table.credential-data-table td:first-child { - width: 150px; -} - -table.credential-data-table td.key { - text-align: right; - font-weight: bold; -} - diff --git a/keycloak/theme/mosip/admin/resources/img/favicon.ico b/keycloak/theme/mosip/admin/resources/img/favicon.ico deleted file mode 100644 index 48188dedaaed851f39dcf435d3bde8e0dce753fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 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 akN*dX+`h$pZtd{^0000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/keycloak/theme/mosip/admin/resources/img/select-arrow.png b/keycloak/theme/mosip/admin/resources/img/select-arrow.png deleted file mode 100644 index a865a6fa7324e054cffa6e1878d69438780b20c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1154 zcmbVMTWHfz7>p*_>aXo9GTd$y`I14I@;lVM5JhweKRY3LHQC7fY1b^;WQwQUZl zZ_DPjwq`A+Q}I<~jVEFP6CjoJ%#!7boBlvw?V=p`?Z&9uZobt9Ob)oP#nEs*8W&c;ICuXx!@E2M)bdlwvIE#@G8ws*Pl;dI?8%xx(sU$BXLTpf}aEyknRX9Ex zim)s%ggGwB*G7`bSSXr`29=P4X)D;YTqMb3NA3NLQ&>ArT2 zA9uH-Ywx;_@dpP62I76EH_hHudfZ-m_3_D@=eypgs=j~y@N$1<+s2d9fz493b7t>b zdi$;G;Cc4Oy<=aF_s6}ZOI9R~$+;sl=AP@Cwm_P2^Y!Ofnm`u?`7EDZT zU@#004h&*6qDT$3A+1HARIlxQw0Gw~Fqjw}@R{Bx@00f{&kMVRw3Fz%ejPaV7yTE* zFfRVFfUfKNfww^PA5AYAhLPDOVn^Z@5Uq#8eCj{K^1uiH-%|sWPn^Z+JGia8uj_ip zZxduPnQOLfKTs5fNvoYXN5LH&;bDG;iSDDcboJ0G%bfWzLoC#S@B5!sRW1H1Fh4(U zCK8G8Z0;+U=JG_6dl~BMWvaKyqfNox4TZyDm6NS?PHPsf>mtkY)(X?p)044SEDSKQ zTqY7~#q8?iUXO?Cx}0ybNC=-sv&nO(ja);Zsw$GSbv}_!r^h5o;>pJq=GIKi)BxwS zIvtLQX_~mM%k55!1cRzr-Bk6$hn3YADC!p(StiU*sn$CQ!;;MuB0(GzS&ySNfE*{22sK>&cF zD98ZA!^0c7Ty9jX6mNc<6~^+fSY63eDwURie5q8*?sVcL zaG@TFvod&`Xu~G?W|nd+MRD*L$@~KG!VpbFH`>7=NJimT8HPR1b>!7GRq%%D)H?|Wo% zC@Pq9$n!u*^5*>k`A#3+kZfF(`zJ152&b=J2><{9!0hZbO_;oR8NR%F9kLkE@5Z(} z|9X+Rqj^|(^f2UQ`B&qbstQ}zSHs@7Mx_7%0O*T*Sywa1;J+C|`oj73Q8;qyTvEs3fk{(-JWjQ|4!;N?Hk9Wu}T8~06?E)T~0nO z$|9aN^E2gq`rLgk&kqde>9h9ceYG2J7l(CKD-8eu0DaQs4ti*V_8>1|L40001@p8^a34>6V-IeVqb00000NkvXXu0mjf D@HyfE diff --git a/keycloak/theme/mosip/login/resources/img/feedback-error-sign.png b/keycloak/theme/mosip/login/resources/img/feedback-error-sign.png deleted file mode 100644 index 0dd500445d7249ddd1b1dea7dc79d5e2f75cf223..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 343 zcmV-d0jU0oP)Rb^f-HfiA|a#ZS&BN>m{U!Bf9XBlP=AUsPhep z0;u>nQCxb~G6c;4tOM)aDVebC2LF?__!*$Y%|S5$e;ZcIdR+o#XrlC>L#@3RFZO+y z4ac0_$8S?_3L#)o1cV>wsb|~_2qr}-{Xy0sk1ddFrS2NjYBy!#lv@hhf%T~P1a2ls zg9cR!$Y8{U0euD81vt(&PyxuVl0?xy+oT=qfZ( zU<;qzo;L~X{8Dl*OuQ;g6C?jcvTY4MH)UgY@3N+I%Y&B-aM#Gmz4*K9-@h9B>+j#Q z@1I{-{^;BJ=zrF!cK!}Pr!g=bh|HcT>Z=m}wDHmbyC0nDaV#gVm&uycGotW zpv;r|b9e9Fzj)!!_FHF``Wx|qb*+1{*5LE=)%xG0rlsBtdT?-dwR{mlor@ArQ!T)1>sQ|BRGRy6pUXk5Eq%Jj zt#hDSUl#1`1Hp4rtdp{v4HrVu6{1-oD!M}vd diff --git a/keycloak/theme/mosip/login/resources/img/feedback-success-sign.png b/keycloak/theme/mosip/login/resources/img/feedback-success-sign.png deleted file mode 100644 index 640bd71cab7bdfc7a8adcf28ffaf6db736a1c008..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2comSQK*5Dp-y;YjHK@;M7UB8!3Q zuY)k7lg8`{prB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&3=E9oo-U3d z7QI&|@AYC16lmSQ(|nzi6W2vA0hQiX{shsj9%4*QVx6m7=T11}S0g4pTOrBJ(L2zj zqqUbmAu&;Tnwis)`FE;yFXbH4TM_-V#F%}bS9C7N)nccy^_%s?ydQOE$UA=bQASGdP zUS5*^?Y}eFBd=Y%8?p303zx;a-hVOO%tz8T)jmnDmV3_E#n4nO@i}MX#=5_=rbOm! z*!s=OFZw-8%CQyiuZC^?Jc-4l;#4*gQu&X%Q~loCIB2_ BsrLW? diff --git a/keycloak/theme/mosip/login/resources/img/feedback-warning-arrow-down.png b/keycloak/theme/mosip/login/resources/img/feedback-warning-arrow-down.png deleted file mode 100644 index 6f2d9d2aeb1c1461767988a042aae50492d454bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 513 zcmV+c0{;DpP)pbFH`>7=NJimT8HPR1b>!7GRq%%D)H?|Wo% zC@Pq9$n!u*^5*>k`A#3+kZfF(`zJ152&b=J2><{9!0hZbO_;oR8NR%F9kLkE@5Z(} z|9X+Rqj^|(^f2UQ`B&qbstQ}zSHs@7Mx_7%0O*T*Sywa1;J+C|`oj73Q8;qyTvEs3fk{(-JWjQ|4!;N?Hk9Wu}T8~06?E)T~0nO z$|9aN^E2gq`rLgk&kqde>9h9ceYG2J7l(CKD-8eu0DaQs4ti*V_8>1|L40001@p8^a34>6V-IeVqb00000NkvXXu0mjf D@HyfE diff --git a/keycloak/theme/mosip/login/resources/img/feedback-warning-sign.png b/keycloak/theme/mosip/login/resources/img/feedback-warning-sign.png deleted file mode 100644 index f9392a356fd3b383997c1ef289b48d02be96c351..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 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 diff --git a/keycloak/theme/mosip/login/resources/img/keycloak-logo-text.png b/keycloak/theme/mosip/login/resources/img/keycloak-logo-text.png deleted file mode 100644 index 63f3b9f87deb2dee6172d44fbad7177064245101..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19994 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 diff --git a/keycloak/theme/mosip/login/resources/img/mosiplogo.png b/keycloak/theme/mosip/login/resources/img/mosiplogo.png deleted file mode 100644 index 321ba3df51e313a491639e7d6fd7af1b7488e9b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11347 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 - -  - - - Welcome to ${productNameFull} - - - - - - - - <#if properties.styles?has_content> - <#list properties.styles?split(' ') as style> - - - - - - - - - diff --git a/keycloak/theme/mosip/welcome/resources/admin-console.png b/keycloak/theme/mosip/welcome/resources/admin-console.png deleted file mode 100644 index ac734972ff042a5afcc95ab6e2c0303a22f71b2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 712 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 diff --git a/keycloak/theme/mosip/welcome/resources/bg.png b/keycloak/theme/mosip/welcome/resources/bg.png deleted file mode 100644 index b722a001b320de8a297a800267f24499f017036c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72796 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�uUMdUXaHskh$;TuNe>sE5A1;RU9ye9>rOq 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 D>3@or diff --git a/keycloak/theme/mosip/welcome/resources/css/welcome.css b/keycloak/theme/mosip/welcome/resources/css/welcome.css deleted file mode 100644 index c6a679a2..00000000 --- a/keycloak/theme/mosip/welcome/resources/css/welcome.css +++ /dev/null @@ -1,140 +0,0 @@ -body { - background: #fff url(../bg.png) no-repeat center bottom fixed; - background-size: cover; -} -.welcome-header { - margin-top: 10px; - margin-bottom: 50px; - margin-left: -10px; -} -.welcome-header img { - width: 150px; - margin-bottom: 40px; -} -.welcome-message { - margin-top: 20px; -} -.h-l { - min-height: 370px; - padding: 10px 20px 10px; - overflow: hidden; -} -.h-l h3 { - margin-bottom: 10px; -} -.h-m { - height: 110px; - padding-top: 23px; -} -.card-pf img { - width: 22px; - margin-right: 10px; - vertical-align: bottom; -} -img.doc-img { - width: auto; - height: 22px; -} -.link { - font-size: 16px; - vertical-align: baseline; - margin-left: 5px; -} -h3 { - font-weight: 550; -} -h3 a:link, -h3 a:visited { - color: #333; - font-weight: 550; -} -h3 a:hover, -h3 a:hover .link { - text-decoration: none; - color: #00659c; -} -.h-l h3 a img { - height: 30px; - width: auto; -} - -.description { - margin-top: 30px; -} - -.card-pf { - border-top: 1px solid rgba(3, 3, 3, 0.1); - box-shadow: 0 1px 1px rgba(3, 3, 3, 0.275); -} - -.welcome-form label, -.welcome-form input { - display: block; - width: 100%; -} - -.welcome-form label { - color: #828486; - font-weight: normal; - margin-top: 18px; -} -.welcome-form input { - border: 0; - border-bottom: solid 1px #cbcbcb; -} -.welcome-form input:focus { - border-bottom: solid 1px #5e99c6; - outline-width: 0; -} -.welcome-form button { - margin-top: 10px; -} -.error { - color: #c00; - border-color: #c00; - padding: 5px 10px; -} -.success { - color: #3f9c35; - border-color: #3f9c35; - padding: 5px 10px; -} -.welcome-form + .welcome-primary-link, -.welcome-message + .welcome-primary-link { - display: none; -} - -.footer img { - float: right; - width: 150px; - margin-top: 30px; -} - -@media (max-width: 768px) { - .welcome-header { - margin-top: 10px; - margin-bottom: 20px; - } - .welcome-header img { - margin-bottom: 20px; - } - h3 { - margin-top: 10px; - } - .h-l, - .h-m { - height: auto; - min-height: auto; - padding: 5px 10px; - } - .h-l img { - display: inline; - margin-bottom: auto; - } - .description { - display: none; - } - .footer img { - margin-top: 10px; - } -} diff --git a/keycloak/theme/mosip/welcome/resources/favicon.ico b/keycloak/theme/mosip/welcome/resources/favicon.ico deleted file mode 100644 index 48188dedaaed851f39dcf435d3bde8e0dce753fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmV-(0*w8MP)fnm`u?`7EDZT zU@#004h&*6qDT$3A+1HARIlxQw0Gw~Fqjw}@R{Bx@00f{&kMVRw3Fz%ejPaV7yTE* zFfRVFfUfKNfww^PA5AYAhLPDOVn^Z@5Uq#8eCj{K^1uiH-%|sWPn^Z+JGia8uj_ip zZxduPnQOLfKTs5fNvoYXN5LH&;bDG;iSDDcboJ0G%bfWzLoC#S@B5!sRW1H1Fh4(U zCK8G8Z0;+U=JG_6dl~BMWvaKyqfNox4TZyDm6NS?PHPsf>mtkY)(X?p)044SEDSKQ zTqY7~#q8?iUXO?Cx}0ybNC=-sv&nO(ja);Zsw$GSbv}_!r^h5o;>pJq=GIKi)BxwS zIvtLQX_~mM%k55!1cRzr-Bk6$hn3YADC!p(StiU*sn$CQ!;;MuB0(GzS&ySNfE*{22sK>&cF zD98ZA!^0c7Ty9jX6mNc<6~^+fSY63eDwURie5q8*?sVcL zaG@TFvod&`Xu~G?W|nd+MRD*L$@~KG!V zU*7@jXRvpDKMBFi+_`h-&iOy*4qh0Bv<~z=FHS^dBI55xCJaYwxsZdyHw<@Xy1wTX z!Bi6>3QVTzdtR4_a@d>_Q8E*T6GtEpPaSt+IxyU8wd)2`^*zt*csmn@-KRd`4i3-m zI0I#4J4QrlW8c`=cIKtSlLx&A)2(7AvNk*?q8<^wa6X-b!xbXU%f9E;i0CCYPl>1^ z=40RUSgUoR;TXeA7@C^S!NI`-tETIFUPUn+W1pE$HZoy2U>}Z%4&bXfhI4RO5nB<> zik5wOy#cM)a1-s|a63f#bk6^Ba99(fn68F2fJWdRf`h~RV^JU_sZs+gRh0BSk4?}w zw;0tJTD661JV^4~_e*8mYq4HGa|wKhwIa%=BQV*zwOaxou3RZI({7sae7{sgkm!fd z@MaG3-m$ZHC`>+RH>;JMy~CO%&pASbxYce}AB7-DWeaHp(D<8!X`{=F&fpOYZ6io! z3!L)R3-O=3F@!J|JMG5&%gqtR}ASm(u8uF{#(jZb)CFFUEjPNp9==rC;;?*Xw5$^Sm`9 zZghX#ZdQYxy~8*JPz{zqun7%pLn>QnKmceA@!Vn%R!;?7=rOpw=*;LOl`Zi1pKzuM734Vioe9HrJmitCzeJM#x!K6~OL-97b7Mc>bOnqOSHu`I+Hnx5R-MC4{R|hO`*9Gwm{q__PHVjN$~qb5?WOTY?_k|_*kzauE}QC zTi-8jgV{_8EMS5@0%P7_N~6E7ji@(-){@J}T+Io4XYWvJK-tH_qtR|w8}yE;TDZTd z-2cwr;Wqlx)kL%N+s&%YN6~`l)#XKJPAklKdi<$uK?IrP* zHPp%!4zd;5XH+I^OPS?4Xr2nT^_-k5%Po-QWtSJ72EFr5x&7qwqEl33Ba9(1`U=!I z2GDLNT5#c5OVM;i`@8xYTMG!XxCYZv zG!+Ol0iv5|hO@MlWnAYVtO`Cn$LUnIkT?8RjWNb+3daP5LmcBzSkBF1Zt}*tyNZc- zWfhD%9+$qL&C{xH^BTKopI76LV=gsK=2YL$aX(^)#uY7|M@BCnz*Y|u|N7h;|M&wv zdBL~z|^7$K{3IY^GfYUX~V!^?#JSn9D&(*{NE>{zY@`(+RdtrZ$|j-X7yU6 zb7${RQZ+d+W)Xx|Y&WY#qpc9it9G-x$afbaWrmA%H4sD)f*U{s29WGs5TJRTb3B6@ z0$F0FHXuk^;xmHzTZ(93p>0jAZV>@gQ(8Q)o^hlpA7LVHtLX8J**Rch%#CPRp|9=B ziw*~tM2HoYrJ$cd;~CVX2`*rcG<`US$7Z7XtZLi#;1|fJr;f!w`unH9Gums$SY(RD zpz=RMge_1ehei&X;xqI;o0LbCn;V0Om@z&kqF?Ymu(=4vnwdN>ALoEic8YB=sd!Fy zclHiV%R!1BD(Eu`LS%VJ>L_T2oIfKlpN;59OfUFIMcmg+n_gaYM#i&_tLHdIn+BMw zCjmJY3^3YVZY|`>5LmnV z*ep*6CdlJczC(gqq}{Co63~#>r093P`szRO8x|jCEouU1O7^Td$w- zxIToBV`J1!M=qBFj3WeK`WZI-n}|N*lmlIzpNAOS(iu=FqTFr{0p@{@?L||ZS z_g&t|RVf^$Eh6Be?^kGieod)J(Rm%hz7zO+H^6n7eB5F>X!KO{Y84DsL`dh6Vg@5g zh&ip2`mqSJ@1&|$`;0kQke@O(R3|~w0Q{=&VDd9?D|JdvorX-heH4tnteY7d|ZF8G?{Va|1Y~$o>B%{j9?inI|6PTA5suDy9 zp6B~#81IK1P+=cU+CgijRirWph8m(jF`-82Q!0M=UJu&MY76I%aBc$6Bp+2&4YMo> zlf0)aj4`%bNGTi`X4Vk*k%z_{sOPUC`}8x=bTd)Ewf3ACZESs#dRNar7-XO#pFK5K zwy{NxV?gf$MF*IRn984$5l}hD9L(T-di7x5M$p$Z6Na1icN`qP@knJ0110dvIzY3v zB#3ZV74P8iB!P0cYc<7YM09IO5Mf!=$-%(^K#=Chn2#HAk!M(}8kJ;T*AgEGhi@ZB z@R@s(A4J~n8fLF+K=d+Dk-b>~F(=J+V=M!bh*xV3s}LLw*3wc>%=Oxmn#=B<1e%pEvZOorT}I| zp~86TJB^j!gb-|iwp}n+99mVboyKw9zg`jihTbun+*5$Jkhxr>!^W^^5v$-f=HM!I zayBMrMtSM`rB|q<%&VpEa(!7;IDdf>T``d??RcZ!qj{}wLz^)p#_IsL{|ss<$&wn-!17ivd0CM}O{JVlnCE=Oy1EI>#lyxsS_-h#kO&+;0Gt}YVgS10&>i43M2VbysT=A^tR zW@diky7Tv5s`DDk+&o4*No7n}VDvrDk-Wo3apyn!kAiKP5Wvh>T$ZcD3h{?{@vDQw qMsV*;Cx9t8PmVjk$-#k$i0J>lYa`8Dax>}x0000{YgYYRA}DiTU|_BWf*=ag;H$GPeEFT6xdR-0S+O-P&3+vx*P2@ znhY;gO1606F6@OjY7=YHTO*5lMV7Jb!r+ZR=*{dD*etRH#+1cS2~x&Z2qXN}wqOA- zb~exX+Mb`DpCEaoA3 z*@CzE10DdMBDZ!@%mk>i1YQcjhuqtMn448u-sj5!)zg`UVxTg#xA_CL0RE!;&a~IS zbIPg++VfW?a4Wn{RTsiX+qsRNPS&UMy9r%{VeekuV`_W`glD0sRt zCs|Hcq{dl$%2Kma%#;>9RoWO?^@Oz&t(LN!rTOmm8XT$8vocev$fu|{A=y2eNb>$} zWIfLNyJ^N?p%^L+c$+`a0-%SH;M@K*mg z`mTmJzu#&p!wG9;%A8P46<_CV{=lyQp2NYi5dc0`@YKfT5)P)_&Iq2O&J>y950bI1 zdCx%xo^j1nYH5m|;XAAq=(QhaeONHGf`O4ahVPvhtZ1p_UlL{gAl$poX0`FjJybBe5ahDtIN7bLox&8!bu z-P*>`Q&b4M|BAb|E9xlMyWCGWO@v&ZF^Ag|L z#n8l}ERpw+`n{*Ko>L~0Q8(%|DG4iEGwL4IR?Y2cKA@(l3Q ztKJd%#UH1a_PJ=>)ohkcgaoFSQnEU^;gNDz$B2GnXE$$fY(6Io{NePf{qxJyV_B}B;3#A1qw>a|PzLNwEUeuHiEBKQ6~Q)%NmP!SEDDt#W3 z##8faitWGUDs7~(9bHe+4>t7Lg8iP(x;#xm<`T0R`v?6$%`$wgb>%qOSjBrlcUNQh zieQ?fu?lT<<-G1K(H6i^T#)wqC*S|U8@vO+&p5!A@!Xy&eV6~2;3@L~*gc@wzvc6y z(np^1m`aK`-_qW>w}GAH9srrIYpMfi=%UbdT6Aw z$?zJkhgMSNLuePK&^|m5sr&i#&L|M|aM0`YNnPjD>3+r;|Mk$rjINXo-dw=!@)qlo z6s_$!vj052^c|_v!`@J-4EXT{M7NV!l{V6{ZJPA}`1;X@+2yTt(NN0Va>?6F^#6t| zeL1oV)B%ig;At}+&LQyI5czM9JduAeDy1f&RAJ!rl<*Q|{{lZoYh&VlUvK~b002ov JPDHLkV1md+96B9F&rJ0RBW7^W%nwOU!7#Kt%4b;`uRaIBNdX+gmJd%@>`{+?fbWCh% zSy}MINAdCTXmnyt&Fj>(bbtQ<3T5o&%a@NIKkn}*q0tHT_4ul)>Ow4*q1D{d(oY%) zk9gYN-od#4_(^zRP%su-6c7-ENlGp*DJjGj5eUSxGThs@ZRO?VFc^%1(AM7JeD5A( z%(#YzhHGnUD=VuQ8>OVCFeL6pTF?*^h!_9U|7U3 zJR{@Pf5?m}1D3J29*^(q?`N!KI3Xh9X+Mb+8TpK%GdMWJ&}Wzv85tQ8657|-7Z&!I z!IQxxBs3I>@@0sgJ$r^gAQ*%0o*o-p+rh!X|G@w2NhDH4M8wF*D5JHuwvLR9Ff3(= zn3`8oQ&XAHRpaC1s-%s%xjBYKj9nP|C=}|^qeo~oy1l&}i9{|fElp2P&&p5Fjii?Z+3OX2RqdD+Nt#|c!!-8NNoe>nyUZ>&{s&~hwadLimX3nFgjWwp^x~q5C$a2QmqHOD8 z>A+a;{Bqv#Ol_vCC=zZN< zXSP2qE+{T`fw6%BH^mn6vSPHf_IBUI`0s9xzX2U=v?#Chwl=7gH?hxL?0@fVeOjCy zr!-*mqr(mlcGup3Tcp^%J#x3weqD;c<=)oX#KN$96C2wPCMLl`V?7<4Q0iA|y-BYn zKk57K&F3;fI}+q2dpXpF&Rc_~FI@)g;+y$1e1TicN&Vd3(T}6{xF?o$0y~z&MLrz% z@<?BUeTHr}n8v1K7JX`nht0lTyhPx+p039zkJ)8+ zy;%RW)D$k?)2cm{P5e5_Jt(6y(`JLuPMQnQe#Gs2L|gmuTh~>GIpA>4NI9o9rMriQ z?(Vz04e9xtr_*?N9mVw|bg%we+C9=kA18r+J675w0qEJ%470ES*`6;)_mWB(+vOA({OO%Z1i*IO9_c%b-2q$+dy}b`;+Rjn_VL zH6Agj4t|^W+wJJIyU^ag^X8fo+z%Y?LT8Q@iq6qz`q>&mN%m^YK2J*Ehz-cg(3 zIfV~+^)uSKyV5|xh&D~i`(7EtHo8+JR3w*!x!oY&ZMR}H(k2OLWj$~~gId*JE%A{OB2BB55NTl3n?%_yk`+SnBya(`~0R}9h;^E0*m zbYY7dVrge(?Rb^d33HJ3dxe`&nAuC&=JTM0)IkYPFDW))<+EPWQntG8t)0qRxb>oz zcM8`He+6u=Wt>fmvlq#MlB&rs2g-uAH*(3_>5UhzJ<^L#i1pSK-tlyEd`HZ(Vt=EU z?6glk>%JRb84FP#^w`tM!Gusxp_!|`yG!NC~B!B)D|!L!)gjaNzf@>jq)< z;kv*RvvvchD-Kh^GVebl2JU5G^`l&)d{Z#h5;%<54bBKFa%|XcV9K}^{OU$lG*zlzl<65ZFkp&tJc=7tZDrR+}DDn4nQXs5ys+Kvh2Mqi+67UN#^oR z5JUami2XH|RI*VZJm6W(&Fc-(sY z<1wY>=F^dp?2)nF{wCk2JcgNX0f?2>Phz)+yj)U`H$8Bd%=AB>>F;r{=Nc|fDUqv`x*$j*d z2R1h`ccJlWzG`*IRE`0De9@YUpuOLVBn>R`d-H)oeEux>GP}^me)Up!G0OE4+8C`(zx7@cw>yD$zQNT zS>C%Gx%?8j0ot(L=# zPnA$K8W#F40Mi;_RE)=h4|6X-zr?H`@jm@`m<4g?GX(BH<;u_g(E}{4Ix2SBa(j-! zM|5gG(}j6EbG%$m;o1Kz#NH^@(?T^97F?NQ<~9#6Wx*n>0iNJ=`LbLbk28$^)8WgA zjK|%MWt9?x)-fg8yIvSX8}znvu9oPO0Tn`3eZPopX)*k6yBaYNqQxU=D&2O^NCo^+ zpjZWTI$i5!*{Og3E8I@}7I1BvQFbP???K6lN#wEBpb;?Czy-JUtJ z0mh9xDsE?O?=S!{SC9(`$#vLyI#C~L47WaOn6WE+{rm6--O*$)TmTT!ht2D?&6mFX zlu=lnjAaF}yjXKl4QzBr-zkWd zxs%F{+Da`aBJ0wnBtTaa+adg>}w~_JOE>b`J-c@aZ~ouqnWSYbS`bSAOF5DEv%<* zoBN)XKVv|!Y&17)Dt**IO7aAJ%CRG%hX-zV^+Sd?)>ie|=an1p_rA*WNPv?G&C>d5` zNqt4jmuW*DBboxYSSrL$7bmJv~nuiVb z*@Y+InSP3bJTJZwcQnG1q|9qQNzNuVQOM#!gGz(8VBV_K=X<>AVxzp=5cN-T`VUc5 zwPLB#d*y>hEE4BG-O~E|C_P`SVJohoRmK4GnjPdK!4jmZDtUsikYC!PO3Ukt+fvN- z5l!@|y*w4|mYj%`A(pSAb9|PV!abmhS-Oa?>S}Ayzo$f@j}vAf@S|k@s|ws2l5X(H zp!>7eyt`f0WGv>-E6wG(YrAt5XpN-Pui_1xF5(ItraAhnLyPFgOkPzzlMRK$yf`jF zV&0Ne_E{7&t?sFHs;{4YuxP@=V~o<**YA(Q-kvtHIYo~+0bLqs`?c1-HTtA8r^z`X zGUHE*3o7e|k@msgwQH(d#}FE}1Rx%=-sy6jS?|EEjW#>J>eSBuSzdL(0voN=lr;o? zUQ0=U_;L}t6Lm+~aLS5-bDysE+Vp%WbnYTL7H9f(F9uSDQyKu6ChE5~{LUG$d|GZ* zIjf5!R3VE+j}3K3{aD>qvsZp+pXj}2zqtJEcI-#y<*K=s_}vICkvEbA$ItIrhD-TA z%<|&&IUvl35R?5WP7Ta9%PLrsr|@ivob-nMC%8QusZ&NIr*XEjJ71IRGy`!3~ z=FuBDhtZ-VXfE+Mt87#Ld~f#qmphJtS~Rl{7SqOLmoxZ73^_`*jIXG7cpDwHvxx`O zfVZnvuxdL{`$+RdpQ|gsPgO>%r(`iA^>`6R+gCwQY()KouK&~V3_s=U&!5+_!)&kS z23F7DDa~ZztG?Regl_k=tFI6`bHUEwJ-cbP%(>822vrOf_zpKzfnm1mV=)+_@|$jg znx+CcuZ9qNLe2$O&2OBVy%P&3&fduPiHV(uv_vZnAnfj1t|R#FS9$G9J&@^oO`{T4 zv0Te^CnglqvSWj=@f6jpe!0Bv$}j?jwzHJYI*SJE$Ep6UK$(=M7DD9SX&-IpKg9z+ z^!10|E&ZNGykCKv)xZNd<0WgJ10gBOeA>7(z*VoH-^aZqZytQ>ARwTK-XU8E!S8oL zAF4nVn#b`P;GfE2fqF#)MqtRh_RINhPh9yFlKAbvlr}S*XxB39AQ&XQf}Bb-k^b?6 zdjh8@i<-MSPFf9}-9$_ga)|Qxbe4yOI6O6MHBlbvOBvqp0Dl(hkr+{KRi#Bgf1LDz zJk|{ptwG()UmfW=2fn_5;x$fJm-aw?8-jrm*HJ<-P+1ie6?qx;fs51ayb1U;aL(P= ztt;?<$@3$CQ5y?5J*9vTt4T_x>vO7CgXlLU&DSqZei84k4tT}N`|=#C*HoIBP+v=5 z1*YU?We7FMp1@gpj{N;X*aSITx3jpP!V`k3TzrfRnm>!_BsuEc+NrgZ&1o>s8)|Y~V})F z(vJrQ`F6~_jV@EwbRaLh=fOG*Xf;h7Kl?zt2-ui2p78+Mib@^luOv;}RZpjT)_7zM zWeu&|l%!bfyk+V7-8_)4hybP9o&%MomnbdQJg0hI)wy1+tF9q)Kd*`*(8eY(-=3n( zt>_+l`}4=oY&xalNJcSLTx~pMhucrOt72nWoH^e}wjZ2fHn>b<Hty9Q537rA#8bHcBk1Ss~zs zJC~2$nivgJ zqDG)eot)CE&4W;T(%HbfM4oYKV!@lb!tZd&s25a1EMm&==b9PL&1K?`3MCQk@xe?Z z`39p1E;XM=%FHoyd=HYU|310fte6xn%e}0$4T0l++UPy zKY#vAMzWwd)~khG>To}cbdI5Nv6#viz2Ngi8E+@%#(~&-vl?5+o&npW_k2ltE{@E0 z`nskXxalm70Xq{7T*hf)_?z8VTda2`74Dw?h^gknO;bk8q>55wod4>fX%5 z_+1aRCYGgWA7)A{uq`t!6o9`%OrRpmyqE*(%B;N|nS&L>-7O)Mfxv}l&~cJsen+@c zj9MBXujJQfg@bWWHGbF;jqeTEtdUogrxdAbx)2H9uBS15aU6FppoIOfu!{ucK3KE* z1pQ8^b@0EML_Xk_YQi}s3N`n9o@XJJt8G3h?39wpA?u?bS(=(T+K0 z9yMOeIivKi?L2-d&j4)N^IkY2bkF7r`ktzMN3*qk4?-=@D&Jwc0ugn8oYXVJVwO&% zWmHhNo9lUiQfuT9Rg8wQU*F<|HTJ+Akv9o)O)w-M-m!@jEM zZS(R+3R`SK!`7)dr zop0s4;wDj4R4?k2x%huEKg=sxjf!8n8QZ-okVD%x`ORN?l^Q^ ziM&^Xfql;xyuva&SSN836|Ii&VwRyUNwtSqX5ECC$v0@c{Y-RxkRNzs;Cw6G%v7*O z*-JH6hhf75u2ZPF91oupwi+e$e{u3eKGlG$1e%Qo^`?*)GwJ0qX)hQ4rfMqNQb{uI zX!Y=NYq+ei9IArwo$+|#o!U=cH}*qB1KGC?0t#Y)=Lrr;&`4bfI$cEX<)oMOm3SVi zSAGEDIV-Vfb`)<4P}S+Uv>btN(|$UU7NG5Kz7eBatW7L;;g@Ml(hF@0vkNC+YLU#*ST$xcu9ItiYcwCKTMAOw8@q8ZYGq13C zXm9akoGO-O6O?%{<0tl)d~#POL_TCy@MVc$x1Ne`$4tg{>-Nqc>mKR%1X^jH{7F=o z`=L%`lBMSrLU+cFWDLd_BEqO`T^oncFGRr`J^udtY?UpLw#nw>sf!(aZu7HOV2i5%*qlOY2zCjIsxs&0~B&4#|%agIPk_RrQJb<1F;V;@3G)q?q*wr%0wvr&}?_WOf-;SFk6Iae@$(zwHsZT=Rm`w+(j9ru8!cm;bSzeA&B9R=-`sC2Cm!lsIbGCpY0N zs@*Mox&;ztZ6U*gny9XEXLR_i*#$uB^ScE5fcT)3Q#VEL){dHk@fXyeX}5ZXRPJ>= zuG)iD)Nxafe%hpt_&J>Jj2`p-FyOmMSGxB_cp=aLg$i1oRk_v2#oqmKsXh6Dlytkh zIiF9#Jy&7BKaKD1JyFh$NM0tp4jaqn_u<|8GVtF|z7TX{QBLbYHRam*81 zo7&puJdj}r<4+S^KJ4*c${2hk^6FY9b$Q-OcQ-C6Qy$JgK$6q$Oc${BBXt?x=X2dP zNTjDkITVNt94Mog#d}R_fyh27fLC2doh0Y$8unO(^#ZTtzLCO=-?iCr0qcFux~X5` ziS(P9<+6b~iS+Z43pIbWaN96!_zJViy9TZ6Y0Pf?V~6y$rtIWj5!WI*2jnip!yd~F z^vMBLhSt^p*hiHgUO$>NRDKb)`-LVlQl^X^D@8~Dtm|7gIruAW5THFWWqoze1s`o{ z-j=kZnB^~zTq+(>ADId>kSwcdLJ7T`Io8l*Ax+MUK{zrnKxN*3<`Z4&b$}3uSEk zew4{9_Y8{o+L_9b$jH$aN#siw7VFq3w}YSl1($<@E`{u@J{c(kP4_XE#xj|1* zXurnr{!FYHdi%_B{{kIc+<6N E08=aAq5uE@ diff --git a/keycloak/theme/mosip/welcome/resources/logo.png b/keycloak/theme/mosip/welcome/resources/logo.png deleted file mode 100644 index 134440b16ebf5c23935f14502c08903a530d7829..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7539 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 E08=aAq5uE@ diff --git a/keycloak/theme/mosip/welcome/resources/mail.png b/keycloak/theme/mosip/welcome/resources/mail.png deleted file mode 100644 index 3a63e7b855b579a170e559a232e386d561542cf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)T2Cy$)U9 zZdp7YFBPaeaOG=McRPR&D4pN~sH2jds;Vf5N+!aSigM17{Pc&g>$$jn=_QqXlS(GS zcvmB*wkQ;hVaoLV&NUwUrW?-X9x1zcq;2I|9QXq1!My$u{8tf9f$bh&qz3~42YtpV zzewvPg4y;?5sJn*0cP3qB1~8-5iA^y!MH{jJ(Pn!!^Ykzag3MhL$oh|Mf+h<_pTME zC*?SG--n&_Il_?`UiUsPs)oILe1S##Au$Eh?pR_H&js{WchR%~%a#|$b^2Z?B3O@1 z1VJUmY5{tyn^;y0S^bP_G%VXEtg(T%y7XYOS|JP?1q&`5jlsB1!?NZ5FFxt5?&R}e z0!laBnprAJ#X^|0N;HXu>{Qr3f!?}buy){}&!D%u;U%c>wqHhsy4SI~r&U_;r01eFv_S|!Fi8*(omy5Uw#54EsT(;tjLZ*@P&DJ2w*L2unB z_Nb1=8kpa7LrTb|tiS+ZP+kv%MuFODKFhl$`_aAqBp07%S6!e92ivjE1{fw35b&wA z^YAi#pj0fxvi1dfWFpqs#@=aOykmUw2P3T1n;(^9s$Z7zT)b=^EZ|dE7?WdCEg^dM z?$b`r-Ywb>i9R)n|5j;rvnZ?ic)2WMQZ2#!sGQgmX3egwybDERm@&KHq|ZU>sm2LK zTA%U;1_0`25eymyu_a{c9pe+JluxQ9SQwLMAwe49e^Oxw=xw zQ%v>CAQcPn-r{C?XW2d>p7D~4gfYWXUXUG2?sq1wl2ugF#XwsfmbJ>fLFFBc@y`6F zn|KsUj@oKI=11iz&wE9Yipk#ThFdYImf+*&5jGFb5RBa1NxSjRXL)g{pkTKT(#&oI zuW#VH4CmC7iViG!7o~h*p&pli$BHE$!5+bi73}Jodw(MZ32SCm#cw};0RV)2iZfu_ zgkP`9x@Ong0qm4mCVnm1w+0x;rT~~q1ZpJlo(B`9^k&W<$SS3jt?36p00000NkvXX Hu0mjf{@~(i diff --git a/keycloak/theme/mosip/welcome/resources/user.png b/keycloak/theme/mosip/welcome/resources/user.png deleted file mode 100644 index 0d61bb470927ad8c25aaed14dbd338b6f4a865fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2423 zcmV--35fQIP)^@RA}DKTWw4m_Zj~cZniNtFLel*0!9rvRFV_}5>c!LnBwsv z35-Tt(LQ9MiuNVZ6sARLt2ryx9BrL8iD(^~G*uz3w3SS4=@|LITn*^zsF5IcnlfQp zWQPPpsDpWl!6{kx!RO=uzdK`N-^Dzie6POWJ#W9~dH(mzlP6E0lvwPJascJrrq^k+ zdXYwXMozF6yTc5i13(ji>KLbu02l_)`?SH!0@h-8Gy&)W(74S@M*ws>ZC2Ng2WzoA z@;H#^Qhbg}PMfuJ$Aaa64sT(u0Du}(J^5PyjeqU5qO~J&1}zz3@<@#qQ`zyJor6a#IMj=VTpp z8YZa+SY6-1nfJ!<)%*&%dkKJ9?$oqh&2|b+Hx-}&pwlq8&{_qZnz~0WXF=&PV~!1- zBKMtZW>W$hmA!>}v>z-J?r!7aLs~T3Ms5`4YH+N&ShfdguP>9*Zd1CzQh(e~xm#8f z(`gu~0GBqftzfx!Nr!O%#eoU*-MEvK>0TU|kUG?{Bl4`%W*r9b zrf~nIArH>JH-_=}jWvw>7V(q6d@kju0Pq=rJSD&;(}ODK3hPs`&MC^(prLX%_7>`R zzUvRJVQPLAqm%bzHQR*Z1MoWlf0e5NmoQivd&J4eTTYwxHR4&ixr)dOpexb#O+sL~ z-c!Ha#2f&g%~rvfmxV9yEyX+a1Ez;sv{D46o76!cjB{1mK0Dw|MHVJe~KF!1kMk1>A%a$tH zx{0Hc3wZ7CZYovjG~eO3C;iK?u#p~@L9fR7<5dVfifBEs66TKqfM=F6V_%d{TkMV| zp*b@#_;0RKKmox1k1wh1xutc0$h~Xf$JFttNk{yIzSm9P19CIZVt2Tr{W2~N@IIU& z&}yf!v39!Qd0BzJGdj)trqDd2K6<8^P56G5#vF1p7vjlcuP7RGq`^ySwZ@c>Kb@?T zHLsrd<9~Pt)l&N$jvO$;<$Zuj|1z{H2JMG7Q+epoW4OEzFcS!2CJ=%_uR^6U2bIPg z-e&>8=~+PU$n;i!`;yaU?I+E+O=!NhmMU3+j!rJ{K(kbtIC8)Uttt~1wt(`(sNePs zd9e0~Flj&d$b4jf5&vQ=Yyq??1~Y+&V2g85YRE?4buSsk+W=5tsiD=;7mZSVT-ka| zS`~x9N*G$wANgn;ikV-d^2zNv0N??e%kyC_-)zO!n4T4ajrc4VfknP5w-n`S_}_um zFn;~v7Z@13D>|=7P~RSA3-I>Iy2v1nm*3nMHej8PC9KP5C(c?ie5BT;4@0NCj5HxI8i~ z#jJuEQeYbunB(xi(#+!RlXX%PcivYi{#;LwGWQnhVQbw-nLH`4zweR)`g5nv>WXTX z8X!pwm}C=wa1Gbovr?TzUNcc)i}W!lsYa4*NeH#hDhie=-IN$wMFSLRf}8%uNdAu1 zi1!EA3Br*bQ_CDj=4;&yE;!MoT!En#0K9tDO#wCN)cD2m7hv6ABuNrJ^(=_k*3|q8 zwXf2+rDEOy;NrR~V1)gi3Wc;P6f#c=sbPshi@ThbuHEwUt|bg^(Hu)&d*Q?Z^bC2( zAZOxORFkOc(JQ3YXf)kqM;kHEd!=y?MJ2D@^5f#bga~L$?Q;~9iUR)4kIgv5?jm=a zB}+Ud$A(7-fb{d+ z*kX53?TVrEO^W#~$&IDD55GEbK$MC+v&$SeR>PoIqsEjk;>H7G_h2s1=cr>QUVq;u z>Rv>_ddZ0V+aFacvSuP$^~C5G^Ht9)je8RBW5+K7_~n5aM2IE``+dbsxxK!O%HtJ< zdMYToyo(9n%W-=y9#DW-JjM_Q!2pqQq{Z&=k)~`Pn2^1eja~X}S`t~g%mhN{`Iko&fun&* z_+qd*BQkTihGR9{y6AStq9~y&C1k*w3558l+;`n4X}Tez#x0?>Yj)bKL8r|+EY(h> z`o?7chOBEz;{7xtbe1X;rG{*Z(37p!Bm0YB(5vC}Eb!zbUe8zxteFc|xk6Ue+006< zQ<9A{zk1ajGbO!LTY|vDaJ+RKaTjHaCIS|_qYc1EQYY7#@^SPPzbGDQw p@Tq*nR1TS!$Woj)&R{ti`9D_T%kkr+)93&I002ovPDHLkV1o1pma6~& diff --git a/keycloak/theme/mosip/welcome/theme.properties b/keycloak/theme/mosip/welcome/theme.properties deleted file mode 100644 index 154ff327..00000000 --- a/keycloak/theme/mosip/welcome/theme.properties +++ /dev/null @@ -1,6 +0,0 @@ -import=common/keycloak - -styles=node_modules/patternfly/dist/css/patternfly.css node_modules/patternfly/dist/css/patternfly-additions.css css/welcome.css - -documentationUrl=https://www.keycloak.org/documentation.html -displayCommunityLinks=true \ No newline at end of file From cf09a51c5c2bc47bbee5a83a254bfeb3d27807fb Mon Sep 17 00:00:00 2001 From: ckm007 Date: Sat, 16 Jul 2022 18:23:14 +0530 Subject: [PATCH 10/21] [MOSIP-22398] added jboss and artemis customisation --- keycloak-artemis/Dockerfile | 45 ++ .../opt/bitnami/.bitnami_components.json | 30 + .../opt/bitnami/licenses/licenses.txt | 3 + .../opt/bitnami/scripts/libbitnami.sh | 51 ++ .../opt/bitnami/scripts/libcomponent.sh | 65 ++ .../prebuildfs/opt/bitnami/scripts/libfile.sh | 139 +++++ .../prebuildfs/opt/bitnami/scripts/libfs.sh | 190 ++++++ .../prebuildfs/opt/bitnami/scripts/libhook.sh | 16 + .../prebuildfs/opt/bitnami/scripts/liblog.sh | 112 ++++ .../prebuildfs/opt/bitnami/scripts/libnet.sh | 163 +++++ .../prebuildfs/opt/bitnami/scripts/libos.sh | 466 ++++++++++++++ .../opt/bitnami/scripts/libpersistence.sh | 122 ++++ .../opt/bitnami/scripts/libservice.sh | 273 ++++++++ .../opt/bitnami/scripts/libvalidations.sh | 264 ++++++++ .../opt/bitnami/scripts/libversion.sh | 49 ++ .../opt/bitnami/scripts/libwebserver.sh | 458 ++++++++++++++ .../prebuildfs/usr/sbin/install_packages | 24 + .../opt/bitnami/scripts/java/entrypoint.sh | 17 + .../opt/bitnami/scripts/java/postunpack.sh | 24 + .../opt/bitnami/scripts/keycloak-env.sh | 162 +++++ .../bitnami/scripts/keycloak/entrypoint.sh | 27 + .../bitnami/scripts/keycloak/postunpack.sh | 24 + .../opt/bitnami/scripts/keycloak/run.sh | 35 ++ .../opt/bitnami/scripts/keycloak/setup.sh | 26 + .../rootfs/opt/bitnami/scripts/libkeycloak.sh | 439 +++++++++++++ .../standalone/deployments/spi-keycloak.jar | Bin 0 -> 6235 bytes .../theme/base/account/theme.properties | 1 + .../theme/base/email/theme.properties | 1 + .../login/messages/messages_ara.properties | 327 ++++++++++ .../login/messages/messages_eng.properties | 376 ++++++++++++ .../login/messages/messages_fra.properties | 299 +++++++++ .../login/messages/messages_hin.properties | 374 +++++++++++ .../login/messages/messages_kan.properties | 375 +++++++++++ .../login/messages/messages_tam.properties | 375 +++++++++++ .../theme/base/login/register.ftl | 152 +++++ .../theme/base/login/theme.properties | 1 + .../mosip/account/resources/css/account.css | 277 +++++++++ .../mosip/account/resources/img/favicon.ico | Bin 0 -> 627 bytes .../resources/img/icon-sidebar-active.png | Bin 0 -> 202 bytes .../account/resources/img/keycloak-logo.png | Bin 0 -> 5213 bytes .../mosip/account/resources/img/logo.png | Bin 0 -> 4156 bytes .../theme/mosip/account/theme.properties | 13 + .../mosip/admin/resources/css/styles.css | 486 +++++++++++++++ .../mosip/admin/resources/img/favicon.ico | Bin 0 -> 627 bytes .../admin/resources/img/keyclok-logo.png | Bin 0 -> 5268 bytes .../admin/resources/img/keyclok-logo.svg | 194 ++++++ .../admin/resources/img/select-arrow.png | Bin 0 -> 1154 bytes .../theme/mosip/admin/theme.properties | 2 + .../theme/mosip/email/theme.properties | 1 + .../theme/mosip/login/resources/css/login.css | 581 ++++++++++++++++++ .../mosip/login/resources/img/favicon.ico | Bin 0 -> 627 bytes .../img/feedback-error-arrow-down.png | Bin 0 -> 513 bytes .../resources/img/feedback-error-sign.png | Bin 0 -> 343 bytes .../img/feedback-success-arrow-down.png | Bin 0 -> 678 bytes .../resources/img/feedback-success-sign.png | Bin 0 -> 410 bytes .../img/feedback-warning-arrow-down.png | Bin 0 -> 513 bytes .../resources/img/feedback-warning-sign.png | Bin 0 -> 646 bytes .../mosip/login/resources/img/keycloak-bg.png | Bin 0 -> 81862 bytes .../resources/img/keycloak-logo-text.png | Bin 0 -> 19994 bytes .../login/resources/img/keycloak-logo.png | Bin 0 -> 5281 bytes .../mosip/login/resources/img/mosiplogo.png | Bin 0 -> 11347 bytes .../theme/mosip/login/theme.properties | 94 +++ .../theme/mosip/welcome/index.ftl | 132 ++++ .../mosip/welcome/resources/admin-console.png | Bin 0 -> 712 bytes .../theme/mosip/welcome/resources/alert.png | Bin 0 -> 6189 bytes .../theme/mosip/welcome/resources/bg.png | Bin 0 -> 72796 bytes .../theme/mosip/welcome/resources/bug.png | Bin 0 -> 1397 bytes .../mosip/welcome/resources/css/welcome.css | 140 +++++ .../theme/mosip/welcome/resources/favicon.ico | Bin 0 -> 627 bytes .../welcome/resources/jboss_community.png | Bin 0 -> 3204 bytes .../welcome/resources/keycloak-project.png | Bin 0 -> 1611 bytes .../mosip/welcome/resources/keycloak_logo.png | Bin 0 -> 7539 bytes .../theme/mosip/welcome/resources/logo.png | Bin 0 -> 7539 bytes .../theme/mosip/welcome/resources/mail.png | Bin 0 -> 1037 bytes .../theme/mosip/welcome/resources/user.png | Bin 0 -> 2423 bytes .../theme/mosip/welcome/theme.properties | 6 + keycloak-jboss/Dockerfile | 13 + .../deployments/spi-keycloak-1.0.jar | Bin 0 -> 6179 bytes .../theme/base/account/theme.properties | 1 + .../theme/base/email/theme.properties | 1 + .../login/messages/messages_ara.properties | 327 ++++++++++ .../login/messages/messages_eng.properties | 376 ++++++++++++ .../login/messages/messages_fra.properties | 299 +++++++++ .../login/messages/messages_hin.properties | 374 +++++++++++ .../login/messages/messages_kan.properties | 375 +++++++++++ .../login/messages/messages_tam.properties | 375 +++++++++++ keycloak-jboss/theme/base/login/register.ftl | 152 +++++ .../theme/base/login/theme.properties | 1 + .../mosip/account/resources/css/account.css | 277 +++++++++ .../mosip/account/resources/img/favicon.ico | Bin 0 -> 627 bytes .../resources/img/icon-sidebar-active.png | Bin 0 -> 202 bytes .../account/resources/img/keycloak-logo.png | Bin 0 -> 5213 bytes .../mosip/account/resources/img/logo.png | Bin 0 -> 4156 bytes .../theme/mosip/account/theme.properties | 13 + .../mosip/admin/resources/css/styles.css | 486 +++++++++++++++ .../mosip/admin/resources/img/favicon.ico | Bin 0 -> 627 bytes .../admin/resources/img/keyclok-logo.png | Bin 0 -> 5268 bytes .../admin/resources/img/keyclok-logo.svg | 194 ++++++ .../admin/resources/img/select-arrow.png | Bin 0 -> 1154 bytes .../theme/mosip/admin/theme.properties | 2 + .../theme/mosip/email/theme.properties | 1 + .../theme/mosip/login/resources/css/login.css | 581 ++++++++++++++++++ .../mosip/login/resources/img/favicon.ico | Bin 0 -> 627 bytes .../img/feedback-error-arrow-down.png | Bin 0 -> 513 bytes .../resources/img/feedback-error-sign.png | Bin 0 -> 343 bytes .../img/feedback-success-arrow-down.png | Bin 0 -> 678 bytes .../resources/img/feedback-success-sign.png | Bin 0 -> 410 bytes .../img/feedback-warning-arrow-down.png | Bin 0 -> 513 bytes .../resources/img/feedback-warning-sign.png | Bin 0 -> 646 bytes .../mosip/login/resources/img/keycloak-bg.png | Bin 0 -> 81862 bytes .../resources/img/keycloak-logo-text.png | Bin 0 -> 19994 bytes .../login/resources/img/keycloak-logo.png | Bin 0 -> 5281 bytes .../mosip/login/resources/img/mosiplogo.png | Bin 0 -> 11347 bytes .../theme/mosip/login/theme.properties | 94 +++ keycloak-jboss/theme/mosip/welcome/index.ftl | 132 ++++ .../mosip/welcome/resources/admin-console.png | Bin 0 -> 712 bytes .../theme/mosip/welcome/resources/alert.png | Bin 0 -> 6189 bytes .../theme/mosip/welcome/resources/bg.png | Bin 0 -> 72796 bytes .../theme/mosip/welcome/resources/bug.png | Bin 0 -> 1397 bytes .../mosip/welcome/resources/css/welcome.css | 140 +++++ .../theme/mosip/welcome/resources/favicon.ico | Bin 0 -> 627 bytes .../welcome/resources/jboss_community.png | Bin 0 -> 3204 bytes .../welcome/resources/keycloak-project.png | Bin 0 -> 1611 bytes .../mosip/welcome/resources/keycloak_logo.png | Bin 0 -> 7539 bytes .../theme/mosip/welcome/resources/logo.png | Bin 0 -> 7539 bytes .../theme/mosip/welcome/resources/mail.png | Bin 0 -> 1037 bytes .../theme/mosip/welcome/resources/user.png | Bin 0 -> 2423 bytes .../theme/mosip/welcome/theme.properties | 6 + 128 files changed, 11651 insertions(+) create mode 100644 keycloak-artemis/Dockerfile create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/.bitnami_components.json create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/licenses/licenses.txt create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libbitnami.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libcomponent.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfile.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfs.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libhook.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/liblog.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libnet.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libos.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libpersistence.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libservice.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libvalidations.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libversion.sh create mode 100644 keycloak-artemis/prebuildfs/opt/bitnami/scripts/libwebserver.sh create mode 100644 keycloak-artemis/prebuildfs/usr/sbin/install_packages create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/java/entrypoint.sh create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/java/postunpack.sh create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak-env.sh create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/run.sh create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/setup.sh create mode 100644 keycloak-artemis/rootfs/opt/bitnami/scripts/libkeycloak.sh create mode 100644 keycloak-artemis/standalone/deployments/spi-keycloak.jar create mode 100644 keycloak-artemis/theme/base/account/theme.properties create mode 100644 keycloak-artemis/theme/base/email/theme.properties create mode 100644 keycloak-artemis/theme/base/login/messages/messages_ara.properties create mode 100644 keycloak-artemis/theme/base/login/messages/messages_eng.properties create mode 100644 keycloak-artemis/theme/base/login/messages/messages_fra.properties create mode 100644 keycloak-artemis/theme/base/login/messages/messages_hin.properties create mode 100644 keycloak-artemis/theme/base/login/messages/messages_kan.properties create mode 100644 keycloak-artemis/theme/base/login/messages/messages_tam.properties create mode 100644 keycloak-artemis/theme/base/login/register.ftl create mode 100644 keycloak-artemis/theme/base/login/theme.properties create mode 100644 keycloak-artemis/theme/mosip/account/resources/css/account.css create mode 100644 keycloak-artemis/theme/mosip/account/resources/img/favicon.ico create mode 100644 keycloak-artemis/theme/mosip/account/resources/img/icon-sidebar-active.png create mode 100644 keycloak-artemis/theme/mosip/account/resources/img/keycloak-logo.png create mode 100644 keycloak-artemis/theme/mosip/account/resources/img/logo.png create mode 100644 keycloak-artemis/theme/mosip/account/theme.properties create mode 100644 keycloak-artemis/theme/mosip/admin/resources/css/styles.css create mode 100644 keycloak-artemis/theme/mosip/admin/resources/img/favicon.ico create mode 100644 keycloak-artemis/theme/mosip/admin/resources/img/keyclok-logo.png create mode 100644 keycloak-artemis/theme/mosip/admin/resources/img/keyclok-logo.svg create mode 100644 keycloak-artemis/theme/mosip/admin/resources/img/select-arrow.png create mode 100644 keycloak-artemis/theme/mosip/admin/theme.properties create mode 100644 keycloak-artemis/theme/mosip/email/theme.properties create mode 100644 keycloak-artemis/theme/mosip/login/resources/css/login.css create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/favicon.ico create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/feedback-error-arrow-down.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/feedback-error-sign.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/feedback-success-arrow-down.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/feedback-success-sign.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/feedback-warning-arrow-down.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/feedback-warning-sign.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/keycloak-bg.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/keycloak-logo-text.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/keycloak-logo.png create mode 100644 keycloak-artemis/theme/mosip/login/resources/img/mosiplogo.png create mode 100644 keycloak-artemis/theme/mosip/login/theme.properties create mode 100644 keycloak-artemis/theme/mosip/welcome/index.ftl create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/admin-console.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/alert.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/bg.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/bug.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/css/welcome.css create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/favicon.ico create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/jboss_community.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/keycloak-project.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/keycloak_logo.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/logo.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/mail.png create mode 100644 keycloak-artemis/theme/mosip/welcome/resources/user.png create mode 100644 keycloak-artemis/theme/mosip/welcome/theme.properties create mode 100644 keycloak-jboss/Dockerfile create mode 100644 keycloak-jboss/standalone/deployments/spi-keycloak-1.0.jar create mode 100644 keycloak-jboss/theme/base/account/theme.properties create mode 100644 keycloak-jboss/theme/base/email/theme.properties create mode 100644 keycloak-jboss/theme/base/login/messages/messages_ara.properties create mode 100644 keycloak-jboss/theme/base/login/messages/messages_eng.properties create mode 100644 keycloak-jboss/theme/base/login/messages/messages_fra.properties create mode 100644 keycloak-jboss/theme/base/login/messages/messages_hin.properties create mode 100644 keycloak-jboss/theme/base/login/messages/messages_kan.properties create mode 100644 keycloak-jboss/theme/base/login/messages/messages_tam.properties create mode 100644 keycloak-jboss/theme/base/login/register.ftl create mode 100644 keycloak-jboss/theme/base/login/theme.properties create mode 100644 keycloak-jboss/theme/mosip/account/resources/css/account.css create mode 100644 keycloak-jboss/theme/mosip/account/resources/img/favicon.ico create mode 100644 keycloak-jboss/theme/mosip/account/resources/img/icon-sidebar-active.png create mode 100644 keycloak-jboss/theme/mosip/account/resources/img/keycloak-logo.png create mode 100644 keycloak-jboss/theme/mosip/account/resources/img/logo.png create mode 100644 keycloak-jboss/theme/mosip/account/theme.properties create mode 100644 keycloak-jboss/theme/mosip/admin/resources/css/styles.css create mode 100644 keycloak-jboss/theme/mosip/admin/resources/img/favicon.ico create mode 100644 keycloak-jboss/theme/mosip/admin/resources/img/keyclok-logo.png create mode 100644 keycloak-jboss/theme/mosip/admin/resources/img/keyclok-logo.svg create mode 100644 keycloak-jboss/theme/mosip/admin/resources/img/select-arrow.png create mode 100644 keycloak-jboss/theme/mosip/admin/theme.properties create mode 100644 keycloak-jboss/theme/mosip/email/theme.properties create mode 100644 keycloak-jboss/theme/mosip/login/resources/css/login.css create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/favicon.ico create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/feedback-error-arrow-down.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/feedback-error-sign.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/feedback-success-arrow-down.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/feedback-success-sign.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/feedback-warning-arrow-down.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/feedback-warning-sign.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/keycloak-bg.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/keycloak-logo-text.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/keycloak-logo.png create mode 100644 keycloak-jboss/theme/mosip/login/resources/img/mosiplogo.png create mode 100644 keycloak-jboss/theme/mosip/login/theme.properties create mode 100644 keycloak-jboss/theme/mosip/welcome/index.ftl create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/admin-console.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/alert.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/bg.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/bug.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/css/welcome.css create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/favicon.ico create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/jboss_community.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/keycloak-project.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/keycloak_logo.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/logo.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/mail.png create mode 100644 keycloak-jboss/theme/mosip/welcome/resources/user.png create mode 100644 keycloak-jboss/theme/mosip/welcome/theme.properties diff --git a/keycloak-artemis/Dockerfile b/keycloak-artemis/Dockerfile new file mode 100644 index 00000000..7736540b --- /dev/null +++ b/keycloak-artemis/Dockerfile @@ -0,0 +1,45 @@ +FROM docker.io/bitnami/minideb:buster +LABEL maintainer "Bitnami " + +ENV HOME="/" \ + OS_ARCH="amd64" \ + OS_FLAVOUR="debian-10" \ + OS_NAME="linux" + +ARG JAVA_EXTRA_SECURITY_DIR="/bitnami/java/extra-security" + +COPY prebuildfs / +RUN chmod +x /usr/sbin/install_packages +# Install required system packages and dependencies +RUN install_packages acl ca-certificates curl gzip libaio1 libc6 procps rsync tar zlib1g +RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "wait-for-port" "1.0.1-10" --checksum 35c818ba3f4b5aae905959bc7d3a5e81fc63786e3c662b604612c0aa7fcda8fd +RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "java" "11.0.14-7" --checksum 900545c4f346a0ece8abf2caf64fd9d4ab7514967d4614d716bf7362b24f828b +RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "keycloak" "16.1.1-8" --checksum c432a2b3551a40e48b77f63257def52e9556c2b6ffa989e7eb6847ad87fdd9db +RUN . /opt/bitnami/scripts/libcomponent.sh && component_unpack "gosu" "1.14.0-7" --checksum d6280b6f647a62bf6edc74dc8e526bfff63ddd8067dcb8540843f47203d9ccf1 +RUN apt-get update && apt-get upgrade -y && \ + rm -r /var/lib/apt/lists /var/cache/apt/archives +RUN chmod g+rwX /opt/bitnami + +COPY ./theme/base /opt/bitnami/keycloak/themes/base + +COPY ./theme/mosip /opt/bitnami/keycloak/themes/mosip + +COPY ./standalone/deployments/* /opt/bitnami/keycloak/standalone/deployments + +COPY rootfs / +RUN chmod +x /opt/bitnami/scripts/keycloak/postunpack.sh +RUN chmod +x /opt/bitnami/scripts/java/postunpack.sh + +RUN /opt/bitnami/scripts/java/postunpack.sh +RUN /opt/bitnami/scripts/keycloak/postunpack.sh +ENV APP_VERSION="16.1.1" \ + BITNAMI_APP_NAME="keycloak" \ + JAVA_HOME="/opt/bitnami/java" \ + PATH="/opt/bitnami/common/bin:/opt/bitnami/java/bin:/opt/bitnami/keycloak/bin:$PATH" + +RUN chmod +x /opt/bitnami/scripts/keycloak/entrypoint.sh +RUN chmod +x /opt/bitnami/scripts/keycloak/setup.sh +RUN chmod +x /opt/bitnami/scripts/keycloak/run.sh +USER 1001 +ENTRYPOINT [ "/opt/bitnami/scripts/keycloak/entrypoint.sh" ] +CMD [ "/opt/bitnami/scripts/keycloak/run.sh" ] diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/.bitnami_components.json b/keycloak-artemis/prebuildfs/opt/bitnami/.bitnami_components.json new file mode 100644 index 00000000..ca9199fc --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/.bitnami_components.json @@ -0,0 +1,30 @@ +{ + "gosu": { + "arch": "amd64", + "digest": "d6280b6f647a62bf6edc74dc8e526bfff63ddd8067dcb8540843f47203d9ccf1", + "distro": "debian-10", + "type": "NAMI", + "version": "1.14.0-7" + }, + "java": { + "arch": "amd64", + "digest": "900545c4f346a0ece8abf2caf64fd9d4ab7514967d4614d716bf7362b24f828b", + "distro": "debian-10", + "type": "NAMI", + "version": "11.0.14-7" + }, + "keycloak": { + "arch": "amd64", + "digest": "c432a2b3551a40e48b77f63257def52e9556c2b6ffa989e7eb6847ad87fdd9db", + "distro": "debian-10", + "type": "NAMI", + "version": "16.1.1-8" + }, + "wait-for-port": { + "arch": "amd64", + "digest": "35c818ba3f4b5aae905959bc7d3a5e81fc63786e3c662b604612c0aa7fcda8fd", + "distro": "debian-10", + "type": "NAMI", + "version": "1.0.1-10" + } +} \ No newline at end of file diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/licenses/licenses.txt b/keycloak-artemis/prebuildfs/opt/bitnami/licenses/licenses.txt new file mode 100644 index 00000000..c76ba31f --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/licenses/licenses.txt @@ -0,0 +1,3 @@ +Bitnami containers ship with software bundles. You can find the licenses under: +/opt/bitnami/nami/COPYING +/opt/bitnami/[name-of-bundle]/licenses/[bundle-version].txt diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libbitnami.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libbitnami.sh new file mode 100644 index 00000000..ef29e361 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libbitnami.sh @@ -0,0 +1,51 @@ +#!/bin/bash +# +# Bitnami custom library + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/liblog.sh + +# Constants +BOLD='\033[1m' + +# Functions + +######################## +# Print the welcome page +# Globals: +# DISABLE_WELCOME_MESSAGE +# BITNAMI_APP_NAME +# Arguments: +# None +# Returns: +# None +######################### +print_welcome_page() { + if [[ -z "${DISABLE_WELCOME_MESSAGE:-}" ]]; then + if [[ -n "$BITNAMI_APP_NAME" ]]; then + print_image_welcome_page + fi + fi +} + +######################## +# Print the welcome page for a Bitnami Docker image +# Globals: +# BITNAMI_APP_NAME +# Arguments: +# None +# Returns: +# None +######################### +print_image_welcome_page() { + local github_url="https://github.com/bitnami/bitnami-docker-${BITNAMI_APP_NAME}" + + log "" + log "${BOLD}Welcome to the Bitnami ${BITNAMI_APP_NAME} container${RESET}" + log "Subscribe to project updates by watching ${BOLD}${github_url}${RESET}" + log "Submit issues and feature requests at ${BOLD}${github_url}/issues${RESET}" + log "" +} + diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libcomponent.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libcomponent.sh new file mode 100644 index 00000000..e3098a93 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libcomponent.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# +# Library for managing Bitnami components + +# Constants +CACHE_ROOT="/tmp/bitnami/pkg/cache" +DOWNLOAD_URL="https://downloads.bitnami.com/files/stacksmith" + +# Functions + +######################## +# Download and unpack a Bitnami package +# Globals: +# OS_NAME +# OS_ARCH +# OS_FLAVOUR +# Arguments: +# $1 - component's name +# $2 - component's version +# Returns: +# None +######################### +component_unpack() { + local name="${1:?name is required}" + local version="${2:?version is required}" + local base_name="${name}-${version}-${OS_NAME}-${OS_ARCH}-${OS_FLAVOUR}" + local package_sha256="" + local directory="/opt/bitnami" + + # Validate arguments + shift 2 + while [ "$#" -gt 0 ]; do + case "$1" in + -c|--checksum) + shift + package_sha256="${1:?missing package checksum}" + ;; + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + + echo "Downloading $base_name package" + if [ -f "${CACHE_ROOT}/${base_name}.tar.gz" ]; then + echo "${CACHE_ROOT}/${base_name}.tar.gz already exists, skipping download." + cp "${CACHE_ROOT}/${base_name}.tar.gz" . + rm "${CACHE_ROOT}/${base_name}.tar.gz" + if [ -f "${CACHE_ROOT}/${base_name}.tar.gz.sha256" ]; then + echo "Using the local sha256 from ${CACHE_ROOT}/${base_name}.tar.gz.sha256" + package_sha256="$(< "${CACHE_ROOT}/${base_name}.tar.gz.sha256")" + rm "${CACHE_ROOT}/${base_name}.tar.gz.sha256" + fi + else + curl --remote-name --silent --show-error --fail "${DOWNLOAD_URL}/${base_name}.tar.gz" + fi + if [ -n "$package_sha256" ]; then + echo "Verifying package integrity" + echo "$package_sha256 ${base_name}.tar.gz" | sha256sum --check - || exit "$?" + fi + tar --directory "${directory}" --extract --gunzip --file "${base_name}.tar.gz" --no-same-owner --strip-components=2 + rm "${base_name}.tar.gz" +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfile.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfile.sh new file mode 100644 index 00000000..41ebaf74 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfile.sh @@ -0,0 +1,139 @@ +#!/bin/bash +# +# Library for managing files + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/libos.sh + +# Functions + +######################## +# Replace a regex-matching string in a file +# Arguments: +# $1 - filename +# $2 - match regex +# $3 - substitute regex +# $4 - use POSIX regex. Default: true +# Returns: +# None +######################### +replace_in_file() { + local filename="${1:?filename is required}" + local match_regex="${2:?match regex is required}" + local substitute_regex="${3:?substitute regex is required}" + local posix_regex=${4:-true} + + local result + + # We should avoid using 'sed in-place' substitutions + # 1) They are not compatible with files mounted from ConfigMap(s) + # 2) We found incompatibility issues with Debian10 and "in-place" substitutions + local -r del=$'\001' # Use a non-printable character as a 'sed' delimiter to avoid issues + if [[ $posix_regex = true ]]; then + result="$(sed -E "s${del}${match_regex}${del}${substitute_regex}${del}g" "$filename")" + else + result="$(sed "s${del}${match_regex}${del}${substitute_regex}${del}g" "$filename")" + fi + echo "$result" > "$filename" +} + +######################## +# Replace a regex-matching multiline string in a file +# Arguments: +# $1 - filename +# $2 - match regex +# $3 - substitute regex +# Returns: +# None +######################### +replace_in_file_multiline() { + local filename="${1:?filename is required}" + local match_regex="${2:?match regex is required}" + local substitute_regex="${3:?substitute regex is required}" + + local result + local -r del=$'\001' # Use a non-printable character as a 'sed' delimiter to avoid issues + result="$(perl -pe "BEGIN{undef $/;} s${del}${match_regex}${del}${substitute_regex}${del}sg" "$filename")" + echo "$result" > "$filename" +} + +######################## +# Remove a line in a file based on a regex +# Arguments: +# $1 - filename +# $2 - match regex +# $3 - use POSIX regex. Default: true +# Returns: +# None +######################### +remove_in_file() { + local filename="${1:?filename is required}" + local match_regex="${2:?match regex is required}" + local posix_regex=${3:-true} + local result + + # We should avoid using 'sed in-place' substitutions + # 1) They are not compatible with files mounted from ConfigMap(s) + # 2) We found incompatibility issues with Debian10 and "in-place" substitutions + if [[ $posix_regex = true ]]; then + result="$(sed -E "/$match_regex/d" "$filename")" + else + result="$(sed "/$match_regex/d" "$filename")" + fi + echo "$result" > "$filename" +} + +######################## +# Appends text after the last line matching a pattern +# Arguments: +# $1 - file +# $2 - match regex +# $3 - contents to add +# Returns: +# None +######################### +append_file_after_last_match() { + local file="${1:?missing file}" + local match_regex="${2:?missing pattern}" + local value="${3:?missing value}" + + # We read the file in reverse, replace the first match (0,/pattern/s) and then reverse the results again + result="$(tac "$file" | sed -E "0,/($match_regex)/s||${value}\n\1|" | tac)" + echo "$result" > "$file" +} + +######################## +# Wait until certain entry is present in a log file +# Arguments: +# $1 - entry to look for +# $2 - log file +# $3 - max retries. Default: 12 +# $4 - sleep between retries (in seconds). Default: 5 +# Returns: +# Boolean +######################### +wait_for_log_entry() { + local -r entry="${1:-missing entry}" + local -r log_file="${2:-missing log file}" + local -r retries="${3:-12}" + local -r interval_time="${4:-5}" + local attempt=0 + + check_log_file_for_entry() { + if ! grep -qE "$entry" "$log_file"; then + debug "Entry \"${entry}\" still not present in ${log_file} (attempt $((++attempt))/${retries})" + return 1 + fi + } + debug "Checking that ${log_file} log file contains entry \"${entry}\"" + if retry_while check_log_file_for_entry "$retries" "$interval_time"; then + debug "Found entry \"${entry}\" in ${log_file}" + true + else + error "Could not find entry \"${entry}\" in ${log_file} after ${retries} retries" + debug_execute cat "$log_file" + return 1 + fi +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfs.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfs.sh new file mode 100644 index 00000000..1b504b1d --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libfs.sh @@ -0,0 +1,190 @@ +#!/bin/bash +# +# Library for file system actions + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/liblog.sh + +# Functions + +######################## +# Ensure a file/directory is owned (user and group) but the given user +# Arguments: +# $1 - filepath +# $2 - owner +# Returns: +# None +######################### +owned_by() { + local path="${1:?path is missing}" + local owner="${2:?owner is missing}" + local group="${3:-}" + + if [[ -n $group ]]; then + chown "$owner":"$group" "$path" + else + chown "$owner":"$owner" "$path" + fi +} + +######################## +# Ensure a directory exists and, optionally, is owned by the given user +# Arguments: +# $1 - directory +# $2 - owner +# Returns: +# None +######################### +ensure_dir_exists() { + local dir="${1:?directory is missing}" + local owner_user="${2:-}" + local owner_group="${3:-}" + + mkdir -p "${dir}" + if [[ -n $owner_user ]]; then + owned_by "$dir" "$owner_user" "$owner_group" + fi +} + +######################## +# Checks whether a directory is empty or not +# arguments: +# $1 - directory +# returns: +# boolean +######################### +is_dir_empty() { + local -r path="${1:?missing directory}" + # Calculate real path in order to avoid issues with symlinks + local -r dir="$(realpath "$path")" + if [[ ! -e "$dir" ]] || [[ -z "$(ls -A "$dir")" ]]; then + true + else + false + fi +} + +######################## +# Checks whether a mounted directory is empty or not +# arguments: +# $1 - directory +# returns: +# boolean +######################### +is_mounted_dir_empty() { + local dir="${1:?missing directory}" + + if is_dir_empty "$dir" || find "$dir" -mindepth 1 -maxdepth 1 -not -name ".snapshot" -not -name "lost+found" -exec false {} +; then + true + else + false + fi +} + +######################## +# Checks whether a file can be written to or not +# arguments: +# $1 - file +# returns: +# boolean +######################### +is_file_writable() { + local file="${1:?missing file}" + local dir + dir="$(dirname "$file")" + + if [[ (-f "$file" && -w "$file") || (! -f "$file" && -d "$dir" && -w "$dir") ]]; then + true + else + false + fi +} + +######################## +# Relativize a path +# arguments: +# $1 - path +# $2 - base +# returns: +# None +######################### +relativize() { + local -r path="${1:?missing path}" + local -r base="${2:?missing base}" + pushd "$base" >/dev/null || exit + realpath -q --no-symlinks --relative-base="$base" "$path" | sed -e 's|^/$|.|' -e 's|^/||' + popd >/dev/null || exit +} + +######################## +# Configure permisions and ownership recursively +# Globals: +# None +# Arguments: +# $1 - paths (as a string). +# Flags: +# -f|--file-mode - mode for directories. +# -d|--dir-mode - mode for files. +# -u|--user - user +# -g|--group - group +# Returns: +# None +######################### +configure_permissions_ownership() { + local -r paths="${1:?paths is missing}" + local dir_mode="" + local file_mode="" + local user="" + local group="" + + # Validate arguments + shift 1 + while [ "$#" -gt 0 ]; do + case "$1" in + -f | --file-mode) + shift + file_mode="${1:?missing mode for files}" + ;; + -d | --dir-mode) + shift + dir_mode="${1:?missing mode for directories}" + ;; + -u | --user) + shift + user="${1:?missing user}" + ;; + -g | --group) + shift + group="${1:?missing group}" + ;; + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + + read -r -a filepaths <<<"$paths" + for p in "${filepaths[@]}"; do + if [[ -e "$p" ]]; then + if [[ -n $dir_mode ]]; then + find -L "$p" -type d -exec chmod "$dir_mode" {} \; + fi + if [[ -n $file_mode ]]; then + find -L "$p" -type f -exec chmod "$file_mode" {} \; + fi + if [[ -n $user ]] && [[ -n $group ]]; then + chown -LR "$user":"$group" "$p" + elif [[ -n $user ]] && [[ -z $group ]]; then + chown -LR "$user" "$p" + elif [[ -z $user ]] && [[ -n $group ]]; then + chgrp -LR "$group" "$p" + fi + else + stderr_print "$p does not exist" + fi + done +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libhook.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libhook.sh new file mode 100644 index 00000000..9694852a --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libhook.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# +# Library to use for scripts expected to be used as Kubernetes lifecycle hooks + +# shellcheck disable=SC1091 + +# Load generic libraries +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libos.sh + +# Override functions that log to stdout/stderr of the current process, so they print to process 1 +for function_to_override in stderr_print debug_execute; do + # Output is sent to output of process 1 and thus end up in the container log + # The hook output in general isn't saved + eval "$(declare -f "$function_to_override") >/proc/1/fd/1 2>/proc/1/fd/2" +done diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/liblog.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/liblog.sh new file mode 100644 index 00000000..c7c0f6d4 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/liblog.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# +# Library for logging functions + +# Constants +RESET='\033[0m' +RED='\033[38;5;1m' +GREEN='\033[38;5;2m' +YELLOW='\033[38;5;3m' +MAGENTA='\033[38;5;5m' +CYAN='\033[38;5;6m' + +# Functions + +######################## +# Print to STDERR +# Arguments: +# Message to print +# Returns: +# None +######################### +stderr_print() { + # 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it + local bool="${BITNAMI_QUIET:-false}" + # comparison is performed without regard to the case of alphabetic characters + shopt -s nocasematch + if ! [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then + printf "%b\\n" "${*}" >&2 + fi +} + +######################## +# Log message +# Arguments: +# Message to log +# Returns: +# None +######################### +log() { + stderr_print "${CYAN}${MODULE:-} ${MAGENTA}$(date "+%T.%2N ")${RESET}${*}" +} +######################## +# Log an 'info' message +# Arguments: +# Message to log +# Returns: +# None +######################### +info() { + log "${GREEN}INFO ${RESET} ==> ${*}" +} +######################## +# Log message +# Arguments: +# Message to log +# Returns: +# None +######################### +warn() { + log "${YELLOW}WARN ${RESET} ==> ${*}" +} +######################## +# Log an 'error' message +# Arguments: +# Message to log +# Returns: +# None +######################### +error() { + log "${RED}ERROR${RESET} ==> ${*}" +} +######################## +# Log a 'debug' message +# Globals: +# BITNAMI_DEBUG +# Arguments: +# None +# Returns: +# None +######################### +debug() { + # 'is_boolean_yes' is defined in libvalidations.sh, but depends on this file so we cannot source it + local bool="${BITNAMI_DEBUG:-false}" + # comparison is performed without regard to the case of alphabetic characters + shopt -s nocasematch + if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then + log "${MAGENTA}DEBUG${RESET} ==> ${*}" + fi +} + +######################## +# Indent a string +# Arguments: +# $1 - string +# $2 - number of indentation characters (default: 4) +# $3 - indentation character (default: " ") +# Returns: +# None +######################### +indent() { + local string="${1:-}" + local num="${2:?missing num}" + local char="${3:-" "}" + # Build the indentation unit string + local indent_unit="" + for ((i = 0; i < num; i++)); do + indent_unit="${indent_unit}${char}" + done + # shellcheck disable=SC2001 + # Complex regex, see https://github.com/koalaman/shellcheck/wiki/SC2001#exceptions + echo "$string" | sed "s/^/${indent_unit}/" +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libnet.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libnet.sh new file mode 100644 index 00000000..8bbf165e --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libnet.sh @@ -0,0 +1,163 @@ +#!/bin/bash +# +# Library for network functions + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/liblog.sh + +# Functions + +######################## +# Resolve IP address for a host/domain (i.e. DNS lookup) +# Arguments: +# $1 - Hostname to resolve +# $2 - IP address version (v4, v6), leave empty for resolving to any version +# Returns: +# IP +######################### +dns_lookup() { + local host="${1:?host is missing}" + local ip_version="${2:-}" + getent "ahosts${ip_version}" "$host" | awk '/STREAM/ {print $1 }' | head -n 1 +} + +######################### +# Wait for a hostname and return the IP +# Arguments: +# $1 - hostname +# $2 - number of retries +# $3 - seconds to wait between retries +# Returns: +# - IP address that corresponds to the hostname +######################### +wait_for_dns_lookup() { + local hostname="${1:?hostname is missing}" + local retries="${2:-5}" + local seconds="${3:-1}" + check_host() { + if [[ $(dns_lookup "$hostname") == "" ]]; then + false + else + true + fi + } + # Wait for the host to be ready + retry_while "check_host ${hostname}" "$retries" "$seconds" + dns_lookup "$hostname" +} + +######################## +# Get machine's IP +# Arguments: +# None +# Returns: +# Machine IP +######################### +get_machine_ip() { + local -a ip_addresses + local hostname + hostname="$(hostname)" + read -r -a ip_addresses <<< "$(dns_lookup "$hostname" | xargs echo)" + if [[ "${#ip_addresses[@]}" -gt 1 ]]; then + warn "Found more than one IP address associated to hostname ${hostname}: ${ip_addresses[*]}, will use ${ip_addresses[0]}" + elif [[ "${#ip_addresses[@]}" -lt 1 ]]; then + error "Could not find any IP address associated to hostname ${hostname}" + exit 1 + fi + echo "${ip_addresses[0]}" +} + +######################## +# Check if the provided argument is a resolved hostname +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_hostname_resolved() { + local -r host="${1:?missing value}" + if [[ -n "$(dns_lookup "$host")" ]]; then + true + else + false + fi +} + +######################## +# Parse URL +# Globals: +# None +# Arguments: +# $1 - uri - String +# $2 - component to obtain. Valid options (scheme, authority, userinfo, host, port, path, query or fragment) - String +# Returns: +# String +parse_uri() { + local uri="${1:?uri is missing}" + local component="${2:?component is missing}" + + # Solution based on https://tools.ietf.org/html/rfc3986#appendix-B with + # additional sub-expressions to split authority into userinfo, host and port + # Credits to Patryk Obara (see https://stackoverflow.com/a/45977232/6694969) + local -r URI_REGEX='^(([^:/?#]+):)?(//((([^@/?#]+)@)?([^:/?#]+)(:([0-9]+))?))?(/([^?#]*))?(\?([^#]*))?(#(.*))?' + # || | ||| | | | | | | | | | + # |2 scheme | ||6 userinfo 7 host | 9 port | 11 rpath | 13 query | 15 fragment + # 1 scheme: | |5 userinfo@ 8 :... 10 path 12 ?... 14 #... + # | 4 authority + # 3 //... + local index=0 + case "$component" in + scheme) + index=2 + ;; + authority) + index=4 + ;; + userinfo) + index=6 + ;; + host) + index=7 + ;; + port) + index=9 + ;; + path) + index=10 + ;; + query) + index=13 + ;; + fragment) + index=14 + ;; + *) + stderr_print "unrecognized component $component" + return 1 + ;; + esac + [[ "$uri" =~ $URI_REGEX ]] && echo "${BASH_REMATCH[${index}]}" +} + +######################## +# Wait for a HTTP connection to succeed +# Globals: +# * +# Arguments: +# $1 - URL to wait for +# $2 - Maximum amount of retries (optional) +# $3 - Time between retries (optional) +# Returns: +# true if the HTTP connection succeeded, false otherwise +######################### +wait_for_http_connection() { + local url="${1:?missing url}" + local retries="${2:-}" + local sleep_time="${3:-}" + if ! retry_while "debug_execute curl --silent ${url}" "$retries" "$sleep_time"; then + error "Could not connect to ${url}" + return 1 + fi +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libos.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libos.sh new file mode 100644 index 00000000..b6c50da9 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libos.sh @@ -0,0 +1,466 @@ +#!/bin/bash +# +# Library for operating system actions + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libfs.sh +. /opt/bitnami/scripts/libvalidations.sh + +# Functions + +######################## +# Check if an user exists in the system +# Arguments: +# $1 - user +# Returns: +# Boolean +######################### +user_exists() { + local user="${1:?user is missing}" + id "$user" >/dev/null 2>&1 +} + +######################## +# Check if a group exists in the system +# Arguments: +# $1 - group +# Returns: +# Boolean +######################### +group_exists() { + local group="${1:?group is missing}" + getent group "$group" >/dev/null 2>&1 +} + +######################## +# Create a group in the system if it does not exist already +# Arguments: +# $1 - group +# Flags: +# -i|--gid - the ID for the new group +# -s|--system - Whether to create new user as system user (uid <= 999) +# Returns: +# None +######################### +ensure_group_exists() { + local group="${1:?group is missing}" + local gid="" + local is_system_user=false + + # Validate arguments + shift 1 + while [ "$#" -gt 0 ]; do + case "$1" in + -i | --gid) + shift + gid="${1:?missing gid}" + ;; + -s | --system) + is_system_user=true + ;; + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + + if ! group_exists "$group"; then + local -a args=("$group") + if [[ -n "$gid" ]]; then + if group_exists "$gid"; then + error "The GID $gid is already in use." >&2 + return 1 + fi + args+=("--gid" "$gid") + fi + $is_system_user && args+=("--system") + groupadd "${args[@]}" >/dev/null 2>&1 + fi +} + +######################## +# Create an user in the system if it does not exist already +# Arguments: +# $1 - user +# Flags: +# -i|--uid - the ID for the new user +# -g|--group - the group the new user should belong to +# -a|--append-groups - comma-separated list of supplemental groups to append to the new user +# -h|--home - the home directory for the new user +# -s|--system - whether to create new user as system user (uid <= 999) +# Returns: +# None +######################### +ensure_user_exists() { + local user="${1:?user is missing}" + local uid="" + local group="" + local append_groups="" + local home="" + local is_system_user=false + + # Validate arguments + shift 1 + while [ "$#" -gt 0 ]; do + case "$1" in + -i | --uid) + shift + uid="${1:?missing uid}" + ;; + -g | --group) + shift + group="${1:?missing group}" + ;; + -a | --append-groups) + shift + append_groups="${1:?missing append_groups}" + ;; + -h | --home) + shift + home="${1:?missing home directory}" + ;; + -s | --system) + is_system_user=true + ;; + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + + if ! user_exists "$user"; then + local -a user_args=("-N" "$user") + if [[ -n "$uid" ]]; then + if user_exists "$uid"; then + error "The UID $uid is already in use." + return 1 + fi + user_args+=("--uid" "$uid") + else + $is_system_user && user_args+=("--system") + fi + useradd "${user_args[@]}" >/dev/null 2>&1 + fi + + if [[ -n "$group" ]]; then + local -a group_args=("$group") + $is_system_user && group_args+=("--system") + ensure_group_exists "${group_args[@]}" + usermod -g "$group" "$user" >/dev/null 2>&1 + fi + + if [[ -n "$append_groups" ]]; then + local -a groups + read -ra groups <<<"$(tr ',;' ' ' <<<"$append_groups")" + for group in "${groups[@]}"; do + ensure_group_exists "$group" + usermod -aG "$group" "$user" >/dev/null 2>&1 + done + fi + + if [[ -n "$home" ]]; then + mkdir -p "$home" + usermod -d "$home" "$user" >/dev/null 2>&1 + configure_permissions_ownership "$home" -d "775" -f "664" -u "$user" -g "$group" + fi +} + +######################## +# Check if the script is currently running as root +# Arguments: +# $1 - user +# $2 - group +# Returns: +# Boolean +######################### +am_i_root() { + if [[ "$(id -u)" = "0" ]]; then + true + else + false + fi +} + +######################## +# Print OS metadata +# Arguments: +# $1 - Flag name +# Flags: +# --id - Distro ID +# --version - Distro version +# --branch - Distro branch +# --codename - Distro codename +# Returns: +# String +######################### +get_os_metadata() { + local -r flag_name="${1:?missing flag}" + # Helper function + get_os_release_metadata() { + local -r env_name="${1:?missing environment variable name}" + ( + . /etc/os-release + echo "${!env_name}" + ) + } + case "$flag_name" in + --id) + get_os_release_metadata ID + ;; + --version) + get_os_release_metadata VERSION_ID + ;; + --branch) + get_os_release_metadata VERSION_ID | sed 's/\..*//' + ;; + --codename) + get_os_release_metadata VERSION_CODENAME + ;; + *) + error "Unknown flag ${flag_name}" + return 1 + ;; + esac +} + +######################## +# Get total memory available +# Arguments: +# None +# Returns: +# Memory in bytes +######################### +get_total_memory() { + echo $(($(grep MemTotal /proc/meminfo | awk '{print $2}') / 1024)) +} + +######################## +# Get machine size depending on specified memory +# Globals: +# None +# Arguments: +# None +# Flags: +# --memory - memory size (optional) +# Returns: +# Detected instance size +######################### +get_machine_size() { + local memory="" + # Validate arguments + while [[ "$#" -gt 0 ]]; do + case "$1" in + --memory) + shift + memory="${1:?missing memory}" + ;; + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + if [[ -z "$memory" ]]; then + debug "Memory was not specified, detecting available memory automatically" + memory="$(get_total_memory)" + fi + sanitized_memory=$(convert_to_mb "$memory") + if [[ "$sanitized_memory" -gt 26000 ]]; then + echo 2xlarge + elif [[ "$sanitized_memory" -gt 13000 ]]; then + echo xlarge + elif [[ "$sanitized_memory" -gt 6000 ]]; then + echo large + elif [[ "$sanitized_memory" -gt 3000 ]]; then + echo medium + elif [[ "$sanitized_memory" -gt 1500 ]]; then + echo small + else + echo micro + fi +} + +######################## +# Get machine size depending on specified memory +# Globals: +# None +# Arguments: +# $1 - memory size (optional) +# Returns: +# Detected instance size +######################### +get_supported_machine_sizes() { + echo micro small medium large xlarge 2xlarge +} + +######################## +# Convert memory size from string to amount of megabytes (i.e. 2G -> 2048) +# Globals: +# None +# Arguments: +# $1 - memory size +# Returns: +# Result of the conversion +######################### +convert_to_mb() { + local amount="${1:-}" + if [[ $amount =~ ^([0-9]+)(m|M|g|G) ]]; then + size="${BASH_REMATCH[1]}" + unit="${BASH_REMATCH[2]}" + if [[ "$unit" = "g" || "$unit" = "G" ]]; then + amount="$((size * 1024))" + else + amount="$size" + fi + fi + echo "$amount" +} + +######################### +# Redirects output to /dev/null if debug mode is disabled +# Globals: +# BITNAMI_DEBUG +# Arguments: +# $@ - Command to execute +# Returns: +# None +######################### +debug_execute() { + if is_boolean_yes "${BITNAMI_DEBUG:-false}"; then + "$@" + else + "$@" >/dev/null 2>&1 + fi +} + +######################## +# Retries a command a given number of times +# Arguments: +# $1 - cmd (as a string) +# $2 - max retries. Default: 12 +# $3 - sleep between retries (in seconds). Default: 5 +# Returns: +# Boolean +######################### +retry_while() { + local cmd="${1:?cmd is missing}" + local retries="${2:-12}" + local sleep_time="${3:-5}" + local return_value=1 + + read -r -a command <<<"$cmd" + for ((i = 1; i <= retries; i += 1)); do + "${command[@]}" && return_value=0 && break + sleep "$sleep_time" + done + return $return_value +} + +######################## +# Generate a random string +# Arguments: +# -t|--type - String type (ascii, alphanumeric, numeric), defaults to ascii +# -c|--count - Number of characters, defaults to 32 +# Arguments: +# None +# Returns: +# None +# Returns: +# String +######################### +generate_random_string() { + local type="ascii" + local count="32" + local filter + local result + # Validate arguments + while [[ "$#" -gt 0 ]]; do + case "$1" in + -t | --type) + shift + type="$1" + ;; + -c | --count) + shift + count="$1" + ;; + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + # Validate type + case "$type" in + ascii) + filter="[:print:]" + ;; + alphanumeric) + filter="a-zA-Z0-9" + ;; + numeric) + filter="0-9" + ;; + *) + echo "Invalid type ${type}" >&2 + return 1 + ;; + esac + # Obtain count + 10 lines from /dev/urandom to ensure that the resulting string has the expected size + # Note there is a very small chance of strings starting with EOL character + # Therefore, the higher amount of lines read, this will happen less frequently + result="$(head -n "$((count + 10))" /dev/urandom | tr -dc "$filter" | head -c "$count")" + echo "$result" +} + +######################## +# Create md5 hash from a string +# Arguments: +# $1 - string +# Returns: +# md5 hash - string +######################### +generate_md5_hash() { + local -r str="${1:?missing input string}" + echo -n "$str" | md5sum | awk '{print $1}' +} + +######################## +# Create sha1 hash from a string +# Arguments: +# $1 - string +# $2 - algorithm - 1 (default), 224, 256, 384, 512 +# Returns: +# sha1 hash - string +######################### +generate_sha_hash() { + local -r str="${1:?missing input string}" + local -r algorithm="${2:-1}" + echo -n "$str" | "sha${algorithm}sum" | awk '{print $1}' +} + +######################## +# Converts a string to its hexadecimal representation +# Arguments: +# $1 - string +# Returns: +# hexadecimal representation of the string +######################### +convert_to_hex() { + local -r str=${1:?missing input string} + local -i iterator + local char + for ((iterator = 0; iterator < ${#str}; iterator++)); do + char=${str:iterator:1} + printf '%x' "'${char}" + done +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libpersistence.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libpersistence.sh new file mode 100644 index 00000000..99df6968 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libpersistence.sh @@ -0,0 +1,122 @@ +#!/bin/bash +# +# Bitnami persistence library +# Used for bringing persistence capabilities to applications that don't have clear separation of data and logic + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/libfs.sh +. /opt/bitnami/scripts/libos.sh +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libversion.sh + +# Functions + +######################## +# Persist an application directory +# Globals: +# BITNAMI_ROOT_DIR +# BITNAMI_VOLUME_DIR +# Arguments: +# $1 - App folder name +# $2 - List of app files to persist +# Returns: +# true if all steps succeeded, false otherwise +######################### +persist_app() { + local -r app="${1:?missing app}" + local -a files_to_restore + read -r -a files_to_persist <<< "$(tr ',;:' ' ' <<< "$2")" + local -r install_dir="${BITNAMI_ROOT_DIR}/${app}" + local -r persist_dir="${BITNAMI_VOLUME_DIR}/${app}" + # Persist the individual files + if [[ "${#files_to_persist[@]}" -le 0 ]]; then + warn "No files are configured to be persisted" + return + fi + pushd "$install_dir" >/dev/null || exit + local file_to_persist_relative file_to_persist_destination file_to_persist_destination_folder + local -r tmp_file="/tmp/perms.acl" + for file_to_persist in "${files_to_persist[@]}"; do + if [[ ! -f "$file_to_persist" && ! -d "$file_to_persist" ]]; then + error "Cannot persist '${file_to_persist}' because it does not exist" + return 1 + fi + file_to_persist_relative="$(relativize "$file_to_persist" "$install_dir")" + file_to_persist_destination="${persist_dir}/${file_to_persist_relative}" + file_to_persist_destination_folder="$(dirname "$file_to_persist_destination")" + # Get original permissions for existing files, which will be applied later + # Exclude the root directory with 'sed', to avoid issues when copying the entirety of it to a volume + getfacl -R "$file_to_persist_relative" | sed -E '/# file: (\..+|[^.])/,$!d' > "$tmp_file" + # Copy directories to the volume + ensure_dir_exists "$file_to_persist_destination_folder" + cp -Lr --preserve=links "$file_to_persist_relative" "$file_to_persist_destination_folder" + # Restore permissions + pushd "$persist_dir" >/dev/null || exit + if am_i_root; then + setfacl --restore="$tmp_file" + else + # When running as non-root, don't change ownership + setfacl --restore=<(grep -E -v '^# (owner|group):' "$tmp_file") + fi + popd >/dev/null || exit + done + popd >/dev/null || exit + rm -f "$tmp_file" + # Install the persisted files into the installation directory, via symlinks + restore_persisted_app "$@" +} + +######################## +# Restore a persisted application directory +# Globals: +# BITNAMI_ROOT_DIR +# BITNAMI_VOLUME_DIR +# FORCE_MAJOR_UPGRADE +# Arguments: +# $1 - App folder name +# $2 - List of app files to restore +# Returns: +# true if all steps succeeded, false otherwise +######################### +restore_persisted_app() { + local -r app="${1:?missing app}" + local -a files_to_restore + read -r -a files_to_restore <<< "$(tr ',;:' ' ' <<< "$2")" + local -r install_dir="${BITNAMI_ROOT_DIR}/${app}" + local -r persist_dir="${BITNAMI_VOLUME_DIR}/${app}" + # Restore the individual persisted files + if [[ "${#files_to_restore[@]}" -le 0 ]]; then + warn "No persisted files are configured to be restored" + return + fi + local file_to_restore_relative file_to_restore_origin file_to_restore_destination + for file_to_restore in "${files_to_restore[@]}"; do + file_to_restore_relative="$(relativize "$file_to_restore" "$install_dir")" + # We use 'realpath --no-symlinks' to ensure that the case of '.' is covered and the directory is removed + file_to_restore_origin="$(realpath --no-symlinks "${install_dir}/${file_to_restore_relative}")" + file_to_restore_destination="$(realpath --no-symlinks "${persist_dir}/${file_to_restore_relative}")" + rm -rf "$file_to_restore_origin" + ln -sfn "$file_to_restore_destination" "$file_to_restore_origin" + done +} + +######################## +# Check if an application directory was already persisted +# Globals: +# BITNAMI_VOLUME_DIR +# Arguments: +# $1 - App folder name +# Returns: +# true if all steps succeeded, false otherwise +######################### +is_app_initialized() { + local -r app="${1:?missing app}" + local -r persist_dir="${BITNAMI_VOLUME_DIR}/${app}" + if ! is_mounted_dir_empty "$persist_dir"; then + true + else + false + fi +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libservice.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libservice.sh new file mode 100644 index 00000000..a713bd10 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libservice.sh @@ -0,0 +1,273 @@ +#!/bin/bash +# +# Library for managing services + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/libvalidations.sh +. /opt/bitnami/scripts/liblog.sh + +# Functions + +######################## +# Read the provided pid file and returns a PID +# Arguments: +# $1 - Pid file +# Returns: +# PID +######################### +get_pid_from_file() { + local pid_file="${1:?pid file is missing}" + + if [[ -f "$pid_file" ]]; then + if [[ -n "$(< "$pid_file")" ]] && [[ "$(< "$pid_file")" -gt 0 ]]; then + echo "$(< "$pid_file")" + fi + fi +} + +######################## +# Check if a provided PID corresponds to a running service +# Arguments: +# $1 - PID +# Returns: +# Boolean +######################### +is_service_running() { + local pid="${1:?pid is missing}" + + kill -0 "$pid" 2>/dev/null +} + +######################## +# Stop a service by sending a termination signal to its pid +# Arguments: +# $1 - Pid file +# $2 - Signal number (optional) +# Returns: +# None +######################### +stop_service_using_pid() { + local pid_file="${1:?pid file is missing}" + local signal="${2:-}" + local pid + + pid="$(get_pid_from_file "$pid_file")" + [[ -z "$pid" ]] || ! is_service_running "$pid" && return + + if [[ -n "$signal" ]]; then + kill "-${signal}" "$pid" + else + kill "$pid" + fi + + local counter=10 + while [[ "$counter" -ne 0 ]] && is_service_running "$pid"; do + sleep 1 + counter=$((counter - 1)) + done +} + +######################## +# Start cron daemon +# Arguments: +# None +# Returns: +# true if started correctly, false otherwise +######################### +cron_start() { + if [[ -x "/usr/sbin/cron" ]]; then + /usr/sbin/cron + elif [[ -x "/usr/sbin/crond" ]]; then + /usr/sbin/crond + else + false + fi +} + +######################## +# Generate a cron configuration file for a given service +# Arguments: +# $1 - Service name +# $2 - Command +# Flags: +# --run-as - User to run as (default: root) +# --schedule - Cron schedule configuration (default: * * * * *) +# Returns: +# None +######################### +generate_cron_conf() { + local service_name="${1:?service name is missing}" + local cmd="${2:?command is missing}" + local run_as="root" + local schedule="* * * * *" + local clean="true" + + local clean="true" + + # Parse optional CLI flags + shift 2 + while [[ "$#" -gt 0 ]]; do + case "$1" in + --run-as) + shift + run_as="$1" + ;; + --schedule) + shift + schedule="$1" + ;; + --no-clean) + clean="false" + ;; + *) + echo "Invalid command line flag ${1}" >&2 + return 1 + ;; + esac + shift + done + + mkdir -p /etc/cron.d + if "$clean"; then + echo "${schedule} ${run_as} ${cmd}" > /etc/cron.d/"$service_name" + else + echo "${schedule} ${run_as} ${cmd}" >> /etc/cron.d/"$service_name" + fi +} + +######################## +# Remove a cron configuration file for a given service +# Arguments: +# $1 - Service name +# Returns: +# None +######################### +remove_cron_conf() { + local service_name="${1:?service name is missing}" + local cron_conf_dir="/etc/monit/conf.d" + rm -f "${cron_conf_dir}/${service_name}" +} + +######################## +# Generate a monit configuration file for a given service +# Arguments: +# $1 - Service name +# $2 - Pid file +# $3 - Start command +# $4 - Stop command +# Flags: +# --disable - Whether to disable the monit configuration +# Returns: +# None +######################### +generate_monit_conf() { + local service_name="${1:?service name is missing}" + local pid_file="${2:?pid file is missing}" + local start_command="${3:?start command is missing}" + local stop_command="${4:?stop command is missing}" + local monit_conf_dir="/etc/monit/conf.d" + local disabled="no" + + # Parse optional CLI flags + shift 4 + while [[ "$#" -gt 0 ]]; do + case "$1" in + --disable) + disabled="yes" + ;; + *) + echo "Invalid command line flag ${1}" >&2 + return 1 + ;; + esac + shift + done + + is_boolean_yes "$disabled" && conf_suffix=".disabled" + mkdir -p "$monit_conf_dir" + cat >"${monit_conf_dir}/${service_name}.conf${conf_suffix:-}" <&2 + return 1 + ;; + esac + shift + done + + mkdir -p "$logrotate_conf_dir" + cat <"${logrotate_conf_dir}/${service_name}" +${log_path} { + ${period} + rotate ${rotations} + dateext + compress + copytruncate + missingok +$(indent "$extra" 2) +} +EOF +} + +######################## +# Remove a logrotate configuration file +# Arguments: +# $1 - Service name +# Returns: +# None +######################### +remove_logrotate_conf() { + local service_name="${1:?service name is missing}" + local logrotate_conf_dir="/etc/logrotate.d" + rm -f "${logrotate_conf_dir}/${service_name}" +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libvalidations.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libvalidations.sh new file mode 100644 index 00000000..2d7aaa94 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libvalidations.sh @@ -0,0 +1,264 @@ +#!/bin/bash +# +# Validation functions library + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/liblog.sh + +# Functions + +######################## +# Check if the provided argument is an integer +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_int() { + local -r int="${1:?missing value}" + if [[ "$int" =~ ^-?[0-9]+ ]]; then + true + else + false + fi +} + +######################## +# Check if the provided argument is a positive integer +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_positive_int() { + local -r int="${1:?missing value}" + if is_int "$int" && (( "${int}" >= 0 )); then + true + else + false + fi +} + +######################## +# Check if the provided argument is a boolean or is the string 'yes/true' +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_boolean_yes() { + local -r bool="${1:-}" + # comparison is performed without regard to the case of alphabetic characters + shopt -s nocasematch + if [[ "$bool" = 1 || "$bool" =~ ^(yes|true)$ ]]; then + true + else + false + fi +} + +######################## +# Check if the provided argument is a boolean yes/no value +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_yes_no_value() { + local -r bool="${1:-}" + if [[ "$bool" =~ ^(yes|no)$ ]]; then + true + else + false + fi +} + +######################## +# Check if the provided argument is a boolean true/false value +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_true_false_value() { + local -r bool="${1:-}" + if [[ "$bool" =~ ^(true|false)$ ]]; then + true + else + false + fi +} + +######################## +# Check if the provided argument is a boolean 1/0 value +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_1_0_value() { + local -r bool="${1:-}" + if [[ "$bool" =~ ^[10]$ ]]; then + true + else + false + fi +} + +######################## +# Check if the provided argument is an empty string or not defined +# Arguments: +# $1 - Value to check +# Returns: +# Boolean +######################### +is_empty_value() { + local -r val="${1:-}" + if [[ -z "$val" ]]; then + true + else + false + fi +} + +######################## +# Validate if the provided argument is a valid port +# Arguments: +# $1 - Port to validate +# Returns: +# Boolean and error message +######################### +validate_port() { + local value + local unprivileged=0 + + # Parse flags + while [[ "$#" -gt 0 ]]; do + case "$1" in + -unprivileged) + unprivileged=1 + ;; + --) + shift + break + ;; + -*) + stderr_print "unrecognized flag $1" + return 1 + ;; + *) + break + ;; + esac + shift + done + + if [[ "$#" -gt 1 ]]; then + echo "too many arguments provided" + return 2 + elif [[ "$#" -eq 0 ]]; then + stderr_print "missing port argument" + return 1 + else + value=$1 + fi + + if [[ -z "$value" ]]; then + echo "the value is empty" + return 1 + else + if ! is_int "$value"; then + echo "value is not an integer" + return 2 + elif [[ "$value" -lt 0 ]]; then + echo "negative value provided" + return 2 + elif [[ "$value" -gt 65535 ]]; then + echo "requested port is greater than 65535" + return 2 + elif [[ "$unprivileged" = 1 && "$value" -lt 1024 ]]; then + echo "privileged port requested" + return 3 + fi + fi +} + +######################## +# Validate if the provided argument is a valid IPv4 address +# Arguments: +# $1 - IP to validate +# Returns: +# Boolean +######################### +validate_ipv4() { + local ip="${1:?ip is missing}" + local stat=1 + + if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then + read -r -a ip_array <<< "$(tr '.' ' ' <<< "$ip")" + [[ ${ip_array[0]} -le 255 && ${ip_array[1]} -le 255 \ + && ${ip_array[2]} -le 255 && ${ip_array[3]} -le 255 ]] + stat=$? + fi + return $stat +} + +######################## +# Validate a string format +# Arguments: +# $1 - String to validate +# Returns: +# Boolean +######################### +validate_string() { + local string + local min_length=-1 + local max_length=-1 + + # Parse flags + while [ "$#" -gt 0 ]; do + case "$1" in + -min-length) + shift + min_length=${1:-} + ;; + -max-length) + shift + max_length=${1:-} + ;; + --) + shift + break + ;; + -*) + stderr_print "unrecognized flag $1" + return 1 + ;; + *) + break + ;; + esac + shift + done + + if [ "$#" -gt 1 ]; then + stderr_print "too many arguments provided" + return 2 + elif [ "$#" -eq 0 ]; then + stderr_print "missing string" + return 1 + else + string=$1 + fi + + if [[ "$min_length" -ge 0 ]] && [[ "${#string}" -lt "$min_length" ]]; then + echo "string length is less than $min_length" + return 1 + fi + if [[ "$max_length" -ge 0 ]] && [[ "${#string}" -gt "$max_length" ]]; then + echo "string length is great than $max_length" + return 1 + fi +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libversion.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libversion.sh new file mode 100644 index 00000000..f3bc7568 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libversion.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# +# Library for managing versions strings + +# shellcheck disable=SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/liblog.sh + +# Functions +######################## +# Gets semantic version +# Arguments: +# $1 - version: string to extract major.minor.patch +# $2 - section: 1 to extract major, 2 to extract minor, 3 to extract patch +# Returns: +# array with the major, minor and release +######################### +get_sematic_version () { + local version="${1:?version is required}" + local section="${2:?section is required}" + local -a version_sections + + #Regex to parse versions: x.y.z + local -r regex='([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?' + + if [[ "$version" =~ $regex ]]; then + local i=1 + local j=1 + local n=${#BASH_REMATCH[*]} + + while [[ $i -lt $n ]]; do + if [[ -n "${BASH_REMATCH[$i]}" ]] && [[ "${BASH_REMATCH[$i]:0:1}" != '.' ]]; then + version_sections[$j]=${BASH_REMATCH[$i]} + ((j++)) + fi + ((i++)) + done + + local number_regex='^[0-9]+$' + if [[ "$section" =~ $number_regex ]] && (( section > 0 )) && (( section <= 3 )); then + echo "${version_sections[$section]}" + return + else + stderr_print "Section allowed values are: 1, 2, and 3" + return 1 + fi + fi +} diff --git a/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libwebserver.sh b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libwebserver.sh new file mode 100644 index 00000000..818c2158 --- /dev/null +++ b/keycloak-artemis/prebuildfs/opt/bitnami/scripts/libwebserver.sh @@ -0,0 +1,458 @@ +#!/bin/bash +# +# Bitnami web server handler library + +# shellcheck disable=SC1090,SC1091 + +# Load generic libraries +. /opt/bitnami/scripts/liblog.sh + +######################## +# Execute a command (or list of commands) with the web server environment and library loaded +# Globals: +# * +# Arguments: +# None +# Returns: +# None +######################### +web_server_execute() { + local -r web_server="${1:?missing web server}" + shift + # Run program in sub-shell to avoid web server environment getting loaded when not necessary + ( + . "/opt/bitnami/scripts/lib${web_server}.sh" + . "/opt/bitnami/scripts/${web_server}-env.sh" + "$@" + ) +} + +######################## +# Prints the list of enabled web servers +# Globals: +# None +# Arguments: +# None +# Returns: +# None +######################### +web_server_list() { + local -r -a supported_web_servers=(apache nginx) + local -a existing_web_servers=() + for web_server in "${supported_web_servers[@]}"; do + [[ -f "/opt/bitnami/scripts/${web_server}-env.sh" ]] && existing_web_servers+=("$web_server") + done + echo "${existing_web_servers[@]:-}" +} + +######################## +# Prints the currently-enabled web server type (only one, in order of preference) +# Globals: +# None +# Arguments: +# None +# Returns: +# None +######################### +web_server_type() { + local -a web_servers + read -r -a web_servers <<< "$(web_server_list)" + echo "${web_servers[0]:-}" +} + +######################## +# Validate that a supported web server is configured +# Globals: +# None +# Arguments: +# None +# Returns: +# None +######################### +web_server_validate() { + local error_code=0 + local supported_web_servers=("apache" "nginx") + + # Auxiliary functions + print_validation_error() { + error "$1" + error_code=1 + } + + if [[ -z "$(web_server_type)" || ! " ${supported_web_servers[*]} " == *" $(web_server_type) "* ]]; then + print_validation_error "Could not detect any supported web servers. It must be one of: ${supported_web_servers[*]}" + elif ! web_server_execute "$(web_server_type)" type -t "is_$(web_server_type)_running" >/dev/null; then + print_validation_error "Could not load the $(web_server_type) web server library from /opt/bitnami/scripts. Check that it exists and is readable." + fi + + return "$error_code" +} + +######################## +# Check whether the web server is running +# Globals: +# * +# Arguments: +# None +# Returns: +# true if the web server is running, false otherwise +######################### +is_web_server_running() { + "is_$(web_server_type)_running" +} + +######################## +# Start web server +# Globals: +# * +# Arguments: +# None +# Returns: +# None +######################### +web_server_start() { + info "Starting $(web_server_type) in background" + "${BITNAMI_ROOT_DIR}/scripts/$(web_server_type)/start.sh" +} + +######################## +# Stop web server +# Globals: +# * +# Arguments: +# None +# Returns: +# None +######################### +web_server_stop() { + info "Stopping $(web_server_type)" + "${BITNAMI_ROOT_DIR}/scripts/$(web_server_type)/stop.sh" +} + +######################## +# Restart web server +# Globals: +# * +# Arguments: +# None +# Returns: +# None +######################### +web_server_restart() { + info "Restarting $(web_server_type)" + "${BITNAMI_ROOT_DIR}/scripts/$(web_server_type)/restart.sh" +} + +######################## +# Reload web server +# Globals: +# * +# Arguments: +# None +# Returns: +# None +######################### +web_server_reload() { + "${BITNAMI_ROOT_DIR}/scripts/$(web_server_type)/reload.sh" +} + +######################## +# Ensure a web server application configuration exists (i.e. Apache virtual host format or NGINX server block) +# It serves as a wrapper for the specific web server function +# Globals: +# * +# Arguments: +# $1 - App name +# Flags: +# --type - Application type, which has an effect on which configuration template to use +# --hosts - Host listen addresses +# --server-name - Server name +# --server-aliases - Server aliases +# --allow-remote-connections - Whether to allow remote connections or to require local connections +# --disable - Whether to render server configurations with a .disabled prefix +# --disable-http - Whether to render the app's HTTP server configuration with a .disabled prefix +# --disable-https - Whether to render the app's HTTPS server configuration with a .disabled prefix +# --http-port - HTTP port number +# --https-port - HTTPS port number +# --document-root - Path to document root directory +# Apache-specific flags: +# --apache-additional-configuration - Additional vhost configuration (no default) +# --apache-additional-http-configuration - Additional HTTP vhost configuration (no default) +# --apache-additional-https-configuration - Additional HTTPS vhost configuration (no default) +# --apache-before-vhost-configuration - Configuration to add before the directive (no default) +# --apache-allow-override - Whether to allow .htaccess files (only allowed when --move-htaccess is set to 'no' and type is not defined) +# --apache-extra-directory-configuration - Extra configuration for the document root directory +# --apache-proxy-address - Address where to proxy requests +# --apache-proxy-configuration - Extra configuration for the proxy +# --apache-proxy-http-configuration - Extra configuration for the proxy HTTP vhost +# --apache-proxy-https-configuration - Extra configuration for the proxy HTTPS vhost +# --apache-move-htaccess - Move .htaccess files to a common place so they can be loaded during Apache startup (only allowed when type is not defined) +# NGINX-specific flags: +# --nginx-additional-configuration - Additional server block configuration (no default) +# --nginx-external-configuration - Configuration external to server block (no default) +# Returns: +# true if the configuration was enabled, false otherwise +######################## +ensure_web_server_app_configuration_exists() { + local app="${1:?missing app}" + shift + local -a apache_args nginx_args web_servers args_var + apache_args=("$app") + nginx_args=("$app") + # Validate arguments + while [[ "$#" -gt 0 ]]; do + case "$1" in + # Common flags + --disable \ + | --disable-http \ + | --disable-https \ + ) + apache_args+=("$1") + nginx_args+=("$1") + ;; + --hosts \ + | --server-name \ + | --server-aliases \ + | --type \ + | --allow-remote-connections \ + | --http-port \ + | --https-port \ + | --document-root \ + ) + apache_args+=("$1" "${2:?missing value}") + nginx_args+=("$1" "${2:?missing value}") + shift + ;; + + # Specific Apache flags + --apache-additional-configuration \ + | --apache-additional-http-configuration \ + | --apache-additional-https-configuration \ + | --apache-before-vhost-configuration \ + | --apache-allow-override \ + | --apache-extra-directory-configuration \ + | --apache-proxy-address \ + | --apache-proxy-configuration \ + | --apache-proxy-http-configuration \ + | --apache-proxy-https-configuration \ + | --apache-move-htaccess \ + ) + apache_args+=("${1//apache-/}" "${2:?missing value}") + shift + ;; + + # Specific NGINX flags + --nginx-additional-configuration \ + | --nginx-external-configuration) + nginx_args+=("${1//nginx-/}" "${2:?missing value}") + shift + ;; + + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + read -r -a web_servers <<< "$(web_server_list)" + for web_server in "${web_servers[@]}"; do + args_var="${web_server}_args[@]" + web_server_execute "$web_server" "ensure_${web_server}_app_configuration_exists" "${!args_var}" + done +} + +######################## +# Ensure a web server application configuration does not exist anymore (i.e. Apache virtual host format or NGINX server block) +# It serves as a wrapper for the specific web server function +# Globals: +# * +# Arguments: +# $1 - App name +# Returns: +# true if the configuration was disabled, false otherwise +######################## +ensure_web_server_app_configuration_not_exists() { + local app="${1:?missing app}" + local -a web_servers + read -r -a web_servers <<< "$(web_server_list)" + for web_server in "${web_servers[@]}"; do + web_server_execute "$web_server" "ensure_${web_server}_app_configuration_not_exists" "$app" + done +} + +######################## +# Ensure the web server loads the configuration for an application in a URL prefix +# It serves as a wrapper for the specific web server function +# Globals: +# * +# Arguments: +# $1 - App name +# Flags: +# --allow-remote-connections - Whether to allow remote connections or to require local connections +# --document-root - Path to document root directory +# --prefix - URL prefix from where it will be accessible (i.e. /myapp) +# --type - Application type, which has an effect on what configuration template will be used +# Apache-specific flags: +# --apache-additional-configuration - Additional vhost configuration (no default) +# --apache-allow-override - Whether to allow .htaccess files (only allowed when --move-htaccess is set to 'no') +# --apache-extra-directory-configuration - Extra configuration for the document root directory +# --apache-move-htaccess - Move .htaccess files to a common place so they can be loaded during Apache startup +# NGINX-specific flags: +# --nginx-additional-configuration - Additional server block configuration (no default) +# Returns: +# true if the configuration was enabled, false otherwise +######################## +ensure_web_server_prefix_configuration_exists() { + local app="${1:?missing app}" + shift + local -a apache_args nginx_args web_servers args_var + apache_args=("$app") + nginx_args=("$app") + # Validate arguments + while [[ "$#" -gt 0 ]]; do + case "$1" in + # Common flags + --allow-remote-connections \ + | --document-root \ + | --prefix \ + | --type \ + ) + apache_args+=("$1" "${2:?missing value}") + nginx_args+=("$1" "${2:?missing value}") + shift + ;; + + # Specific Apache flags + --apache-additional-configuration \ + | --apache-allow-override \ + | --apache-extra-directory-configuration \ + | --apache-move-htaccess \ + ) + apache_args+=("${1//apache-/}" "$2") + shift + ;; + + # Specific NGINX flags + --nginx-additional-configuration) + nginx_args+=("${1//nginx-/}" "$2") + shift + ;; + + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + read -r -a web_servers <<< "$(web_server_list)" + for web_server in "${web_servers[@]}"; do + args_var="${web_server}_args[@]" + web_server_execute "$web_server" "ensure_${web_server}_prefix_configuration_exists" "${!args_var}" + done +} + +######################## +# Ensure a web server application configuration is updated with the runtime configuration (i.e. ports) +# It serves as a wrapper for the specific web server function +# Globals: +# * +# Arguments: +# $1 - App name +# Flags: +# --hosts - Host listen addresses +# --server-name - Server name +# --server-aliases - Server aliases +# --enable-http - Enable HTTP app configuration (if not enabled already) +# --enable-https - Enable HTTPS app configuration (if not enabled already) +# --disable-http - Disable HTTP app configuration (if not disabled already) +# --disable-https - Disable HTTPS app configuration (if not disabled already) +# --http-port - HTTP port number +# --https-port - HTTPS port number +# Returns: +# true if the configuration was updated, false otherwise +######################## +web_server_update_app_configuration() { + local app="${1:?missing app}" + shift + local -a args web_servers + args=("$app") + # Validate arguments + while [[ "$#" -gt 0 ]]; do + case "$1" in + # Common flags + --enable-http \ + | --enable-https \ + | --disable-http \ + | --disable-https \ + ) + args+=("$1") + ;; + --hosts \ + | --server-name \ + | --server-aliases \ + | --http-port \ + | --https-port \ + ) + args+=("$1" "${2:?missing value}") + shift + ;; + + *) + echo "Invalid command line flag $1" >&2 + return 1 + ;; + esac + shift + done + read -r -a web_servers <<< "$(web_server_list)" + for web_server in "${web_servers[@]}"; do + web_server_execute "$web_server" "${web_server}_update_app_configuration" "${args[@]}" + done +} + +######################## +# Enable loading page, which shows users that the initialization process is not yet completed +# Globals: +# * +# Arguments: +# None +# Returns: +# None +######################### +web_server_enable_loading_page() { + ensure_web_server_app_configuration_exists "__loading" --hosts "_default_" \ + --apache-additional-configuration " +# Show a HTTP 503 Service Unavailable page by default +RedirectMatch 503 ^/$ +# Show index.html if server is answering with 404 Not Found or 503 Service Unavailable status codes +ErrorDocument 404 /index.html +ErrorDocument 503 /index.html" \ + --nginx-additional-configuration " +# Show a HTTP 503 Service Unavailable page by default +location / { + return 503; +} +# Show index.html if server is answering with 404 Not Found or 503 Service Unavailable status codes +error_page 404 @installing; +error_page 503 @installing; +location @installing { + rewrite ^(.*)$ /index.html break; +}" + web_server_reload +} + +######################## +# Enable loading page, which shows users that the initialization process is not yet completed +# Globals: +# * +# Arguments: +# None +# Returns: +# None +######################### +web_server_disable_install_page() { + ensure_web_server_app_configuration_not_exists "__loading" + web_server_reload +} diff --git a/keycloak-artemis/prebuildfs/usr/sbin/install_packages b/keycloak-artemis/prebuildfs/usr/sbin/install_packages new file mode 100644 index 00000000..c9577647 --- /dev/null +++ b/keycloak-artemis/prebuildfs/usr/sbin/install_packages @@ -0,0 +1,24 @@ +#!/bin/sh +set -e +set -u +export DEBIAN_FRONTEND=noninteractive +n=0 +max=2 +until [ $n -gt $max ]; do + set +e + ( + apt-get update -qq && + apt-get install -y --no-install-recommends "$@" + ) + CODE=$? + set -e + if [ $CODE -eq 0 ]; then + break + fi + if [ $n -eq $max ]; then + exit $CODE + fi + echo "apt failed, retrying" + n=$(($n + 1)) +done +rm -r /var/lib/apt/lists /var/cache/apt/archives diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/java/entrypoint.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/java/entrypoint.sh new file mode 100644 index 00000000..15cf7d18 --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/java/entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +# set -o xtrace # Uncomment this line for debugging purposes + +# Load libraries +. /opt/bitnami/scripts/libbitnami.sh +. /opt/bitnami/scripts/liblog.sh + +print_welcome_page + +echo "" +exec "$@" diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/java/postunpack.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/java/postunpack.sh new file mode 100644 index 00000000..24a5c9bc --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/java/postunpack.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +# set -o xtrace # Uncomment this line for debugging purpose + +# Load libraries +. /opt/bitnami/scripts/libfile.sh +. /opt/bitnami/scripts/liblog.sh + +# +# Java post-unpack operations +# + +# Override default files in the Java security directory. This is used for +# custom base images (with custom CA certificates or block lists is used) + +if ! is_dir_empty "$JAVA_EXTRA_SECURITY_DIR"; then + info "Adding custom CAs to the Java security folder" + cp -Lr "$JAVA_EXTRA_SECURITY_DIR" /opt/bitnami/java/lib/security +fi diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak-env.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak-env.sh new file mode 100644 index 00000000..33eb1783 --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak-env.sh @@ -0,0 +1,162 @@ +#!/bin/bash +# +# Environment configuration for keycloak + +# The values for all environment variables will be set in the below order of precedence +# 1. Custom environment variables defined below after Bitnami defaults +# 2. Constants defined in this file (environment variables with no default), i.e. BITNAMI_ROOT_DIR +# 3. Environment variables overridden via external files using *_FILE variables (see below) +# 4. Environment variables set externally (i.e. current Bash context/Dockerfile/userdata) + +# Load logging library +# shellcheck disable=SC1090,SC1091 +. /opt/bitnami/scripts/liblog.sh + +export BITNAMI_ROOT_DIR="/opt/bitnami" +export BITNAMI_VOLUME_DIR="/bitnami" + +# Logging configuration +export MODULE="${MODULE:-keycloak}" +export BITNAMI_DEBUG="${BITNAMI_DEBUG:-false}" + +# By setting an environment variable matching *_FILE to a file path, the prefixed environment +# variable will be overridden with the value specified in that file +keycloak_env_vars=( + KEYCLOAK_MOUNTED_CONF_DIR + KEYCLOAK_MANAGEMENT_USER + KEYCLOAK_MANAGEMENT_PASSWORD + KEYCLOAK_ADMIN_USER + KEYCLOAK_ADMIN_PASSWORD + KEYCLOAK_HTTP_PORT + KEYCLOAK_HTTPS_PORT + KEYCLOAK_BIND_ADDRESS + KEYCLOAK_FRONTEND_URL + KEYCLOAK_INIT_MAX_RETRIES + KEYCLOAK_CACHE_OWNERS_COUNT + KEYCLOAK_AUTH_CACHE_OWNERS_COUNT + KEYCLOAK_JGROUPS_DISCOVERY_PROTOCOL + KEYCLOAK_JGROUPS_DISCOVERY_PROPERTIES + KEYCLOAK_JGROUPS_TRANSPORT_STACK + KEYCLOAK_EXTRA_ARGS + KEYCLOAK_ENABLE_STATISTICS + KEYCLOAK_ENABLE_TLS + KEYCLOAK_TLS_TRUSTSTORE_FILE + KEYCLOAK_TLS_TRUSTSTORE_PASSWORD + KEYCLOAK_TLS_KEYSTORE_FILE + KEYCLOAK_TLS_KEYSTORE_PASSWORD + KEYCLOAK_LOG_LEVEL + KEYCLOAK_ROOT_LOG_LEVEL + KEYCLOAK_PROXY_ADDRESS_FORWARDING + KEYCLOAK_CREATE_ADMIN_USER + KEYCLOAK_DATABASE_HOST + KEYCLOAK_DATABASE_PORT + KEYCLOAK_DATABASE_USER + KEYCLOAK_DATABASE_NAME + KEYCLOAK_DATABASE_PASSWORD + KEYCLOAK_DATABASE_SCHEMA + KEYCLOAK_JDBC_PARAMS + KEYCLOAK_DAEMON_USER + KEYCLOAK_DAEMON_GROUP + KEYCLOAK_USER + KEYCLOAK_PASSWORD + CACHE_OWNERS_COUNT + CACHE_OWNERS_AUTH_SESSIONS_COUNT + JGROUPS_DISCOVERY_PROTOCOL + JGROUPS_DISCOVERY_PROPERTIES + JGROUPS_TRANSPORT_STACK + PROXY_ADDRESS_FORWARDING + DB_ADDR + DB_PORT + DB_USER + DB_DATABASE + DB_PASSWORD + DB_SCHEMA + JDBC_PARAMS +) +for env_var in "${keycloak_env_vars[@]}"; do + file_env_var="${env_var}_FILE" + if [[ -n "${!file_env_var:-}" ]]; then + if [[ -r "${!file_env_var:-}" ]]; then + export "${env_var}=$(< "${!file_env_var}")" + unset "${file_env_var}" + else + warn "Skipping export of '${env_var}'. '${!file_env_var:-}' is not readable." + fi + fi +done +unset keycloak_env_vars + +# Paths +export BITNAMI_VOLUME_DIR="/bitnami" +export JAVA_HOME="/opt/bitnami/java" +export KEYCLOAK_BASE_DIR="/opt/bitnami/keycloak" +export KEYCLOAK_BIN_DIR="$KEYCLOAK_BASE_DIR/bin" +export KEYCLOAK_STANDALONE_DIR="$KEYCLOAK_BASE_DIR/standalone" +export KEYCLOAK_LOG_DIR="$KEYCLOAK_STANDALONE_DIR/log" +export KEYCLOAK_TMP_DIR="$KEYCLOAK_STANDALONE_DIR/tmp" +export KEYCLOAK_DOMAIN_CONF_DIR="$KEYCLOAK_BASE_DIR/domain/configuration" +export KEYCLOAK_DOMAIN_TMP_DIR="$KEYCLOAK_BASE_DIR/domain/tmp" +export KEYCLOAK_DATA_DIR="$KEYCLOAK_STANDALONE_DIR/data" +export KEYCLOAK_DEPLOYMENTS_DIR="$KEYCLOAK_STANDALONE_DIR/deployments" +export WILDFLY_BASE_DIR="/opt/bitnami/wildfly" +export KEYCLOAK_VOLUME_DIR="/bitnami/keycloak" +export KEYCLOAK_CONF_DIR="$KEYCLOAK_STANDALONE_DIR/configuration" +export KEYCLOAK_MOUNTED_CONF_DIR="${KEYCLOAK_MOUNTED_CONF_DIR:-${KEYCLOAK_VOLUME_DIR}/configuration}" +export KEYCLOAK_INITSCRIPTS_DIR="/docker-entrypoint-initdb.d" +export KEYCLOAK_CONF_FILE="standalone-ha.xml" +export KEYCLOAK_DEFAULT_CONF_FILE="standalone-ha-default.xml" + +# Keycloak configuration +export KEYCLOAK_MANAGEMENT_USER="${KEYCLOAK_MANAGEMENT_USER:-manager}" +export KEYCLOAK_MANAGEMENT_PASSWORD="${KEYCLOAK_MANAGEMENT_PASSWORD:-bitnami1}" +KEYCLOAK_ADMIN_USER="${KEYCLOAK_ADMIN_USER:-"${KEYCLOAK_USER:-}"}" +export KEYCLOAK_ADMIN_USER="${KEYCLOAK_ADMIN_USER:-user}" +KEYCLOAK_ADMIN_PASSWORD="${KEYCLOAK_ADMIN_PASSWORD:-"${KEYCLOAK_PASSWORD:-}"}" +export KEYCLOAK_ADMIN_PASSWORD="${KEYCLOAK_ADMIN_PASSWORD:-bitnami}" +export KEYCLOAK_HTTP_PORT="${KEYCLOAK_HTTP_PORT:-8080}" +export KEYCLOAK_HTTPS_PORT="${KEYCLOAK_HTTPS_PORT:-8443}" +export KEYCLOAK_BIND_ADDRESS="${KEYCLOAK_BIND_ADDRESS:-$(hostname --fqdn)}" +export KEYCLOAK_FRONTEND_URL="${KEYCLOAK_FRONTEND_URL:-}" +export KEYCLOAK_INIT_MAX_RETRIES="${KEYCLOAK_INIT_MAX_RETRIES:-10}" +KEYCLOAK_CACHE_OWNERS_COUNT="${KEYCLOAK_CACHE_OWNERS_COUNT:-"${CACHE_OWNERS_COUNT:-}"}" +export KEYCLOAK_CACHE_OWNERS_COUNT="${KEYCLOAK_CACHE_OWNERS_COUNT:-1}" +KEYCLOAK_AUTH_CACHE_OWNERS_COUNT="${KEYCLOAK_AUTH_CACHE_OWNERS_COUNT:-"${CACHE_OWNERS_AUTH_SESSIONS_COUNT:-}"}" +export KEYCLOAK_AUTH_CACHE_OWNERS_COUNT="${KEYCLOAK_AUTH_CACHE_OWNERS_COUNT:-1}" +KEYCLOAK_JGROUPS_DISCOVERY_PROTOCOL="${KEYCLOAK_JGROUPS_DISCOVERY_PROTOCOL:-"${JGROUPS_DISCOVERY_PROTOCOL:-}"}" +export KEYCLOAK_JGROUPS_DISCOVERY_PROTOCOL="${KEYCLOAK_JGROUPS_DISCOVERY_PROTOCOL:-}" +KEYCLOAK_JGROUPS_DISCOVERY_PROPERTIES="${KEYCLOAK_JGROUPS_DISCOVERY_PROPERTIES:-"${JGROUPS_DISCOVERY_PROPERTIES:-}"}" +export KEYCLOAK_JGROUPS_DISCOVERY_PROPERTIES="${KEYCLOAK_JGROUPS_DISCOVERY_PROPERTIES:-}" +KEYCLOAK_JGROUPS_TRANSPORT_STACK="${KEYCLOAK_JGROUPS_TRANSPORT_STACK:-"${JGROUPS_TRANSPORT_STACK:-}"}" +export KEYCLOAK_JGROUPS_TRANSPORT_STACK="${KEYCLOAK_JGROUPS_TRANSPORT_STACK:-tcp}" +export KEYCLOAK_EXTRA_ARGS="${KEYCLOAK_EXTRA_ARGS:-}" +export KEYCLOAK_ENABLE_STATISTICS="${KEYCLOAK_ENABLE_STATISTICS:-false}" +export KEYCLOAK_ENABLE_TLS="${KEYCLOAK_ENABLE_TLS:-false}" +export KEYCLOAK_TLS_TRUSTSTORE_FILE="${KEYCLOAK_TLS_TRUSTSTORE_FILE:-}" +export KEYCLOAK_TLS_TRUSTSTORE_PASSWORD="${KEYCLOAK_TLS_TRUSTSTORE_PASSWORD:-}" +export KEYCLOAK_TLS_KEYSTORE_FILE="${KEYCLOAK_TLS_KEYSTORE_FILE:-}" +export KEYCLOAK_TLS_KEYSTORE_PASSWORD="${KEYCLOAK_TLS_KEYSTORE_PASSWORD:-}" +export KEYCLOAK_LOG_LEVEL="${KEYCLOAK_LOG_LEVEL:-INFO}" +export KEYCLOAK_ROOT_LOG_LEVEL="${KEYCLOAK_ROOT_LOG_LEVEL:-INFO}" +KEYCLOAK_PROXY_ADDRESS_FORWARDING="${KEYCLOAK_PROXY_ADDRESS_FORWARDING:-"${PROXY_ADDRESS_FORWARDING:-}"}" +export KEYCLOAK_PROXY_ADDRESS_FORWARDING="${KEYCLOAK_PROXY_ADDRESS_FORWARDING:-false}" +export KEYCLOAK_CREATE_ADMIN_USER="${KEYCLOAK_CREATE_ADMIN_USER:-true}" +KEYCLOAK_DATABASE_HOST="${KEYCLOAK_DATABASE_HOST:-"${DB_ADDR:-}"}" +export KEYCLOAK_DATABASE_HOST="${KEYCLOAK_DATABASE_HOST:-postgresql}" +KEYCLOAK_DATABASE_PORT="${KEYCLOAK_DATABASE_PORT:-"${DB_PORT:-}"}" +export KEYCLOAK_DATABASE_PORT="${KEYCLOAK_DATABASE_PORT:-5432}" +KEYCLOAK_DATABASE_USER="${KEYCLOAK_DATABASE_USER:-"${DB_USER:-}"}" +export KEYCLOAK_DATABASE_USER="${KEYCLOAK_DATABASE_USER:-bn_keycloak}" +KEYCLOAK_DATABASE_NAME="${KEYCLOAK_DATABASE_NAME:-"${DB_DATABASE:-}"}" +export KEYCLOAK_DATABASE_NAME="${KEYCLOAK_DATABASE_NAME:-bitnami_keycloak}" +KEYCLOAK_DATABASE_PASSWORD="${KEYCLOAK_DATABASE_PASSWORD:-"${DB_PASSWORD:-}"}" +export KEYCLOAK_DATABASE_PASSWORD="${KEYCLOAK_DATABASE_PASSWORD:-}" +KEYCLOAK_DATABASE_SCHEMA="${KEYCLOAK_DATABASE_SCHEMA:-"${DB_SCHEMA:-}"}" +export KEYCLOAK_DATABASE_SCHEMA="${KEYCLOAK_DATABASE_SCHEMA:-public}" +KEYCLOAK_JDBC_PARAMS="${KEYCLOAK_JDBC_PARAMS:-"${JDBC_PARAMS:-}"}" +export KEYCLOAK_JDBC_PARAMS="${KEYCLOAK_JDBC_PARAMS:-}" + +# System users (when running with a privileged user) +export KEYCLOAK_DAEMON_USER="${KEYCLOAK_DAEMON_USER:-keycloak}" +export KEYCLOAK_DAEMON_GROUP="${KEYCLOAK_DAEMON_GROUP:-keycloak}" + +# Custom environment variables may be defined below diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh new file mode 100644 index 00000000..5036f17d --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/entrypoint.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +#set -o xtrace # Uncomment this line for debugging purposes + +# Load libraries +. /opt/bitnami/scripts/libbitnami.sh +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libkeycloak.sh + +# Load keycloak environment variables +. /opt/bitnami/scripts/keycloak-env.sh + +print_welcome_page + +if [[ "$*" = *"/opt/bitnami/scripts/keycloak/run.sh"* ]]; then + info "** Starting keycloak setup **" + /opt/bitnami/scripts/keycloak/setup.sh + info "** keycloak setup finished! **" +fi + +echo "" +exec "$@" diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh new file mode 100644 index 00000000..9a042ab6 --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/postunpack.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +# set -o xtrace # Uncomment this line for debugging purpose + +# Load libraries +. /opt/bitnami/scripts/libkeycloak.sh +. /opt/bitnami/scripts/libfs.sh +. /opt/bitnami/scripts/libos.sh + +# Load keycloak environment variables +. /opt/bitnami/scripts/keycloak-env.sh + +for dir in "$KEYCLOAK_LOG_DIR" "$KEYCLOAK_TMP_DIR" "$KEYCLOAK_VOLUME_DIR" "$KEYCLOAK_DATA_DIR" "$KEYCLOAK_CONF_DIR" "$KEYCLOAK_INITSCRIPTS_DIR" "$KEYCLOAK_DEPLOYMENTS_DIR" "$KEYCLOAK_DOMAIN_TMP_DIR" "$KEYCLOAK_DOMAIN_CONF_DIR" "${KEYCLOAK_BASE_DIR}/.installation"; do + ensure_dir_exists "$dir" + chmod -R g+rwX "$dir" +done + +cp "$KEYCLOAK_CONF_DIR"/"$KEYCLOAK_CONF_FILE" "$KEYCLOAK_CONF_DIR"/"$KEYCLOAK_DEFAULT_CONF_FILE" +keycloak_clean_from_restart diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/run.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/run.sh new file mode 100644 index 00000000..c18b17eb --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/run.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +# set -o xtrace # Uncomment this line for debugging purpose + +# Load libraries +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libkeycloak.sh +. /opt/bitnami/scripts/libos.sh + +# Load keycloak environment variables +. /opt/bitnami/scripts/keycloak-env.sh + +info "** Starting keycloak **" +# Use only basename +conf_file="$(basename "$KEYCLOAK_CONF_FILE")" +start_command=("${KEYCLOAK_BIN_DIR}/standalone.sh" "-Djboss.bind.address=${KEYCLOAK_BIND_ADDRESS}" "-Djboss.bind.address.private=${KEYCLOAK_BIND_ADDRESS}" "-Dkeycloak.hostname.fixed.httpPort=${KEYCLOAK_HTTP_PORT}" "-c=${conf_file}" -b "0.0.0.0") +is_boolean_yes "$KEYCLOAK_ENABLE_TLS" && start_command=("${start_command[@]}" "-Dkeycloak.hostname.fixed.httpsPort=${KEYCLOAK_HTTPS_PORT}") +is_boolean_yes "$KEYCLOAK_ENABLE_STATISTICS" && start_command=("${start_command[@]}" "-Djboss.bind.address.management=0.0.0.0") +! is_empty_value "$KEYCLOAK_FRONTEND_URL" && start_command=("${start_command[@]}" "-Dkeycloak.frontendUrl=${KEYCLOAK_FRONTEND_URL}") +# Add extra args +if [[ -n "$KEYCLOAK_EXTRA_ARGS" ]]; then + read -r -a extra_args <<<"$KEYCLOAK_EXTRA_ARGS" + start_command+=("${extra_args[@]}") +fi + +if am_i_root; then + exec gosu "$KEYCLOAK_DAEMON_USER" "${start_command[@]}" +else + exec "${start_command[@]}" +fi diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/setup.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/setup.sh new file mode 100644 index 00000000..719210f4 --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/keycloak/setup.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +# shellcheck disable=SC1091 + +set -o errexit +set -o nounset +set -o pipefail +# set -o xtrace # Uncomment this line for debugging purpose + +# Load libraries +. /opt/bitnami/scripts/libkeycloak.sh + +# Load keycloak environment variables +. /opt/bitnami/scripts/keycloak-env.sh + +# Ensure keycloak environment variables are valid +keycloak_validate + +# Ensure 'daemon' user exists when running as 'root' +am_i_root && ensure_user_exists "$KEYCLOAK_DAEMON_USER" --group "$KEYCLOAK_DAEMON_GROUP" + +# Ensure keycloak is initialized +keycloak_initialize + +# keycloak init scripts +keycloak_custom_init_scripts diff --git a/keycloak-artemis/rootfs/opt/bitnami/scripts/libkeycloak.sh b/keycloak-artemis/rootfs/opt/bitnami/scripts/libkeycloak.sh new file mode 100644 index 00000000..727ac904 --- /dev/null +++ b/keycloak-artemis/rootfs/opt/bitnami/scripts/libkeycloak.sh @@ -0,0 +1,439 @@ +#!/bin/bash +# +# Bitnami Keycloak library + +# shellcheck disable=SC1090,SC1091 + +# Load Generic Libraries +. /opt/bitnami/scripts/libfs.sh +. /opt/bitnami/scripts/liblog.sh +. /opt/bitnami/scripts/libnet.sh +. /opt/bitnami/scripts/libos.sh +. /opt/bitnami/scripts/libvalidations.sh + +######################## +# Validate settings in KEYCLOAK_* env. variables +# Globals: +# KEYCLOAK_* +# Arguments: +# None +# Returns: +# None +######################### +keycloak_validate() { + info "Validating settings in KEYCLOAK_* env vars..." + local error_code=0 + + # Auxiliary functions + print_validation_error() { + error "$1" + error_code=1 + } + + check_allowed_port() { + local port_var="${1:?missing port variable}" + local -a validate_port_args=() + ! am_i_root && validate_port_args+=("-unprivileged") + validate_port_args+=("${!port_var}") + if ! err=$(validate_port "${validate_port_args[@]}"); then + print_validation_error "An invalid port was specified in the environment variable ${port_var}: ${err}." + fi + } + + if is_boolean_yes "$KEYCLOAK_ENABLE_TLS"; then + if is_empty_value "$KEYCLOAK_TLS_TRUSTSTORE_FILE"; then + print_validation_error "Path to the TLS truststore file not defined. Please set the KEYCLOAK_TLS_TRUSTSTORE_FILE variable to the mounted truststore" + fi + if is_empty_value "$KEYCLOAK_TLS_KEYSTORE_FILE"; then + print_validation_error "Path to the TLS keystore file not defined. Please set the KEYCLOAK_TLS_KEYSTORE_FILE variable to the mounted keystore" + fi + fi + + if ! validate_ipv4 "${KEYCLOAK_BIND_ADDRESS}"; then + if ! is_hostname_resolved "${KEYCLOAK_BIND_ADDRESS}"; then + print_validation_error print_validation_error "The value for KEYCLOAK_BIND_ADDRESS ($KEYCLOAK_BIND_ADDRESS) should be an IPv4 address or it must be a resolvable hostname" + fi + fi + + if ! is_empty_value "$KEYCLOAK_JGROUPS_DISCOVERY_PROTOCOL" && is_empty_value "$KEYCLOAK_JGROUPS_TRANSPORT_STACK"; then + print_validation_error "jgroups discovery protocol configured but transport stack not set. Please set the KEYCLOAK_JGROUPS_TRANSPORT_STACK variable with the proper stack" + fi + + if [[ "$KEYCLOAK_HTTP_PORT" -eq "$KEYCLOAK_HTTPS_PORT" ]]; then + print_validation_error "KEYCLOAK_HTTP_PORT and KEYCLOAK_HTTPS_PORT are bound to the same port!" + fi + check_allowed_port KEYCLOAK_HTTP_PORT + check_allowed_port KEYCLOAK_HTTPS_PORT + + for var in KEYCLOAK_CREATE_ADMIN_USER KEYCLOAK_ENABLE_TLS KEYCLOAK_ENABLE_STATISTICS; do + if ! is_true_false_value "${!var}"; then + print_validation_error "The allowed values for $var are [true, false]" + fi + done + + for var in KEYCLOAK_INIT_MAX_RETRIES KEYCLOAK_CACHE_OWNERS_COUNT KEYCLOAK_AUTH_CACHE_OWNERS_COUNT; do + if ! is_positive_int "${!var}"; then + print_validation_error "The variable $var must be positive integer" + fi + done + + [[ "$error_code" -eq 0 ]] || exit "$error_code" +} + +######################## +# Configure database settings using JBoss CLI +# Globals: +# KEYCLOAK_* +# Arguments: +# None +# Returns: +# None +######################### +keycloak_configure_database() { + # Prepare JDBC Params if set - add '?' at the beginning if the value is not empty and doesn't start with '?' + local jdbc_params + jdbc_params="$(echo "$KEYCLOAK_JDBC_PARAMS" | sed -E '/^$|^\?+.*$/!s/^/?/')" + + info "Configuring database settings" + debug_execute jboss-cli.sh < ${KEYCLOAK_TLS_TRUSTSTORE_FILE}, password => ${KEYCLOAK_TLS_TRUSTSTORE_PASSWORD}, hostname-verification-policy => "WILDCARD", disabled => "false"}) +run-batch +stop-embedded-server +EOF +} + +######################## +# Configure logging settings using JBoss CLI +# Globals: +# KEYCLOAK_* +# Arguments: +# None +# Returns: +# None +######################### +keycloak_configure_loglevel() { + info "Configuring log level" + debug_execute jboss-cli.sh <"$tmp_file" + while read -r f; do + case "$f" in + *.sh) + if [[ -x "$f" ]]; then + debug "Executing $f" + "$f" + else + debug "Sourcing $f" + . "$f" + fi + ;; + *) debug "Ignoring $f" ;; + esac + done <$tmp_file + rm -f "$tmp_file" + touch "$KEYCLOAK_VOLUME_DIR"/.user_scripts_initialized + fi +} diff --git a/keycloak-artemis/standalone/deployments/spi-keycloak.jar b/keycloak-artemis/standalone/deployments/spi-keycloak.jar new file mode 100644 index 0000000000000000000000000000000000000000..eaee3fa42017c95ffd264496c97ba6f670bcf455 GIT binary patch literal 6235 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 literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/base/account/theme.properties b/keycloak-artemis/theme/base/account/theme.properties new file mode 100644 index 00000000..1f7d337b --- /dev/null +++ b/keycloak-artemis/theme/base/account/theme.properties @@ -0,0 +1 @@ +locales=ca,de,eng,es,fra,it,ja,lt,nl,no,pl,pt-BR,ru,sk,sv,tr,zh-CN,ara,hin,kan,tam diff --git a/keycloak-artemis/theme/base/email/theme.properties b/keycloak-artemis/theme/base/email/theme.properties new file mode 100644 index 00000000..1f7d337b --- /dev/null +++ b/keycloak-artemis/theme/base/email/theme.properties @@ -0,0 +1 @@ +locales=ca,de,eng,es,fra,it,ja,lt,nl,no,pl,pt-BR,ru,sk,sv,tr,zh-CN,ara,hin,kan,tam diff --git a/keycloak-artemis/theme/base/login/messages/messages_ara.properties b/keycloak-artemis/theme/base/login/messages/messages_ara.properties new file mode 100644 index 00000000..d6a91687 --- /dev/null +++ b/keycloak-artemis/theme/base/login/messages/messages_ara.properties @@ -0,0 +1,327 @@ +# encoding: utf-8 +doLogIn=تسجيل الدخول +doRegister=登録 +doCancel=キャンセル +doSubmit=送信 +doYes=はい +doNo=いいえ +doContinue=続ける +doIgnore=無視 +doAccept=承諾 +doDecline=却下 +doForgotPassword=パスワードをお忘れですか? +doClickHere=クリックしてください +doImpersonate=代理ログイン +kerberosNotConfigured=Kerberos は設定されていません +kerberosNotConfiguredTitle=Kerberos は設定されていません +bypassKerberosDetail=Kerberos 経由でログインしていないか、ブラウザーで Kerberos ログインの設定がされていません。他の手段でログインするには 「続ける」 をクリックしてください。 +kerberosNotSetUp=Kerberos が設定されていません。ログインできません。 +registerTitle=登録 +loginTitle={0} تسجيل الدخول إلى +loginTitleHtml={0} +impersonateTitle={0} ユーザーの代理 +impersonateTitleHtml={0} ユーザーの代理 +realmChoice=レルム +unknownUser=不明なユーザー +loginTotpTitle=モバイル Authenticator セットアップ +loginProfileTitle=アカウント情報の更新 +loginTimeout=انتهت مهلة محاولة تسجيل الدخول الخاصة بك. سيبدأ تسجيل الدخول من البداية. +oauthGrantTitle={0}へのアクセスを許可 +oauthGrantTitleHtml={0} +errorTitle=申し訳ございません +errorTitleHtml=申し訳ございません +emailVerifyTitle=Eメール確認 +emailForgotTitle=パスワードをお忘れですか? +updatePasswordTitle=パスワード更新 +codeSuccessTitle=成功コード +codeErrorTitle=エラーコード\: {0} +displayUnsupported=要求された表示タイプがサポートされていません +browserRequired=ログインに必要なブラウザー +browserContinue=ログインを完了するために必要なブラウザー +browserContinuePrompt=ブラウザーを開いてログインを続行しますか? [y/n]: +browserContinueAnswer=y + + +termsTitle=利用規約 +termsText=

利用規約はここで設定する必要があります

+termsPlainText=定義される利用規約。 + +recaptchaFailed=無効な reCAPTCHA +recaptchaNotConfigured=reCAPTCHA が必須ですが、設定されていません +consentDenied=同意は拒否されました。 + +noAccount=新規ユーザーですか? +username=ユーザー名 +usernameOrEmail=اسم المستخدم أو البريد الالكتروني +firstName=名 +givenName=名 +fullName=氏名 +lastName=姓 +familyName=姓 +email=Eメール +password=كلمه السر +passwordConfirm=パスワード (確認) +passwordNew=新しいパスワード +passwordNewConfirm=新しいパスワード (確認) +rememberMe=ログイン状態の保存 +authenticatorCode=ワンタイムコード +address=住所 +street=番地 +locality=市区町村 +region=都道府県 +postal_code=郵便番号 +country=国 +emailVerified=確認済みEメール +gssDelegationCredential=GSS 代行クレデンシャル + +profileScopeConsentText=ユーザープロフィール +emailScopeConsentText=メールアドレス +addressScopeConsentText=アドレス +phoneScopeConsentText=電話番号 +offlineAccessScopeConsentText=オフラインアクセス +samlRoleListScopeConsentText=ロール +rolesScopeConsentText=ユーザーロール + +loginTotpIntro=このアカウントにアクセスするには、ワンタイムパスワードジェネレーターを設定する必要があります +loginTotpStep1=次のアプリケーションのいずれかをモバイルにインストールしてください +loginTotpStep2=アプリケーションを開き、バーコードをスキャンしてください +loginTotpStep3=アプリケーションで提供されたワンタイムコードを入力して送信をクリックし、セットアップを完了してください。 +loginTotpManualStep2=アプリケーションを開き、キーを入力してください +loginTotpManualStep3=アプリケーションが設定できる場合は、次の設定値を使用してください +loginTotpUnableToScan=スキャンできませんか? +loginTotpScanBarcode=バーコードをスキャンしますか? +loginOtpOneTime=ワンタイムコード +loginTotpType=タイプ +loginTotpAlgorithm=アルゴリズム +loginTotpDigits=桁 +loginTotpInterval=間隔 +loginTotpCounter=カウンター + +loginTotp.totp=時間ベース +loginTotp.hotp=カウンターベース + + +oauthGrantRequest=アクセス権を許可してよろしいでしょうか? +inResource=in + +emailVerifyInstruction1=メールアドレスを確認する手順を記載したEメールを送信しました。 +emailVerifyInstruction2=Eメールで確認コードを受け取っていませんか? +emailVerifyInstruction3=Eメールを再送信します。 + +emailLinkIdpTitle=リンク {0} +emailLinkIdp1={0} の {1} アカウントを あなたの {2} アカウントとリンクするための手順を記載したEメールを送信しました。 +emailLinkIdp2=Eメールで確認コードを受け取っていませんか? +emailLinkIdp3=Eメールを再送信します。 +emailLinkIdp4=別のブラウザーでメールを確認済みの場合 +emailLinkIdp5=続けるには + +backToLogin=« ログインに戻る + +emailInstruction=ユーザー名またメールアドレスを入力してください。新しいパスワードの設定方法をご案内いたします。 + +copyCodeInstruction=このコードをコピーし、あなたのアプリケーションにペーストしてください: + +pageExpiredTitle=ページの有効期限が切れています +pageExpiredMsg1=ログインプロセスを再開するには +pageExpiredMsg2=ログイン処理を続行するには + +personalInfo=個人情報: +role_admin=管理者 +role_realm-admin=レルム管理者 +role_create-realm=レルムの作成 +role_create-client=クライアントの作成 +role_view-realm=レルムの参照 +role_view-users=ユーザーの参照 +role_view-applications=アプリケーションの参照 +role_view-clients=クライアントの参照 +role_view-events=イベントの参照 +role_view-identity-providers=アイデンティティ プロバイダーの参照 +role_manage-realm=レルムの管理 +role_manage-users=ユーザーの管理 +role_manage-applications=アプリケーションの管理 +role_manage-identity-providers=アイデンティティ プロバイダーの管理 +role_manage-clients=クライアントの管理 +role_manage-events=イベントの管理 +role_view-profile=プロフィールの参照 +role_manage-account=アカウントの管理 +role_manage-account-links=アカウントリンクの管理 +role_read-token=トークンの読み取り +role_offline-access=オフラインアクセス +client_account=アカウント +client_security-admin-console=セキュリティ管理コンソール +client_admin-cli=管理 CLI +client_realm-management=レルム管理 +client_broker=ブローカー + +invalidUserMessage=خطأ في اسم المستخدم أو كلمة مرور +invalidEmailMessage=無効なメールアドレスです。 +accountDisabledMessage=アカウントは無効です。管理者に連絡してください。 +accountTemporarilyDisabledMessage=アカウントは一時的に無効です。管理者に連絡、またはしばらく時間をおいてから再度お試しください。 +expiredCodeMessage=ログインタイムアウトが発生しました。再度ログインしてください。 +expiredActionMessage=アクションは期限切れです。今すぐログインしてください。 +expiredActionTokenNoSessionMessage=アクションは期限切れです。 +expiredActionTokenSessionExistsMessage=アクションは期限切れです。もう一度やり直してください。 + +missingFirstNameMessage=名を指定してください。 +missingLastNameMessage=姓を指定してください。 +missingEmailMessage=Eメールを指定してください。 +missingUsernameMessage=ユーザー名を指定してください。 +missingPasswordMessage=رمز مرور خاطئ +missingTotpMessage=Authenticator コードを指定してください。 +notMatchPasswordMessage=パスワードが一致していません。 + +invalidPasswordExistingMessage=間違った既存のパスワードです。 +invalidPasswordBlacklistedMessage=無効なパスワード: パスワードがブラックリストに含まれています。 +invalidPasswordConfirmMessage=パスワード確認が一致していません。 +invalidTotpMessage=間違った Authenticator コードです。 + +usernameExistsMessage=既に存在するユーザー名です。 +emailExistsMessage=既に存在するEメールです。 + +federatedIdentityExistsMessage={0} {1} のユーザーは既に存在します。そのアカウントをリンクするにはアカウント管理にログインしてください。 + +confirmLinkIdpTitle=既に存在するアカウントです。 +federatedIdentityConfirmLinkMessage={0} {1} のユーザーは既に存在します。継続しますか? +#federatedIdentityConfirmReauthenticateMessage={1} でアカウントをリンクするために {0} として認証します +confirmLinkIdpReviewProfile=プロフィールの確認 +confirmLinkIdpContinue=既存のアカウントに追加する + +configureTotpMessage=アカウントを有効にするにはモバイル Authenticator のセットアップが必要です。 +updateProfileMessage=アカウントを有効にするにはユーザープロフィールの更新が必要です。 +updatePasswordMessage=アカウントを有効にするにはパスワードの更新が必要です。 +resetPasswordMessage=パスワードを変更する必要があります。 +verifyEmailMessage=アカウントを有効にするにはメールアドレスの確認が必要です。 +linkIdpMessage=アカウントを {0} とリンクするにはメールアドレスの確認が必要です。 + +emailSentMessage=詳細な手順を記載したEメールをすぐに受信してください。 +emailSendErrorMessage=Eメールの送信に失敗しました。しばらく時間をおいてから再度お試しください。 + +accountUpdatedMessage=アカウントが更新されました。 +accountPasswordUpdatedMessage=パスワードが更新されました。 + +delegationCompleteHeader=ログインに成功しました +delegationCompleteMessage=このブラウザーのウィンドウを閉じて、コンソールアプリケーションに戻ることができます。 +delegationFailedHeader=ログインに失敗しました +delegationFailedMessage=このブラウザーウィンドウを閉じてコンソールアプリケーションに戻り、再度ログインを試みることができます。 + +noAccessMessage=アクセスがありません + +invalidPasswordMinLengthMessage=無効なパスワード: 最小 {0} の長さが必要です。 +invalidPasswordMinDigitsMessage=無効なパスワード: 少なくとも {0} 文字の数字を含む必要があります。 +invalidPasswordMinLowerCaseCharsMessage=無効なパスワード: 少なくとも {0} 文字の小文字を含む必要があります。 +invalidPasswordMinUpperCaseCharsMessage=無効なパスワード: 少なくとも {0} 文字の大文字を含む必要があります。 +invalidPasswordMinSpecialCharsMessage=無効なパスワード: 少なくとも {0} 文字の特殊文字を含む必要があります。 +invalidPasswordNotUsernameMessage=無効なパスワード: ユーザー名と同じパスワードは禁止されています。 +invalidPasswordRegexPatternMessage=無効なパスワード: 正規表現パターンと一致しません。 +invalidPasswordHistoryMessage=無効なパスワード: 最近の {0} パスワードのいずれかと同じパスワードは禁止されています。 +invalidPasswordGenericMessage=無効なパスワード: 新しいパスワードはパスワードポリシーと一致しません。 + +failedToProcessResponseMessage=応答を処理できませんでした +httpsRequiredMessage=HTTPS が必須です +realmNotEnabledMessage=レルムが有効ではありません +invalidRequestMessage=無効なリクエストです +failedLogout=ログアウトに失敗しました +unknownLoginRequesterMessage=不明なログイン要求元です +loginRequesterNotEnabledMessage=ログイン要求元は有効ではありません +bearerOnlyMessage=bearer-only のアプリケーションはブラウザーログインを開始することが許可されていません +standardFlowDisabledMessage=与えられた response_type でクライアントはブラウザーログインを開始することが許可されていません。 Standard Flow は無効です。 +implicitFlowDisabledMessage=与えられた response_type でクライアントはブラウザーログインを開始することが許可されていません。 Implicit Flow は無効です。 +invalidRedirectUriMessage=無効なリダイレクト URI です +unsupportedNameIdFormatMessage=サポートされていない NameID Format です +invalidRequesterMessage=無効な要求元です +registrationNotAllowedMessage=登録は許可されていません +resetCredentialNotAllowedMessage=クレデンシャルのリセットは許可されていません + +permissionNotApprovedMessage=アクセス権は承認されていません。 +noRelayStateInResponseMessage=アイデンティティ プロバイダーからの応答に RelayState がありません。 +insufficientPermissionMessage=アイデンティティにリンクするには不十分なアクセス権です。 +couldNotProceedWithAuthenticationRequestMessage=アイデンティティ プロバイダーに認証要求を続行できませんでした。 +couldNotObtainTokenMessage=アイデンティティ プロバイダーからトークンを取得できませんでした。 +unexpectedErrorRetrievingTokenMessage=アイデンティティ プロバイダーからのトークン取得で予期せぬエラーが発生しました。 +unexpectedErrorHandlingResponseMessage=アイデンティティ プロバイダーからの応答を処理する際に予期せぬエラーが発生しました。 +identityProviderAuthenticationFailedMessage=認証に失敗しました。アイデンティティ プロバイダーを使用して認証できませんでした。 +couldNotSendAuthenticationRequestMessage=アイデンティティ プロバイダーに認証要求を送信することができませんでした。 +unexpectedErrorHandlingRequestMessage=アイデンティティ プロバイダーへの認証要求を処理する際に予期せぬエラーが発生しました。 +invalidAccessCodeMessage=無効なアクセスコードです。 +sessionNotActiveMessage=セッションが有効ではありません。 +invalidCodeMessage=エラーが発生しました。アプリケーションを介して再度ログインしてください。 +identityProviderUnexpectedErrorMessage=アイデンティティ プロバイダーによる認証の際に予期せぬエラーが発生しました +identityProviderNotFoundMessage=該当の識別子を持つアイデンティティ プロバイダーが見つかりませんでした。 +identityProviderLinkSuccess=Eメールを正常に確認しました。元のブラウザーに戻ってログインしてください。 +staleCodeMessage=このページはもはや有効ではありませんので、アプリケーションに戻り再度ログインしてください +realmSupportsNoCredentialsMessage=レルムはクレデンシャルタイプをサポートしていません。 +identityProviderNotUniqueMessage=レルムは複数のアイデンティティ プロバイダーをサポートしています。どのアイデンティティ プロバイダーが認証に使用されるべきか判断できませんでした。 +emailVerifiedMessage=メールアドレスが確認できました。 +staleEmailVerificationLink=クリックしたリンクは古いリンクであり、有効ではありません。すでにメールを確認していませんか? +identityProviderAlreadyLinkedMessage={0}によって返された連携されたアイデンティティは、すでに別のユーザーにリンクされています。 +confirmAccountLinking=アイデンティティプロバイダー{1}のアカウント{0}とあなたのアカウントとのリンクを確認してください。 +confirmEmailAddressVerification=Eメールアドレス{0}の有効性を確認してください。 +confirmExecutionOfActions=次の操作を実行します。 + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=« アプリケーションに戻る +missingParameterMessage=不足パラメータ\: {0} +clientNotFoundMessage=クライアントが見つかりません。 +clientDisabledMessage=クライアントが無効になっています。 +invalidParameterMessage=無効なパラメータ\: {0} +alreadyLoggedIn=既にログインしています。 +differentUserAuthenticated=すでにこのセッションで異なるユーザー''{0}''として認証されています。まずログアウトしてください。 +brokerLinkingSessionExpired=要求されたブローカーアカウントのリンクは、現在のセッションでは有効ではありません。 +proceedWithAction=» 続行するにはここをクリックしてください + +requiredAction.CONFIGURE_TOTP=OTPの設定 +requiredAction.terms_and_conditions=利用規約 +requiredAction.UPDATE_PASSWORD=パスワードの更新 +requiredAction.UPDATE_PROFILE=プロフィールの更新 +requiredAction.VERIFY_EMAIL=Eメールの確認 + +doX509Login=次のユーザーとしてログインします\: +clientCertificate=X509クライアント証明書\: +noCertificate=[証明書なし] + + +pageNotFound=ページが見つかりません +internalServerError=内部サーバーエラーが発生しました + +console-username=ユーザー名: +console-password=パスワード: +console-otp=ワンタイムパスワード: +console-new-password=新しいパスワード: +console-confirm-password=パスワードの確認: +console-update-password=パスワードの更新が必要です。 +console-verify-email=メールアドレスを確認する必要があります。確認コードを含むメールが{0}に送信されました。このコードを以下に入力してください。 +console-email-code=Eメールコード: +console-accept-terms=利用規約に同意しますか? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=ユーザー情報 +openshift.scope.user_check-access=ユーザーアクセス情報 +openshift.scope.user_full=フルアクセス +openshift.scope.list-projects=プロジェクトの一覧表示 + +# SAML authentication +saml.post-form.title=認証リダイレクト +saml.post-form.message=リダイレクトしています。お待ちください。 +saml.post-form.js-disabled=JavaScriptが無効になっています。有効にすることを強くお勧めします。継続するには、下のボタンをクリックしてください。 diff --git a/keycloak-artemis/theme/base/login/messages/messages_eng.properties b/keycloak-artemis/theme/base/login/messages/messages_eng.properties new file mode 100644 index 00000000..62893f74 --- /dev/null +++ b/keycloak-artemis/theme/base/login/messages/messages_eng.properties @@ -0,0 +1,376 @@ +doLogIn=Log In +doRegister=Register +doCancel=Cancel +doSubmit=Submit +doBack=Back +doYes=Yes +doNo=No +doContinue=Continue +doIgnore=Ignore +doAccept=Accept +doDecline=Decline +doForgotPassword=Forgot Password? +doClickHere=Click here +doImpersonate=Impersonate +doTryAgain=Try again +doTryAnotherWay=Try Another Way +kerberosNotConfigured=Kerberos Not Configured +kerberosNotConfiguredTitle=Kerberos Not Configured +bypassKerberosDetail=Either you are not logged in by Kerberos or your browser is not set up for Kerberos login. Please click continue to login in through other means +kerberosNotSetUp=Kerberos is not set up. You cannot login. +registerTitle=Register +loginTitle=Log in to {0} +loginTitleHtml={0} +impersonateTitle={0} Impersonate User +impersonateTitleHtml={0} Impersonate User +realmChoice=Realm +unknownUser=Unknown user +loginTotpTitle=Mobile Authenticator Setup +loginProfileTitle=Update Account Information +loginTimeout=Your login attempt timed out. Login will start from the beginning. +oauthGrantTitle=Grant Access to {0} +oauthGrantTitleHtml={0} +errorTitle=We are sorry... +errorTitleHtml=We are sorry ... +emailVerifyTitle=Email verification +emailForgotTitle=Forgot Your Password? +updatePasswordTitle=Update password +codeSuccessTitle=Success code +codeErrorTitle=Error code\: {0} +displayUnsupported=Requested display type unsupported +browserRequired=Browser required to login +browserContinue=Browser required to complete login +browserContinuePrompt=Open browser and continue login? [y/n]: +browserContinueAnswer=y + + +termsTitle=Terms and Conditions +termsText=

Terms and conditions to be defined

+termsPlainText=Terms and conditions to be defined. + +recaptchaFailed=Invalid Recaptcha +recaptchaNotConfigured=Recaptcha is required, but not configured +consentDenied=Consent denied. + +noAccount=New user? +username=Username +usernameOrEmail=Username or email +firstName=First name +givenName=Given name +fullName=Full name +lastName=Last name +familyName=Family name +email=Email +password=Password +passwordConfirm=Confirm password +passwordNew=New Password +passwordNewConfirm=New Password confirmation +rememberMe=Remember me +authenticatorCode=One-time code +address=Address +street=Street +locality=City or Locality +region=State, Province, or Region +postal_code=Zip or Postal code +country=Country +emailVerified=Email verified +gssDelegationCredential=GSS Delegation Credential +organizationName=Organization Name +phoneNumber=Phone Number +partnerType=Partner Type +langCode=Notification Language + +profileScopeConsentText=User profile +emailScopeConsentText=Email address +addressScopeConsentText=Address +phoneScopeConsentText=Phone number +offlineAccessScopeConsentText=Offline Access +samlRoleListScopeConsentText=My Roles +rolesScopeConsentText=User roles + +restartLoginTooltip=Restart login + +loginTotpIntro=You need to set up a One Time Password generator to access this account +loginTotpStep1=Install one of the following applications on your mobile: +loginTotpStep2=Open the application and scan the barcode: +loginTotpStep3=Enter the one-time code provided by the application and click Submit to finish the setup. +loginTotpStep3DeviceName=Provide a Device Name to help you manage your OTP devices. +loginTotpManualStep2=Open the application and enter the key: +loginTotpManualStep3=Use the following configuration values if the application allows setting them: +loginTotpUnableToScan=Unable to scan? +loginTotpScanBarcode=Scan barcode? +loginCredential=Credential +loginOtpOneTime=One-time code +loginTotpType=Type +loginTotpAlgorithm=Algorithm +loginTotpDigits=Digits +loginTotpInterval=Interval +loginTotpCounter=Counter +loginTotpDeviceName=Device Name + +loginTotp.totp=Time-based +loginTotp.hotp=Counter-based + +loginChooseAuthenticator=Select login method + +oauthGrantRequest=Do you grant these access privileges? +inResource=in + +emailVerifyInstruction1=An email with instructions to verify your email address has been sent to you. +emailVerifyInstruction2=Haven''t received a verification code in your email? +emailVerifyInstruction3=to re-send the email. + +emailLinkIdpTitle=Link {0} +emailLinkIdp1=An email with instructions to link {0} account {1} with your {2} account has been sent to you. +emailLinkIdp2=Haven''t received a verification code in your email? +emailLinkIdp3=to re-send the email. +emailLinkIdp4=If you already verified the email in different browser +emailLinkIdp5=to continue. + +backToLogin=« Back to Login + +emailInstruction=Enter your username or email address and we will send you instructions on how to create a new password. + +copyCodeInstruction=Please copy this code and paste it into your application: + +pageExpiredTitle=Page has expired +pageExpiredMsg1=To restart the login process +pageExpiredMsg2=To continue the login process + +personalInfo=Personal Info: +role_admin=Admin +role_realm-admin=Realm Admin +role_create-realm=Create realm +role_create-client=Create client +role_view-realm=View realm +role_view-users=View users +role_view-applications=View applications +role_view-clients=View clients +role_view-events=View events +role_view-identity-providers=View identity providers +role_manage-realm=Manage realm +role_manage-users=Manage users +role_manage-applications=Manage applications +role_manage-identity-providers=Manage identity providers +role_manage-clients=Manage clients +role_manage-events=Manage events +role_view-profile=View profile +role_manage-account=Manage account +role_manage-account-links=Manage account links +role_read-token=Read token +role_offline-access=Offline access +client_account=Account +client_account-console=Account Console +client_security-admin-console=Security Admin Console +client_admin-cli=Admin CLI +client_realm-management=Realm Management +client_broker=Broker + +requiredFields=Required fields + +invalidUserMessage=Invalid username or password. +invalidUsernameMessage=Invalid username. +invalidUsernameOrEmailMessage=Invalid username or email. +invalidPasswordMessage=Invalid password. +invalidEmailMessage=Invalid email address. +accountDisabledMessage=Account is disabled, contact your administrator. +accountTemporarilyDisabledMessage=Account is temporarily disabled; contact your administrator or retry later. +expiredCodeMessage=Login timeout. Please log in again. +expiredActionMessage=Action expired. Please continue with login now. +expiredActionTokenNoSessionMessage=Action expired. +expiredActionTokenSessionExistsMessage=Action expired. Please start again. + +missingFirstNameMessage=Please specify first name. +missingLastNameMessage=Please specify last name. +missingEmailMessage=Please specify email. +missingUsernameMessage=Please specify username. +missingPasswordMessage=Please specify password. +missingTotpMessage=Please specify authenticator code. +missingTotpDeviceNameMessage=Please specify device name. +notMatchPasswordMessage=Passwords don''t match. + +invalidPasswordExistingMessage=Invalid existing password. +invalidPasswordBlacklistedMessage=Invalid password: password is blacklisted. +invalidPasswordConfirmMessage=Password confirmation doesn''t match. +invalidTotpMessage=Invalid authenticator code. + +usernameExistsMessage=Username already exists. +emailExistsMessage=Email already exists. + +federatedIdentityExistsMessage=User with {0} {1} already exists. Please login to account management to link the account. + +confirmLinkIdpTitle=Account already exists +federatedIdentityConfirmLinkMessage=User with {0} {1} already exists. How do you want to continue? +federatedIdentityConfirmReauthenticateMessage=Authenticate to link your account with {0} +nestedFirstBrokerFlowMessage=The {0} user {1} is not linked to any known user. +confirmLinkIdpReviewProfile=Review profile +confirmLinkIdpContinue=Add to existing account + +configureTotpMessage=You need to set up Mobile Authenticator to activate your account. +updateProfileMessage=You need to update your user profile to activate your account. +updatePasswordMessage=You need to change your password to activate your account. +resetPasswordMessage=You need to change your password. +verifyEmailMessage=You need to verify your email address to activate your account. +linkIdpMessage=You need to verify your email address to link your account with {0}. + +emailSentMessage=You should receive an email shortly with further instructions. +emailSendErrorMessage=Failed to send email, please try again later. + +accountUpdatedMessage=Your account has been updated. +accountPasswordUpdatedMessage=Your password has been updated. + +delegationCompleteHeader=Login Successful +delegationCompleteMessage=You may close this browser window and go back to your console application. +delegationFailedHeader=Login Failed +delegationFailedMessage=You may close this browser window and go back to your console application and try logging in again. + +noAccessMessage=No access + +invalidPasswordMinLengthMessage=Invalid password: minimum length {0}. +invalidPasswordMinDigitsMessage=Invalid password: must contain at least {0} numerical digits. +invalidPasswordMinLowerCaseCharsMessage=Invalid password: must contain at least {0} lower case characters. +invalidPasswordMinUpperCaseCharsMessage=Invalid password: must contain at least {0} upper case characters. +invalidPasswordMinSpecialCharsMessage=Invalid password: must contain at least {0} special characters. +invalidPasswordNotUsernameMessage=Invalid password: must not be equal to the username. +invalidPasswordRegexPatternMessage=Invalid password: fails to match regex pattern(s). +invalidPasswordHistoryMessage=Invalid password: must not be equal to any of last {0} passwords. +invalidPasswordGenericMessage=Invalid password: new password doesn''t match password policies. + +failedToProcessResponseMessage=Failed to process response +httpsRequiredMessage=HTTPS required +realmNotEnabledMessage=Realm not enabled +invalidRequestMessage=Invalid Request +failedLogout=Logout failed +unknownLoginRequesterMessage=Unknown login requester +loginRequesterNotEnabledMessage=Login requester not enabled +bearerOnlyMessage=Bearer-only applications are not allowed to initiate browser login +standardFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Standard flow is disabled for the client. +implicitFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Implicit flow is disabled for the client. +invalidRedirectUriMessage=Invalid redirect uri +unsupportedNameIdFormatMessage=Unsupported NameIDFormat +invalidRequesterMessage=Invalid requester +registrationNotAllowedMessage=Registration not allowed +resetCredentialNotAllowedMessage=Reset Credential not allowed + +permissionNotApprovedMessage=Permission not approved. +noRelayStateInResponseMessage=No relay state in response from identity provider. +insufficientPermissionMessage=Insufficient permissions to link identities. +couldNotProceedWithAuthenticationRequestMessage=Could not proceed with authentication request to identity provider. +couldNotObtainTokenMessage=Could not obtain token from identity provider. +unexpectedErrorRetrievingTokenMessage=Unexpected error when retrieving token from identity provider. +unexpectedErrorHandlingResponseMessage=Unexpected error when handling response from identity provider. +identityProviderAuthenticationFailedMessage=Authentication failed. Could not authenticate with identity provider. +couldNotSendAuthenticationRequestMessage=Could not send authentication request to identity provider. +unexpectedErrorHandlingRequestMessage=Unexpected error when handling authentication request to identity provider. +invalidAccessCodeMessage=Invalid access code. +sessionNotActiveMessage=Session not active. +invalidCodeMessage=An error occurred, please login again through your application. +identityProviderUnexpectedErrorMessage=Unexpected error when authenticating with identity provider +identityProviderNotFoundMessage=Could not find an identity provider with the identifier. +identityProviderLinkSuccess=You successfully verified your email. Please go back to your original browser and continue there with the login. +staleCodeMessage=This page is no longer valid, please go back to your application and log in again +realmSupportsNoCredentialsMessage=Realm does not support any credential type. +credentialSetupRequired=Cannot login, credential setup required. +identityProviderNotUniqueMessage=Realm supports multiple identity providers. Could not determine which identity provider should be used to authenticate with. +emailVerifiedMessage=Your email address has been verified. +staleEmailVerificationLink=The link you clicked is an old stale link and is no longer valid. Maybe you have already verified your email. +identityProviderAlreadyLinkedMessage=Federated identity returned by {0} is already linked to another user. +confirmAccountLinking=Confirm linking the account {0} of identity provider {1} with your account. +confirmEmailAddressVerification=Confirm validity of e-mail address {0}. +confirmExecutionOfActions=Perform the following action(s) + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic + +backToApplication=« Back to Application +missingParameterMessage=Missing parameters\: {0} +clientNotFoundMessage=Client not found. +clientDisabledMessage=Client disabled. +invalidParameterMessage=Invalid parameter\: {0} +alreadyLoggedIn=You are already logged in. +differentUserAuthenticated=You are already authenticated as different user ''{0}'' in this session. Please log out first. +brokerLinkingSessionExpired=Requested broker account linking, but current session is no longer valid. +proceedWithAction=» Click here to proceed + +requiredAction.CONFIGURE_TOTP=Configure OTP +requiredAction.terms_and_conditions=Terms and Conditions +requiredAction.UPDATE_PASSWORD=Update Password +requiredAction.UPDATE_PROFILE=Update Profile +requiredAction.VERIFY_EMAIL=Verify Email + +doX509Login=You will be logged in as\: +clientCertificate=X509 client certificate\: +noCertificate=[No Certificate] + + +pageNotFound=Page not found +internalServerError=An internal server error has occurred + +console-username=Username: +console-password=Password: +console-otp=One Time Password: +console-new-password=New Password: +console-confirm-password=Confirm Password: +console-update-password=Update of your password is required. +console-verify-email=You need to verify your email address. We sent an email to {0} that contains a verification code. Please enter this code into the input below. +console-email-code=Email Code: +console-accept-terms=Accept Terms? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=User information +openshift.scope.user_check-access=User access information +openshift.scope.user_full=Full Access +openshift.scope.list-projects=List projects + +# SAML authentication +saml.post-form.title=Authentication Redirect +saml.post-form.message=Redirecting, please wait. +saml.post-form.js-disabled=JavaScript is disabled. We strongly recommend to enable it. Click the button below to continue. + +#authenticators +otp-display-name=Authenticator Application +otp-help-text=Enter a verification code from authenticator application. +password-display-name=Password +password-help-text=Log in by entering your password. +auth-username-form-display-name=Username +auth-username-form-help-text=Start log in by entering your username +auth-username-password-form-display-name=Username and password +auth-username-password-form-help-text=Log in by entering your username and password. + +# WebAuthn +webauthn-display-name=Security Key +webauthn-help-text=Use your security key to log in. +webauthn-passwordless-display-name=Security Key +webauthn-passwordless-help-text=Use your security key for passwordless log in. +webauthn-login-title=Security Key login +webauthn-registration-title=Security Key Registration +webauthn-available-authenticators=Available authenticators + +# WebAuthn Error +webauthn-error-title=Security Key Error +webauthn-error-registration=Failed to register your Security key. +webauthn-error-api-get=Failed to authenticate by the Security key. +webauthn-error-different-user=First authenticated user is not the one authenticated by the Security key. +webauthn-error-auth-verification=Security key authentication result is invalid. +webauthn-error-register-verification=Security key registration result is invalid. +webauthn-error-user-not-found=Unknown user authenticated by the Security key. + +identity-provider-redirector=Connect with another Identity Provider + diff --git a/keycloak-artemis/theme/base/login/messages/messages_fra.properties b/keycloak-artemis/theme/base/login/messages/messages_fra.properties new file mode 100644 index 00000000..7c9a2a99 --- /dev/null +++ b/keycloak-artemis/theme/base/login/messages/messages_fra.properties @@ -0,0 +1,299 @@ +# encoding: utf-8 + +doLogIn=Connexion +doRegister=Enregistrement +doCancel=Annuler +doSubmit=Soumettre +doYes=Oui +doNo=Non +doContinue=Continuer +doIgnore=Ignorer +doAccept=Accepter +doDecline=D\u00e9cliner +doForgotPassword=Mot de passe oubli\u00e9 ? +doClickHere=Cliquez ici +doImpersonate=Impersonate +kerberosNotConfigured=Kerberos non configur\u00e9 +kerberosNotConfiguredTitle=Kerberos non configur\u00e9 +bypassKerberosDetail=Si vous n''\u00eates pas connect\u00e9 via Kerberos ou bien que votre navigateur n''est pas configur\u00e9 pour la connexion via Kerberos. Veuillez cliquer pour vous connecter via un autre moyen. +kerberosNotSetUp=Kerberos n''est pas configur\u00e9. Connexion impossible. +registerTitle=S''enregistrer +registerWithTitle=Enregistrement avec {0} +registerWithTitleHtml={0} +loginTitle=Se connecter \u00e0 {0} +loginTitleHtml={0} +impersonateTitle={0} utilisateur impersonate +impersonateTitleHtml={0} utilisateur impersonate +realmChoice=Domaine +unknownUser=Utilisateur inconnu +loginTotpTitle=Configuration de l''authentification par mobile +loginProfileTitle=Mise \u00e0 jour du compte +loginTimeout=Le temps imparti pour la connexion est \u00e9coul\u00e9. Le processus de connexion red\u00e9marre depuis le d\u00e9but. +oauthGrantTitle=OAuth Grant +oauthGrantTitleHtml={0} +errorTitle=Nous sommes d\u00e9sol\u00e9s... +errorTitleHtml=Nous sommes d\u00e9sol\u00e9s... +emailVerifyTitle=V\u00e9rification du courriel +emailForgotTitle=Mot de passe oubli\u00e9 ? +updatePasswordTitle=Mise \u00e0 jour du mot de passe +codeSuccessTitle=Code succ\u00e8s +codeErrorTitle=Code d''erreur \: {0} +displayUnsupported=Type d''affichage demand\u00e9 non support\u00e9 +browserRequired=Navigateur requis pour se connecter +browserContinue=Navigateur requis pour continuer la connexion +browserContinuePrompt=Ouvrir le navigateur et continuer la connexion? [y/n]: +browserContinueAnswer=y + +termsTitle=Termes et Conditions +termsTitleHtml=Termes et Conditions +termsText=

Termes et conditions \u00e0 d\u00e9finir

+termsPlainText=Termes et conditions \u00e0 d\u00e9finir + +recaptchaFailed=Re-captcha invalide +recaptchaNotConfigured=Re-captcha est requis, mais il n''est pas configur\u00e9 +consentDenied=Consentement refus\u00e9. + +noAccount=Nouvel utilisateur ? +username=Nom d''utilisateur +usernameOrEmail=Nom d''utilisateur ou courriel +firstName=Pr\u00e9nom +givenName=Pr\u00e9nom +fullName=Nom complet +lastName=Nom +familyName=Nom de famille +email=Courriel +password=Mot de passe +passwordConfirm=Confirmation du mot de passe +passwordNew=Nouveau mot de passe +passwordNewConfirm=Confirmation du nouveau mot de passe +rememberMe=Se souvenir de moi +authenticatorCode=Code \u00e0 usage unique +address=Adresse +street=Rue +locality=Ville ou Localit\u00e9 +region=\u00c9tat, Province ou R\u00e9gion +postal_code=Code postal +country=Pays +emailVerified=Courriel v\u00e9rifi\u00e9 +gssDelegationCredential=Accr\u00e9ditation de d\u00e9l\u00e9gation GSS + +loginTotpIntro=Il est n\u00e9cessaire de configurer un g\u00e9n\u00e9rateur One Time Password pour acc\u00e9der \u00e0 ce compte +loginTotpStep1=Installez
FreeOTP ou bien Google Authenticator sur votre mobile. Ces deux applications sont disponibles sur Google Play et Apple App Store. +loginTotpStep2=Ouvrez l''application et scannez le code-barres ou entrez la clef. +loginTotpStep3=Entrez le code \u00e0 usage unique fourni par l''application et cliquez sur Sauvegarder pour terminer. +loginTotpManualStep2=Ouvrez l''application et saisissez la cl\u00e9 +loginTotpManualStep3=Utilisez la configuration de valeur suivante si l''application permet son \u00e9dition +loginTotpUnableToScan=Impossible de scanner? +loginTotpScanBarcode=Scanner le code barre ? +loginOtpOneTime=Code \u00e0 usage unique +loginTotpType=Type +loginTotpAlgorithm=Algorithme +loginTotpDigits=Chiffres +loginTotpInterval=Intervalle +loginTotpCounter=Compteur + +loginTotp.totp=Bas\u00e9 sur le temps +loginTotp.hotp=Bas\u00e9 sur les compteurs + +oauthGrantRequest=Voulez-vous accorder ces privil\u00e8ges d''acc\u00e8s ? +inResource=dans + +emailVerifyInstruction1=Un courriel avec des instructions \u00e0 suivre vous a \u00e9t\u00e9 envoy\u00e9. +emailVerifyInstruction2=Vous n''avez pas re\u00e7u de code dans le courriel ? +emailVerifyInstruction3=pour renvoyer le courriel. + +emailLinkIdpTitle=Association avec {0} +emailLinkIdp1=Un courriel avec des instructions pour associer le compte {1} sur {0} avec votre compte {2} vous a \u00e9t\u00e9 envoy\u00e9. +emailLinkIdp2=Vous n''avez pas re\u00e7u de code dans le courriel ? +emailLinkIdp3=pour renvoyer le courriel. +emailLinkIdp4=Si vous avez d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre courriel dans un autre navigateur +emailLinkIdp5=pour continuer. + +backToLogin=« Retour \u00e0 la connexion + +emailInstruction=Entrez votre nom d''utilisateur ou votre courriel ; un courriel va vous \u00eatre envoy\u00e9 vous permettant de cr\u00e9er un nouveau mot de passe. + +copyCodeInstruction=Copiez le code et recopiez le dans votre application : + +pageExpiredTitle=La page a expir\u00e9 +pageExpiredMsg1=Pour recommencer le processus d''authentification +pageExpiredMsg2=Pour continuer le processus d''authentification + +personalInfo=Information personnelle : +role_admin=Administrateur +role_realm-admin=Administrateur du domaine +role_create-realm=Cr\u00e9er un domaine +role_create-client=Cr\u00e9er un client +role_view-realm=Voir un domaine +role_view-users=Voir les utilisateurs +role_view-applications=Voir les applications +role_view-clients=Voir les clients +role_view-events=Voir les \u00e9v\u00e9nements +role_view-identity-providers=Voir les fournisseurs d''identit\u00e9 +role_manage-realm=G\u00e9rer le domaine +role_manage-users=G\u00e9rer les utilisateurs +role_manage-applications=G\u00e9rer les applications +role_manage-identity-providers=G\u00e9rer les fournisseurs d''identit\u00e9 +role_manage-clients=G\u00e9rer les clients +role_manage-events=G\u00e9rer les \u00e9v\u00e9nements +role_view-profile=Voir le profil +role_manage-account=G\u00e9rer le compte +role_manage-account-links=G\u00e9rer les liens de compte +role_read-token=Lire le jeton d''authentification +role_offline-access=Acc\u00e8s hors-ligne +client_account=Compte +client_security-admin-console=Console d''administration de la s\u00e9curit\u00e9 +client_admin-cli=Admin CLI +client_realm-management=Gestion du domaine +client_broker=Broker + +invalidUserMessage=Nom d''utilisateur ou mot de passe invalide. +invalidEmailMessage=Courriel invalide. +accountDisabledMessage=Compte d\u00e9sactiv\u00e9, contactez votre administrateur. +accountTemporarilyDisabledMessage=Ce compte est temporairement d\u00e9sactiv\u00e9, contactez votre administrateur ou bien r\u00e9essayez plus tard. +expiredCodeMessage=Connexion expir\u00e9e. Veuillez vous reconnecter. +expiredActionMessage=Action expir\u00e9e. Merci de continuer la connexion. +expiredActionTokenNoSessionMessage=Action expir\u00e9e. +expiredActionTokenSessionExistsMessage=Action expir\u00e9e. Merci de recommencer. + +missingFirstNameMessage=Veuillez entrer votre pr\u00e9nom. +missingLastNameMessage=Veuillez entrer votre nom. +missingEmailMessage=Veuillez entrer votre courriel. +missingUsernameMessage=Veuillez entrer votre nom d''utilisateur. +missingPasswordMessage=Veuillez entrer votre mot de passe. +missingTotpMessage=Veuillez entrer votre code d''authentification. +notMatchPasswordMessage=Les mots de passe ne sont pas identiques. + +invalidPasswordExistingMessage=Mot de passe existant invalide. +invalidPasswordBlacklistedMessage=Mot de passe invalide : ce mot de passe est blacklist\u00e9. +invalidPasswordConfirmMessage=Le mot de passe de confirmation ne correspond pas. +invalidTotpMessage=Le code d''authentification est invalide. + +usernameExistsMessage=Le nom d''utilisateur existe d\u00e9j\u00e0. +emailExistsMessage=Le courriel existe d\u00e9j\u00e0. + +federatedIdentityExistsMessage=L''utilisateur avec {0} {1} existe d\u00e9j\u00e0. Veuillez acc\u00e9der \u00e0 au gestionnaire de compte pour lier le compte. +federatedIdentityEmailExistsMessage=Cet utilisateur avec ce courriel existe d\u00e9j\u00e0. Veuillez vous connecter au gestionnaire de compte pour lier le compte. + +confirmLinkIdpTitle=Ce compte existe d\u00e9j\u00e0 +federatedIdentityConfirmLinkMessage=L''utilisateur {0} {1} existe d\u00e9j\u00e0. Que souhaitez-vous faire ? +federatedIdentityConfirmReauthenticateMessage=Identifiez vous afin de lier votre compte avec {0} +confirmLinkIdpReviewProfile=V\u00e9rifiez vos informations de profil +confirmLinkIdpContinue=Souhaitez-vous lier {0} \u00e0 votre compte existant + +configureTotpMessage=Vous devez configurer l''authentification par mobile pour activer votre compte. +updateProfileMessage=Vous devez mettre \u00e0 jour votre profil pour activer votre compte. +updatePasswordMessage=Vous devez changer votre mot de passe pour activer votre compte. +resetPasswordMessage=Vous devez changer votre mot de passe. +verifyEmailMessage=Vous devez v\u00e9rifier votre courriel pour activer votre compte. +linkIdpMessage=Vous devez v\u00e9rifier votre courriel pour lier votre compte avec {0}. + +emailSentMessage=Vous devriez recevoir rapidement un courriel avec de plus amples instructions. +emailSendErrorMessage=Erreur lors de l''envoi du courriel, veuillez essayer plus tard. + +accountUpdatedMessage=Votre compte a \u00e9t\u00e9 mis \u00e0 jour. +accountPasswordUpdatedMessage=Votre mot de passe a \u00e9t\u00e9 mis \u00e0 jour. + +noAccessMessage=Aucun acc\u00e8s + +invalidPasswordMinLengthMessage=Mot de passe invalide : longueur minimale requise de {0}. +invalidPasswordMinDigitsMessage=Mot de passe invalide : doit contenir au moins {0} chiffre(s). +invalidPasswordMinLowerCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en minuscule. +invalidPasswordMinUpperCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en majuscule. +invalidPasswordMinSpecialCharsMessage=Mot de passe invalide : doit contenir au moins {0} caract\u00e8re(s) sp\u00e9ciaux. +invalidPasswordNotUsernameMessage=Mot de passe invalide : ne doit pas \u00eatre identique au nom d''utilisateur. +invalidPasswordRegexPatternMessage=Mot de passe invalide : ne valide pas l''expression rationnelle. +invalidPasswordHistoryMessage=Mot de passe invalide : ne doit pas \u00eatre \u00e9gal aux {0} derniers mots de passe. +invalidPasswordGenericMessage=Mot de passe invalide : le nouveau mot de passe ne r\u00e9pond pas \u00e0 la politique de mot de passe. + +failedToProcessResponseMessage=Erreur lors du traitement de la r\u00e9ponse +httpsRequiredMessage=Le protocole HTTPS est requis +realmNotEnabledMessage=Le domaine n''est pas activ\u00e9 +invalidRequestMessage=Requ\u00eate invalide +failedLogout=La d\u00e9connexion a \u00e9chou\u00e9e +unknownLoginRequesterMessage=Compte inconnu du demandeur +loginRequesterNotEnabledMessage=La connexion du demandeur n''est pas active +bearerOnlyMessage=Les applications Bearer-only ne sont pas autoris\u00e9es \u00e0 initier la connexion par navigateur. +standardFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux standard est d\u00e9sactiv\u00e9 pour le client. +implicitFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux implicite est d\u00e9sactiv\u00e9 pour le client. +invalidRedirectUriMessage=L''URI de redirection est invalide +unsupportedNameIdFormatMessage=NameIDFormat non support\u00e9 +invalidRequesterMessage=Demandeur invalide +registrationNotAllowedMessage=L''enregistrement n''est pas autoris\u00e9 +resetCredentialNotAllowedMessage=La remise \u00e0 z\u00e9ro n''est pas autoris\u00e9e + +permissionNotApprovedMessage=La permission n''est pas approuv\u00e9e. +noRelayStateInResponseMessage=Aucun \u00e9tat de relais dans la r\u00e9ponse du fournisseur d''identit\u00e9. +insufficientPermissionMessage=Permissions insuffisantes pour lier les identit\u00e9s. +couldNotProceedWithAuthenticationRequestMessage=Impossible de continuer avec la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9. +couldNotObtainTokenMessage=Impossible de r\u00e9cup\u00e9rer le jeton du fournisseur d''identit\u00e9. +unexpectedErrorRetrievingTokenMessage=Erreur inattendue lors de la r\u00e9cup\u00e9ration du jeton provenant du fournisseur d''identit\u00e9. +unexpectedErrorHandlingResponseMessage=Erreur inattendue lors du traitement de la r\u00e9ponse provenant du fournisseur d''identit\u00e9. +identityProviderAuthenticationFailedMessage=L''authentification a \u00e9chou\u00e9e. Impossible de s''authentifier avec le fournisseur d''identit\u00e9. +couldNotSendAuthenticationRequestMessage=Impossible d''envoyer la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9. +unexpectedErrorHandlingRequestMessage=Erreur inattendue lors du traitement de la requ\u00eate vers le fournisseur d''identit\u00e9. +invalidAccessCodeMessage=Code d''acc\u00e8s invalide. +sessionNotActiveMessage=La session n''est pas active. +invalidCodeMessage=Une erreur est survenue, veuillez vous reconnecter \u00e0 votre application. +identityProviderUnexpectedErrorMessage=Erreur inattendue lors de l''authentification avec fournisseur d''identit\u00e9. +identityProviderNotFoundMessage=Impossible de trouver le fournisseur d''identit\u00e9 avec cet identifiant. +identityProviderLinkSuccess=Votre compte a \u00e9t\u00e9 correctement li\u00e9 avec {0} compte {1} . +staleCodeMessage=Cette page n''est plus valide, merci de retourner \u00e0 votre application et de vous connecter \u00e0 nouveau. +realmSupportsNoCredentialsMessage=Ce domaine ne supporte aucun type d''accr\u00e9ditation. +identityProviderNotUniqueMessage=Ce domaine autorise plusieurs fournisseurs d''identit\u00e9. Impossible de d\u00e9terminer le fournisseur d''identit\u00e9 avec lequel s''authentifier. +emailVerifiedMessage=Votre courriel a \u00e9t\u00e9 v\u00e9rifi\u00e9. + +staleEmailVerificationLink=Le lien que vous avez cliqu\u00e9 est p\u00e9rim\u00e9 et n''est plus valide. Peut-\u00eatre avez vous d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre mot de passe ? +identityProviderAlreadyLinkedMessage=L''identit\u00e9 f\u00e9d\u00e9r\u00e9e retourn\u00e9e par {0} est d\u00e9j\u00e0 li\u00e9e \u00e0 un autre utilisateur. +confirmAccountLinking=Confirmez la liaison du compte {0} du fournisseur d''entit\u00e9 {1} avec votre compte. +confirmEmailAddressVerification=Confirmez la validit\u00e9 de l''adresse courriel {0}. +confirmExecutionOfActions=Suivez les instructions suivantes + + +backToApplication=« Revenir \u00e0 l''application +missingParameterMessage=Param\u00e8tres manquants \: {0} +clientNotFoundMessage=Client inconnu. +clientDisabledMessage=Client d\u00e9sactiv\u00e9. +invalidParameterMessage=Param\u00e8tre invalide \: {0} +alreadyLoggedIn=Vous \u00eates d\u00e9j\u00e0 connect\u00e9. + +differentUserAuthenticated=Vous \u00eates d\u00e9j\u00e0 authentifi\u00e9 avec un autre utilisateur ''{0}'' dans cette session. Merci de vous d\u00e9connecter. +proceedWithAction=» Cliquez ici + + +requiredAction.CONFIGURE_TOTP=Configurer OTP +requiredAction.terms_and_conditions=Termes et conditions +requiredAction.UPDATE_PASSWORD=Mettre \u00e0 jour votre mot de passe +requiredAction.UPDATE_PROFILE=Mettre \u00e0 jour votre profil +requiredAction.VERIFY_EMAIL=Valider votre adresse email + + +doX509Login=Vous allez \u00eatre connect\u00e9 en tant que\: +clientCertificate=X509 certificat client\: +noCertificate=[Pas de certificat] + + +pageNotFound=Page non trouv\u00e9e +internalServerError=Une erreur interne du serveur s''est produite + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी \ No newline at end of file diff --git a/keycloak-artemis/theme/base/login/messages/messages_hin.properties b/keycloak-artemis/theme/base/login/messages/messages_hin.properties new file mode 100644 index 00000000..094e34af --- /dev/null +++ b/keycloak-artemis/theme/base/login/messages/messages_hin.properties @@ -0,0 +1,374 @@ +# encoding: utf-8 +doLogIn=लॉग इन करें +doRegister=रजिस्टर करें +doCancel=रद्द करना +doSubmit=प्रस्तुत +doBack=वापस +doYes=हाँ +doNo=नहीं न +doContinue=जारी रखें +doIgnore=नज़रअंदाज़ करना +doAccept=स्वीकार करना +doDecline=पतन +doForgotPassword=Forgot Password? +doClickHere=यहाँ क्लिक करें +doImpersonate=अभिनय करना +doTryAgain=Try फिर व +doTryAnotherWay=दूसरा तरीका आजमाएं +kerberosNotConfigured=Kerberos कॉन्फ़िगर नहीं किया गया +kerberosNotConfiguredTitle=Kerberos कॉन्फ़िगर नहीं किया गया +bypassKerberosDetail=या तो आप Kerberos द्वारा लॉग इन नहीं हैं या आपका ब्राउज़र Kerberos लॉगिन के लिए सेट अप नहीं है। कृपया अन्य माध्यमों से लॉगिन करना जारी रखें पर क्लिक करें +kerberosNotSetUp=Kerberos सेट नहीं है। आप लॉगिन नहीं कर सकते। +registerTitle=रजिस्टर करें +loginTitle=में प्रवेश करें {0} +loginTitleHtml={0} +impersonateTitle={0} प्रतिरूपण उपयोगकर्ता +impersonateTitleHtml={0} प्रतिरूपण उपयोगकर्ता +realmChoice=क्षेत्र +unknownUser=अज्ञात उपयोगकर्ता +loginTotpTitle=मोबाइल प्रमाणक सेटअप +loginProfileTitle=लेखा जानकारी को अद्यतन बनाएं +loginTimeout=आपके लॉगिन प्रयास का समय समाप्त हो गया। लॉगिन शुरुआत से शुरू हो जाएगा। +oauthGrantTitle=पहुँच प्रदान करें{0} +oauthGrantTitleHtml={0} +errorTitle=हमें खेद है... +errorTitleHtml=हम हैं माफ़ करना ... +emailVerifyTitle=ईमेल सत्यापन +emailForgotTitle=क्या आप पासवर्ड भूल गए? +updatePasswordTitle=पासवर्ड अपडेट करें +codeSuccessTitle=सफलता कोड +codeErrorTitle=त्रुटि कोड\: {0} +displayUnsupported=अनुरोधित प्रदर्शन प्रकार असमर्थित +browserRequired=लॉगिन करने के लिए आवश्यक ब्राउज़र +browserContinue=लॉगिन पूरा करने के लिए ब्राउज़र की आवश्यकता है +browserContinuePrompt=ब्राउज़र खोलें और लॉगिन जारी रखें? [y/n]: +browserContinueAnswer=y + + +termsTitle=नियम और शर्तें +termsText=

परिभाषित किए जाने वाले नियम और शर्तें

+termsPlainText=परिभाषित किए जाने वाले नियम और शर्तें. + +recaptchaFailed=अमान्य रीकैप्चा +recaptchaNotConfigured=रिकैप्चा आवश्यक है, लेकिन कॉन्फ़िगर नहीं किया गया है +consentDenied=सहमति अस्वीकृत. + +noAccount=नया उपयोगकर्ता? +username=उपयोगकर्ता नाम +usernameOrEmail=उपयोगकर्ता का नाम या ईमेल +firstName=पहला नाम +givenName=प्रदत्त नाम +fullName=पूरा नाम +lastName=अंतिम नाम +familyName=परिवार का नाम +email=ईमेल +password=कुंजिका +passwordConfirm=पासवर्ड की पुष्टि कीजिये +passwordNew=नया पासवर्ड +passwordNewConfirm=नया पासवर्ड पुष्टि +rememberMe=मुझे याद रखना +authenticatorCode=एक बार का कोड +address=पता +street=सड़क +locality=शहर या इलाका +region=राज्य, प्रांत या क्षेत्र +postal_code=डाक कोड +country=देश +emailVerified=ईमेल सत्यापित हुआ +gssDelegationCredential=जीएसएस प्रतिनिधिमंडल क्रेडेंशियल + +profileScopeConsentText=उपयोगकर्ता प्रोफ़ाइल +emailScopeConsentText=ईमेल पता +addressScopeConsentText=पता +phoneScopeConsentText=फ़ोन नंबर +offlineAccessScopeConsentText=ऑफलाइन एक्सेस +samlRoleListScopeConsentText=मेरी भूमिकाएं +rolesScopeConsentText=उपयोगकर्ता भूमिका + +restartLoginTooltip=लॉगिन पुनरारंभ करें + +loginTotpIntro=इस खाते तक पहुंचने के लिए आपको वन टाइम पासवर्ड जनरेटर सेट करना होगा +loginTotpStep1=अपने मोबाइल में निम्न में से कोई एक एप्लिकेशन इंस्टॉल करें: +loginTotpStep2=एप्लिकेशन खोलें और बारकोड को स्कैन करें: +loginTotpStep3=एप्लिकेशन द्वारा प्रदान किया गया वन-टाइम कोड दर्ज करें और सेटअप समाप्त करने के लिए सबमिट पर क्लिक करें। +loginTotpStep3DeviceName=अपने ओटीपी उपकरणों को प्रबंधित करने में आपकी सहायता के लिए डिवाइस का नाम प्रदान करें। +loginTotpManualStep2=एप्लिकेशन खोलें और कुंजी दर्ज करें: +loginTotpManualStep3=यदि एप्लिकेशन उन्हें सेट करने की अनुमति देता है तो निम्न कॉन्फ़िगरेशन मानों का उपयोग करें: +loginTotpUnableToScan=स्कैन करने में असमर्थ? +loginTotpScanBarcode=बारकोड स्कैन करें? +loginCredential=क्रेडेंशियल +loginOtpOneTime=एक बार का कोड +loginTotpType=प्रकार +loginTotpAlgorithm=कलन विधि +loginTotpDigits=कलन विधि +loginTotpInterval=मध्यान्तर +loginTotpCounter=काउंटर +loginTotpDeviceName=डिवाइस का नाम + +loginTotp.totp=समय पर आधारित +loginTotp.hotp=काउंटर-आधारित + +loginChooseAuthenticator=लॉगिन विधि चुनें + +oauthGrantRequest=क्या आप इन एक्सेस विशेषाधिकारों को प्रदान करते हैं? +inResource=में + +emailVerifyInstruction1=आपका ईमेल पता सत्यापित करने के निर्देशों वाला एक ईमेल आपको भेज दिया गया है। +emailVerifyInstruction2=आपके ईमेल में सत्यापन कोड प्राप्त नहीं हुआ है? +emailVerifyInstruction3=ईमेल को फिर से भेजने के लिए। + +emailLinkIdpTitle=संपर्क{0} +emailLinkIdp1=आपके {2} खाते के साथ {0} खाते {1} को लिंक करने के निर्देशों वाला एक ईमेल आपको भेजा गया है। +emailLinkIdp2=आपके ईमेल में सत्यापन कोड प्राप्त नहीं हुआ है? +emailLinkIdp3=ईमेल को फिर से भेजने के लिए। +emailLinkIdp4=यदि आप पहले ही ईमेल को भिन्न ब्राउज़र में सत्यापित कर चुके हैं +emailLinkIdp5=जारी रखने के लिए। + +backToLogin=« लॉगिन पर वापस जाएं + +emailInstruction=अपना उपयोगकर्ता नाम या ईमेल पता दर्ज करें और हम आपको एक नया पासवर्ड बनाने के निर्देश भेजेंगे। + +copyCodeInstruction=कृपया इस कोड को कॉपी करें और इसे अपने आवेदन में पेस्ट करें: + +pageExpiredTitle=पृष्ठ समाप्त हो गया है +pageExpiredMsg1=लॉगिन प्रक्रिया को पुनः आरंभ करने के लिए +pageExpiredMsg2=लॉगिन प्रक्रिया जारी रखने के लिए + +personalInfo=व्यक्तिगत जानकारी: +role_admin=व्यवस्थापक +role_realm-admin=क्षेत्र व्यवस्थापक +role_create-realm=दायरे बनाएं +role_create-client=क्लाइंट बनाएं +role_view-realm=क्षेत्र देखें +role_view-users=उपयोगकर्ताओं को देखें +role_view-applications=एप्लिकेशन देखें +role_view-clients=ग्राहकों को देखें +role_view-events=इवेंट देखें +role_view-identity-providers=पहचान प्रदाता देखें +role_manage-realm=दायरे का प्रबंधन करें +role_manage-users=उपयोगकर्ताओं को प्रबंधित करें +role_manage-applications=अनुप्रयोगों का प्रबंधन +role_manage-identity-providers=पहचान प्रदाताओं को प्रबंधित करें +role_manage-clients=ग्राहकों को प्रबंधित करें +role_manage-events=ईवेंट प्रबंधित करें +role_view-profile=प्रोफ़ाइल देखें +role_manage-account=खाते का प्रबंधन करें +role_manage-account-links=खाता लिंक प्रबंधित करें +role_read-token=टोकन पढ़ें +role_offline-access=ऑफ़लाइन पहुंच +client_account=लेखा +client_account-console=खाता कंसोल +client_security-admin-console=सुरक्षा व्यवस्थापक कंसोल +client_admin-cli=व्यवस्थापक सीएलआई +client_realm-management=क्षेत्र प्रबंधन +client_broker=दलाल + +requiredFields=आवश्यक फील्ड्स + +invalidUserMessage=अमान्य उपयोगकर्ता नाम या पासवर्ड। +invalidUsernameMessage=अमान्य उपयोगकर्ता नाम। +invalidUsernameOrEmailMessage=अमान्य उपयोगकर्ता नाम या ईमेल। +invalidPasswordMessage=अवैध पासवर्ड। +invalidEmailMessage=अमान्य ईमेल पता। +accountDisabledMessage=खाता अक्षम है, अपने व्यवस्थापक से संपर्क करें। +accountTemporarilyDisabledMessage=खाता अस्थायी रूप से अक्षम है; अपने व्यवस्थापक से संपर्क करें या बाद में पुनः प्रयास करें। +expiredCodeMessage=लॉगिन मध्यांतर। कृपया फिर भाग लें। +expiredActionMessage=कार्रवाई समाप्त हो गई। कृपया अभी लॉगिन जारी रखें। +expiredActionTokenNoSessionMessage=कार्रवाई समाप्त हो गई। +expiredActionTokenSessionExistsMessage=कार्रवाई समाप्त हो गई। कृपया फिर से शुरू करें। + +missingFirstNameMessage=कृपया प्रथम नाम निर्दिष्ट करें। +missingLastNameMessage=कृपया अंतिम नाम निर्दिष्ट करें। +missingEmailMessage=कृपया ईमेल निर्दिष्ट करें। +missingUsernameMessage=कृपया उपयोगकर्ता नाम निर्दिष्ट करें। +missingPasswordMessage=कृपया पासवर्ड निर्दिष्ट करें। +missingTotpMessage=कृपया प्रमाणक कोड निर्दिष्ट करें। +missingTotpDeviceNameMessage=कृपया डिवाइस का नाम निर्दिष्ट करें। +notMatchPasswordMessage=पासवर्ड मेल नहीं खाते। + +invalidPasswordExistingMessage=अमान्य मौजूदा पासवर्ड। +invalidPasswordBlacklistedMessage=अमान्य पासवर्ड: पासवर्ड काली सूची में डाल दिया गया है। +invalidPasswordConfirmMessage=पासवर्ड पुष्टिकरण मेल नहीं खाता। +invalidTotpMessage=अमान्य प्रमाणक कोड। + +usernameExistsMessage=उपयोगकर्ता का नाम पहले से मौजूद है। +emailExistsMessage=ईमेल पहले से मौजूद है। + +federatedIdentityExistsMessage={0} {1} वाला उपयोगकर्ता पहले से मौजूद है। खाते को लिंक करने के लिए कृपया खाता प्रबंधन में लॉगिन करें। + +confirmLinkIdpTitle=खाता पहले से मौजूद है +federatedIdentityConfirmLinkMessage={0} {1} वाला उपयोगकर्ता पहले से मौजूद है। आप कैसे जारी रखना चाहते हैं? +federatedIdentityConfirmReauthenticateMessage=अपने खाते को {0} से जोड़ने के लिए प्रमाणित करें +nestedFirstBrokerFlowMessage={0} उपयोगकर्ता {1} किसी ज्ञात उपयोगकर्ता से लिंक नहीं है। +confirmLinkIdpReviewProfile=प्रोफ़ाइल की समीक्षा करें +confirmLinkIdpContinue=मौजूदा खाते में जोड़ें + +configureTotpMessage=अपना खाता सक्रिय करने के लिए आपको मोबाइल प्रमाणक सेट करना होगा। +updateProfileMessage=अपने खाते को सक्रिय करने के लिए आपको अपनी उपयोगकर्ता प्रोफ़ाइल को अपडेट करना होगा। +updatePasswordMessage=अपना खाता सक्रिय करने के लिए आपको अपना पासवर्ड बदलना होगा। +resetPasswordMessage=आपको अपना पासवर्ड बदलना होगा। +verifyEmailMessage=अपना खाता सक्रिय करने के लिए आपको अपना ईमेल पता सत्यापित करना होगा। +linkIdpMessage=अपने खाते को {0} से जोड़ने के लिए आपको अपना ईमेल पता सत्यापित करना होगा। + +emailSentMessage=आपको आगे के निर्देशों के साथ शीघ्र ही एक ईमेल प्राप्त होना चाहिए। +emailSendErrorMessage=ईमेल भेजने में विफल, कृपया बाद में पुन: प्रयास करें। +accountUpdatedMessage=आपका खाता नवीनीकृत हो चुका है। +accountPasswordUpdatedMessage=आपका पासवर्ड बदला जा चुका है। + +delegationCompleteHeader=लॉग इन सफल +delegationCompleteMessage=आप इस ब्राउज़र विंडो को बंद कर सकते हैं और अपने कंसोल एप्लिकेशन पर वापस जा सकते हैं। +delegationFailedHeader=लॉगिन विफल +delegationFailedMessage=आप इस ब्राउज़र विंडो को बंद कर सकते हैं और अपने कंसोल एप्लिकेशन पर वापस जा सकते हैं और फिर से लॉग इन करने का प्रयास कर सकते हैं। + +noAccessMessage=तक पहुँच नहीं + +invalidPasswordMinLengthMessage=अमान्य पासवर्ड: न्यूनतम लंबाई {0}. +invalidPasswordMinDigitsMessage=अमान्य पासवर्ड: कम से कम {0} संख्यात्मक अंक होने चाहिए। +invalidPasswordMinLowerCaseCharsMessage=अमान्य पासवर्ड: कम से कम {0} लोअर केस वर्ण होने चाहिए। +invalidPasswordMinUpperCaseCharsMessage=अमान्य पासवर्ड: कम से कम {0} अपर केस वर्ण होने चाहिए। +invalidPasswordMinSpecialCharsMessage=अमान्य पासवर्ड: कम से कम {0} विशेष वर्ण होने चाहिए। +invalidPasswordNotUsernameMessage=अमान्य पासवर्ड: उपयोगकर्ता नाम के बराबर नहीं होना चाहिए। +invalidPasswordRegexPatternMessage=अमान्य पासवर्ड: रेगेक्स पैटर्न से मेल नहीं खाता (एस .)). +invalidPasswordHistoryMessage=अमान्य पासवर्ड: किसी भी अंतिम {0} पासवर्ड के बराबर नहीं होना चाहिए। +invalidPasswordGenericMessage=अमान्य पासवर्ड: नया पासवर्ड पासवर्ड नीतियों से मेल नहीं खाता। + +failedToProcessResponseMessage=प्रतिक्रिया संसाधित करने में विफल +httpsRequiredMessage=HTTPS आवश्यक +realmNotEnabledMessage=क्षेत्र सक्षम नहीं है +invalidRequestMessage=अमान्य अनुरोध +failedLogout=लॉगआउट विफल +unknownLoginRequesterMessage=अज्ञात लॉगिन अनुरोधकर्ता +loginRequesterNotEnabledMessage=लॉगिन अनुरोधकर्ता सक्षम नहीं है +bearerOnlyMessage=केवल वाहक अनुप्रयोगों को ब्राउज़र लॉगिन आरंभ करने की अनुमति नहीं है +standardFlowDisabledMessage=क्लाइंट को दिए गए response_type के साथ ब्राउज़र लॉगिन शुरू करने की अनुमति नहीं है। क्लाइंट के लिए मानक प्रवाह अक्षम है। +implicitFlowDisabledMessage=क्लाइंट को दिए गए response_type के साथ ब्राउज़र लॉगिन शुरू करने की अनुमति नहीं है। क्लाइंट के लिए निहित प्रवाह अक्षम है। +invalidRedirectUriMessage=अमान्य रीडायरेक्ट यूरी +unsupportedNameIdFormatMessage=असमर्थित NameIDFormat +invalidRequesterMessage=अमान्य अनुरोधकर्ता +registrationNotAllowedMessage=पंजीकरण की अनुमति नहीं है +resetCredentialNotAllowedMessage=क्रेडेंशियल रीसेट करने की अनुमति नहीं है + +permissionNotApprovedMessage=अनुमति स्वीकृत नहीं है। +noRelayStateInResponseMessage=पहचान प्रदाता के जवाब में कोई रिले स्थिति नहीं है। +insufficientPermissionMessage=पहचान लिंक करने के लिए अपर्याप्त अनुमतियां। +couldNotProceedWithAuthenticationRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध के साथ आगे नहीं बढ़ सका। +couldNotObtainTokenMessage=पहचान प्रदाता से टोकन प्राप्त नहीं कर सका। +unexpectedErrorRetrievingTokenMessage=पहचान प्रदाता से टोकन प्राप्त करते समय अनपेक्षित त्रुटि। +unexpectedErrorHandlingResponseMessage=पहचान प्रदाता से प्रतिक्रिया को संभालते समय अनपेक्षित त्रुटि। +identityProviderAuthenticationFailedMessage=प्रमाणीकरण विफल होना। पहचान प्रदाता के साथ प्रमाणित नहीं किया जा सका। +couldNotSendAuthenticationRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध नहीं भेजा जा सका। +unexpectedErrorHandlingRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध को संसाधित करते समय अनपेक्षित त्रुटि। +invalidAccessCodeMessage=अमान्य एक्सेस कोड। +sessionNotActiveMessage=सत्र सक्रिय नहीं है। +invalidCodeMessage=एक त्रुटि हुई, कृपया अपने आवेदन के माध्यम से फिर से लॉगिन करें। +identityProviderUnexpectedErrorMessage=पहचान प्रदाता के साथ प्रमाणीकरण करते समय अनपेक्षित त्रुटि +identityProviderNotFoundMessage=पहचानकर्ता के साथ एक पहचान प्रदाता नहीं मिला। +identityProviderLinkSuccess=आपने अपना ईमेल सफलतापूर्वक सत्यापित कर लिया है। कृपया अपने मूल ब्राउज़र पर वापस जाएं और वहां लॉगिन के साथ जारी रखें। +staleCodeMessage=यह पृष्ठ अब मान्य नहीं है, कृपया अपने आवेदन पर वापस जाएं और फिर से लॉग इन करें +realmSupportsNoCredentialsMessage=दायरे किसी भी क्रेडेंशियल प्रकार का समर्थन नहीं करता है। +credentialSetupRequired=लॉगिन नहीं कर सकता, क्रेडेंशियल सेटअप की आवश्यकता है। +identityProviderNotUniqueMessage=दायरे कई पहचान प्रदाताओं का समर्थन करता है। यह निर्धारित नहीं किया जा सका कि किस पहचान प्रदाता के साथ प्रमाणित करने के लिए उपयोग किया जाना चाहिए। +emailVerifiedMessage=आपका ईमेल पता सत्यापित कर दिया गया है। +staleEmailVerificationLink=आपके द्वारा क्लिक किया गया लिंक पुराना पुराना लिंक है और अब मान्य नहीं है। हो सकता है कि आपने अपना ईमेल पहले ही सत्यापित कर लिया हो। +identityProviderAlreadyLinkedMessage={0} द्वारा लौटाई गई फ़ेडरेटेड पहचान पहले से ही किसी अन्य उपयोगकर्ता से जुड़ी हुई है। +confirmAccountLinking=पहचान प्रदाता {1} के खाते को अपने खाते से जोड़ने की पुष्टि करें। +confirmEmailAddressVerification=ई-मेल पते {0} की वैधता की पुष्टि करें। +confirmExecutionOfActions=निम्नलिखित क्रियाएं करें + +locale_ca=कैटल\u00E0 +locale_de=deutsch +locale_eng=अंग्रेज़ी +locale_es=एस्पा\u00F1ol +locale_fra=फ़्रैन\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=नीदरलैंड्स +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=« आवेदन पर वापस जाएं +missingParameterMessage=गुम पैरामीटर\: {0} +clientNotFoundMessage=ग्राहक नहीं मिला। +clientDisabledMessage=क्लाइंट अक्षम. +invalidParameterMessage=अमान्य मापदंड\: {0} +alreadyLoggedIn=आप पहले से लॉगिन कर रहे हैं. +differentUserAuthenticated=आप इस सत्र में पहले से ही भिन्न उपयोगकर्ता ''{0}'' के रूप में प्रमाणित हैं। कृपया पहले लॉग आउट करें। +brokerLinkingSessionExpired=अनुरोधित ब्रोकर खाता लिंकिंग, लेकिन वर्तमान सत्र अब मान्य नहीं है। +proceedWithAction=» आगे बढ़ने के लिए यहां क्लिक करें + +requiredAction.CONFIGURE_TOTP=ओटीपी कॉन्फ़िगर करें +requiredAction.terms_and_conditions=नियम और शर्तें +requiredAction.UPDATE_PASSWORD=पासवर्ड अपडेट करें +requiredAction.UPDATE_PROFILE=प्रोफ़ाइल अपडेट करें +requiredAction.VERIFY_EMAIL=Verify Email + +doX509Login=आप के रूप में लॉग इन किया जाएगा\: +clientCertificate=X509 क्लाइंट प्रमाणपत्र\: +noCertificate=[कोई प्रमाणपत्र नहीं] + + +pageNotFound=पृष्ठ नहीं मिला +internalServerError=एक आंतरिक सर्वर त्रुटि हुई है + +console-username=उपयोगकर्ता नाम: +console-password=कुंजिका: +console-otp=वन टाइम पासवर्ड: +console-new-password=नया पासवर्ड: +console-confirm-password=पासवर्ड की पुष्टि कीजिये: +console-update-password=आपके पासवर्ड का अद्यतन आवश्यक है। +console-verify-email=आपको अपना ईमेल पता सत्यापित करना होगा। हमने {0} को एक ईमेल भेजा है जिसमें एक सत्यापन कोड है। कृपया इस कोड को नीचे दिए गए इनपुट में दर्ज करें। +console-email-code=ईमेल कोड: +console-accept-terms=शर्तों को स्वीकारें? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=यूजर जानकारी +openshift.scope.user_check-access=उपयोगकर्ता पहुंच जानकारी +openshift.scope.user_full=Full Access +openshift.scope.list-projects=परियोजनाओं की सूची बनाएं + +# SAML authentication +saml.post-form.title=प्रमाणीकरण पुनर्निर्देशन +saml.post-form.message=फिर से भेजा जा रहा है ............ कृपया इंतजार करें। +saml.post-form.js-disabled=जावास्क्रिप्ट अक्षम है। हम इसे सक्षम करने की दृढ़ता से अनुशंसा करते हैं। जारी रखने के लिए नीचे के बटन पर क्लिक करें। + +#authenticators +otp-display-name=प्रमाणक आवेदन +otp-help-text=प्रमाणक आवेदन से सत्यापन कोड दर्ज करें। +password-display-name=कुंजिका +password-help-text=अपना पासवर्ड डालकर लॉग इन करें। +auth-username-form-display-name=उपयोगकर्ता नाम +auth-username-form-help-text=अपना उपयोगकर्ता नाम दर्ज करके लॉग इन प्रारंभ करें +auth-username-password-form-display-name=उपयोगकर्ता नाम और पासवर्ड +auth-username-password-form-help-text=अपना यूजरनेम और पासवर्ड डालकर लॉग इन करें। + +# WebAuthn +webauthn-display-name=सुरक्षा कुंजी +webauthn-help-text=लॉग इन करने के लिए अपनी सुरक्षा कुंजी का उपयोग करें। +webauthn-passwordless-display-name=सुरक्षा कुंजी +webauthn-passwordless-help-text=पासवर्ड रहित लॉग इन के लिए अपनी सुरक्षा कुंजी का उपयोग करें। +webauthn-login-title=सुरक्षा कुंजी लॉगिन +webauthn-registration-title=सुरक्षा कुंजी पंजीकरण +webauthn-available-authenticators=उपलब्ध प्रमाणक + +# WebAuthn Error +webauthn-error-title=सुरक्षा कुंजी त्रुटि +webauthn-error-registration=आपकी सुरक्षा कुंजी पंजीकृत करने में विफल. +webauthn-error-api-get=सुरक्षा कुंजी द्वारा प्रमाणित करने में विफल. +webauthn-error-different-user=पहला प्रमाणीकृत उपयोगकर्ता सुरक्षा कुंजी द्वारा प्रमाणित नहीं है. +webauthn-error-auth-verification=सुरक्षा कुंजी प्रमाणीकरण परिणाम अमान्य है. +webauthn-error-register-verification=सुरक्षा कुंजी पंजीकरण परिणाम अमान्य है. +webauthn-error-user-not-found=सुरक्षा कुंजी द्वारा प्रमाणित अज्ञात उपयोगकर्ता. + +identity-provider-redirector=किसी अन्य पहचान प्रदाता से जुड़ें \ No newline at end of file diff --git a/keycloak-artemis/theme/base/login/messages/messages_kan.properties b/keycloak-artemis/theme/base/login/messages/messages_kan.properties new file mode 100644 index 00000000..0dbe0594 --- /dev/null +++ b/keycloak-artemis/theme/base/login/messages/messages_kan.properties @@ -0,0 +1,375 @@ +# encoding: utf-8 +doLogIn=ಲಾಗ್ ಇನ್ ಮಾಡಿ +doRegister=ನೋಂದಾಯಿಸಿ +doCancel=ರದ್ದುಮಾಡಿ +doSubmit=ಸಲ್ಲಿಸಿ +doBack=ಹಿಂದೆ +doYes=ಹೌದು +doNo=ಇಲ್ಲ +doContinue=ಮುಂದುವರಿಸಿ +doIgnore=ನಿರ್ಲಕ್ಷಿಸು +doAccept=ಸ್ವೀಕರಿಸಿ +doDecline=ಅವನತಿ +doForgotPassword=ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ? +doClickHere=ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ +doImpersonate=ಸೋಗು ಹಾಕಿ +doTryAgain=ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ +doTryAnotherWay=ಇನ್ನೊಂದು ರೀತಿಯಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ +kerberosNotConfigured=ಕರ್ಬರೋಸ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ +kerberosNotConfiguredTitle=ಕರ್ಬರೋಸ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ +bypassKerberosDetail=ಒಂದೋ ನೀವು ಕರ್ಬರೋಸ್‌ನಿಂದ ಲಾಗಿನ್ ಆಗಿಲ್ಲ ಅಥವಾ ಕರ್ಬರೋಸ್ ಲಾಗಿನ್‌ಗಾಗಿ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ. ಇತರ ವಿಧಾನಗಳ ಮೂಲಕ ಲಾಗಿನ್ ಆಗಲು ಮುಂದುವರಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ +kerberosNotSetUp= ಕರ್ಬರೋಸ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ. ನೀವು ಲಾಗಿನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. +registerTitle=ನೋಂದಾಯಿಸಿ +loginTitle={0} to ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ +loginTitleHtml={0} +impersonateTitle={0} ಸೋಗು ಹಾಕುವ ಬಳಕೆದಾರ +impersonateTitleHtml= {0} ಸೋಗು ಹಾಕುವ ಬಳಕೆದಾರ +realmChoice=ಕ್ಷೇತ್ರ +unknownUser=ಅಜ್ಞಾತ ಬಳಕೆದಾರ +loginTotpTitle=ಮೊಬೈಲ್ ದೃ hentic ೀಕರಣ ಸೆಟಪ್ +loginProfileTitle=ಖಾತೆ ಮಾಹಿತಿಯನ್ನು ನವೀಕರಿಸಿ +loginTimeout=ನಿಮ್ಮ ಲಾಗಿನ್ ಪ್ರಯತ್ನ ಮುಗಿದಿದೆ. ಲಾಗಿನ್ ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. +oauthGrantTitle={0}to ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡಿ +oauthGrantTitleHtml={0} +errorTitle=ನಮ್ಮನ್ನು ಕ್ಷಮಿಸಿ ... +errorTitleHtml=ನಾವು ಕ್ಷಮಿಸಿ ... +emailVerifyTitle=ಇಮೇಲ್ ಪರಿಶೀಲನೆ +emailForgotTitle=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ? +updatePasswordTitle=ಪಾಸ್‌ವರ್ಡ್ ನವೀಕರಿಸಿ +codeSuccessTitle=ಯಶಸ್ಸಿನ ಕೋಡ್ +codeErrorTitle=ದೋಷ ಕೋಡ್ \: {0} +displayUnsupported=ವಿನಂತಿಸಿದ ಪ್ರದರ್ಶನ ಪ್ರಕಾರವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ +browserRequired=ಲಾಗಿನ್ ಮಾಡಲು ಬ್ರೌಸರ್ ಅಗತ್ಯವಿದೆ +browserContinue=ಲಾಗಿನ್ ಪೂರ್ಣಗೊಳಿಸಲು ಬ್ರೌಸರ್ ಅಗತ್ಯವಿದೆ +browserContinuePrompt=ಬ್ರೌಸರ್ ತೆರೆಯಿರಿ ಮತ್ತು ಲಾಗಿನ್ ಮುಂದುವರಿಸುವುದೇ? [y / n]: +browserContinueAnswer=y + + +termsTitle=ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು +termsText=

ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾದ ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು +termsPlainText=ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾದ ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು. + +recaptchaFailed=ಅಮಾನ್ಯ ಮರುಸಂಗ್ರಹ +recaptchaNotConfigured=Recaptcha ಅಗತ್ಯವಿದೆ, ಆದರೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ +consentDenied=ಒಪ್ಪಿಗೆ ನಿರಾಕರಿಸಲಾಗಿದೆ. + +noAccount=ಹೊಸ ಬಳಕೆದಾರ? +username=ಬಳಕೆದಾರಹೆಸರು +usernameOrEmail=ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್ +firstName=ಮೊದಲ ಹೆಸರು +givenName=ಕೊಟ್ಟಿರುವ ಹೆಸರು +fullName=ಪೂರ್ಣ ಹೆಸರು +lastName=ಕೊನೆಯ ಹೆಸರು +familyName=ಕುಟುಂಬದ ಹೆಸರು +email=ಇಮೇಲ್ +password=ಪಾಸ್ವರ್ಡ್ +passwordConfirm=ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ದೃ irm ೀಕರಿಸಿ +passwordNew=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ +passwordNewConfirm=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ದೃ mation ೀಕರಣ +rememberMe=ನನ್ನನ್ನು ನೆನಪಿಡಿ +authenticatorCode=ಒಂದು-ಬಾರಿ ಕೋಡ್ +address=ವಿಳಾಸ +street=ರಸ್ತೆ +locality=ನಗರ ಅಥವಾ ಸ್ಥಳ +region=ರಾಜ್ಯ, ಪ್ರಾಂತ್ಯ ಅಥವಾ ಪ್ರದೇಶ +postal_code=ಪಿನ್ ಅಥವಾ ಅಂಚೆ ಕೋಡ್ +country=ದೇಶ +emailVerified=ಇಮೇಲ್ ಪರಿಶೀಲಿಸಲಾಗಿದೆ +gssDelegationCredential=ಜಿಎಸ್ಎಸ್ ನಿಯೋಗ ರುಜುವಾತು + +profileScopeConsentText=ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ +emailScopeConsentText=ಇಮೇಲ್ ವಿಳಾಸ +addressScopeConsentText=ವಿಳಾಸ +phoneScopeConsentText=ಫೋನ್ ಸಂಖ್ಯೆ +offlineAccessScopeConsentText=ಆಫ್‌ಲೈನ್ ಪ್ರವೇಶ +samlRoleListScopeConsentText=ನನ್ನ ಪಾತ್ರಗಳು +rolesScopeConsentText=ಬಳಕೆದಾರರ ಪಾತ್ರಗಳು + +restartLoginTooltip=ಲಾಗಿನ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ + +loginTotpIntro=ಈ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಒನ್ ಟೈಮ್ ಪಾಸ್ವರ್ಡ್ ಜನರೇಟರ್ ಅನ್ನು ಹೊಂದಿಸಬೇಕಾಗಿದೆ +loginTotpStep1=ನಿಮ್ಮ ಮೊಬೈಲ್‌ನಲ್ಲಿ ಈ ಕೆಳಗಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಒಂದನ್ನು ಸ್ಥಾಪಿಸಿ: +loginTotpStep2=ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ ಮತ್ತು ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ: +loginTotpStep3=ಅಪ್ಲಿಕೇಶನ್ ಒದಗಿಸಿದ ಒನ್-ಟೈಮ್ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಸೆಟಪ್ ಮುಗಿಸಲು ಸಲ್ಲಿಸು ಕ್ಲಿಕ್ ಮಾಡಿ. +loginTotpStep3DeviceName=ನಿಮ್ಮ OTP ಸಾಧನಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ಸಾಧನದ ಹೆಸರನ್ನು ಒದಗಿಸಿ. +loginTotpManualStep2=ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ ಮತ್ತು ಕೀಲಿಯನ್ನು ನಮೂದಿಸಿ: +loginTotpManualStep3=ಅಪ್ಲಿಕೇಶನ್ ಅವುಗಳನ್ನು ಹೊಂದಿಸಲು ಅನುಮತಿಸಿದರೆ ಈ ಕೆಳಗಿನ ಸಂರಚನಾ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಿ: +loginTotpUnableToScan=ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲವೇ? +loginTotpScanBarcode=ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುವುದೇ? +loginCredential=ರುಜುವಾತು +loginOtpOneTime=ಒಂದು-ಬಾರಿ ಕೋಡ್ +loginTotpType=ಪ್ರಕಾರ +loginTotpAlgorithm=ಅಲ್ಗಾರಿದಮ್ +loginTotpDigits=ಅಂಕೆಗಳು +loginTotpInterval=ಮಧ್ಯಂತರ +loginTotpCounter=ಕೌಂಟರ್ +loginTotpDeviceName=ಸಾಧನದ ಹೆಸರು + +loginTotp.totp=ಸಮಯ ಆಧಾರಿತ +loginTotp.hotp=ಕೌಂಟರ್ ಆಧಾರಿತ + +loginChooseAuthenticator=ಲಾಗಿನ್ ವಿಧಾನವನ್ನು ಆರಿಸಿ + +oauthGrantRequest=ನೀವು ಈ ಪ್ರವೇಶ ಸೌಲಭ್ಯಗಳನ್ನು ನೀಡುತ್ತೀರಾ? +inResource=இல் + +emailVerifyInstruction1=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲು ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇಮೇಲ್ ಅನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲಾಗಿದೆ. +emailVerifyInstruction2=ನಿಮ್ಮ ಇಮೇಲ್‌ನಲ್ಲಿ ಪರಿಶೀಲನೆ ಕೋಡ್ ಸ್ವೀಕರಿಸಿಲ್ಲವೇ? +emailVerifyInstruction3=ಇಮೇಲ್ ಅನ್ನು ಮರು ಕಳುಹಿಸಲು. + +emailLinkIdpTitle=ಲಿಂಕ್ {0} +emailLinkIdp1=ನಿಮ್ಮ {2} ಖಾತೆಯೊಂದಿಗೆ {0} ಖಾತೆ {1 link ಅನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇಮೇಲ್ ಅನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲಾಗಿದೆ. +emailLinkIdp2=ನಿಮ್ಮ ಇಮೇಲ್‌ನಲ್ಲಿ ಪರಿಶೀಲನೆ ಕೋಡ್ ಸ್ವೀಕರಿಸಿಲ್ಲವೇ? +emailLinkIdp3=ಇಮೇಲ್ ಅನ್ನು ಮರು ಕಳುಹಿಸಲು. +emailLinkIdp4=ನೀವು ಈಗಾಗಲೇ ಬೇರೆ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದರೆ +emailLinkIdp5=ಮುಂದುವರಿಸಲು. + +backToLogin=& laquo; ಲಾಗಿನ್‌ಗೆ ಹಿಂತಿರುಗಿ + +emailInstruction=ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ನಾವು ನಿಮಗೆ ಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ. + +copyCodeInstruction=ದಯವಿಟ್ಟು ಈ ಕೋಡ್ ಅನ್ನು ನಕಲಿಸಿ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅಂಟಿಸಿ: + +pageExpiredTitle=ಪುಟ ಅವಧಿ ಮೀರಿದೆ +pageExpiredMsg1=ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು +pageExpiredMsg2=ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮುಂದುವರಿಸಲು + +personalInfo=ವೈಯಕ್ತಿಕ ಮಾಹಿತಿ: +role_admin=ನಿರ್ವಹಣೆ +role_realm-admin=ಕ್ಷೇತ್ರ ನಿರ್ವಹಣೆ +role_create-realm=ಕ್ಷೇತ್ರವನ್ನು ರಚಿಸಿ +role_create-client=ಕ್ಲೈಂಟ್ ರಚಿಸಿ +role_view-realm=ಕ್ಷೇತ್ರವನ್ನು ವೀಕ್ಷಿಸಿ +role_view-users=ಬಳಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ +role_view-applications=ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ +role_view-clients=ಗ್ರಾಹಕರನ್ನು ವೀಕ್ಷಿಸಿ +role_view-events=ಈವೆಂಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ +role_view-identity-providers=ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ +role_manage-realm=ಕ್ಷೇತ್ರವನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-users=ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-applications=ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-identity-providers=ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-clients=ಕ್ಲೈಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-events=ಈವೆಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_view-profile= ಪ್ರೊಫೈಲ್ ವೀಕ್ಷಿಸಿ +role_manage-account=ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-account-links=ಖಾತೆ ಲಿಂಕ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_read-token=ಟೋಕನ್ ಓದಿ +role_offline-access=ಆಫ್‌ಲೈನ್ ಪ್ರವೇಶ +client_account=ಖಾತೆ +client_account-console=ಖಾತೆ ಕನ್ಸೋಲ್ +client_security-admin-console=ಭದ್ರತಾ ನಿರ್ವಹಣೆ ಕನ್ಸೋಲ್ +client_admin-cli=ನಿರ್ವಹಣೆ CLI +client_realm-management=ಕ್ಷೇತ್ರ ನಿರ್ವಹಣೆ +client_broker=ಬ್ರೋಕರ್ + +requiredFields=ಅಗತ್ಯವಿರುವ ಕ್ಷೇತ್ರಗಳು + +invalidUserMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್. +invalidUsernameMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು. +invalidUsernameOrEmailMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್. +invalidPasswordMessage=ಅಮಾನ್ಯ ಪಾಸ್ವರ್ಡ್. +invalidEmailMessage=ಅಮಾನ್ಯ ಇಮೇಲ್ ವಿಳಾಸ. +accountDisabledMessage=ಖಾತೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ. +accountTemporarilyDisabledMessage=ಖಾತೆಯನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ; ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ ಅಥವಾ ನಂತರ ಮರುಪ್ರಯತ್ನಿಸಿ. +expiredCodeMessage=ಲಾಗಿನ್ ಕಾಲಾವಧಿ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ. +expiredActionMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ಈಗ ಲಾಗಿನ್‌ನೊಂದಿಗೆ ಮುಂದುವರಿಸಿ. +expiredActionTokenNoSessionMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. +expiredActionTokenSessionExistsMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಾರಂಭಿಸಿ. + +missingFirstNameMessage=ದಯವಿಟ್ಟು ಮೊದಲ ಹೆಸರನ್ನು ಸೂಚಿಸಿ. +missingLastNameMessage=ದಯವಿಟ್ಟು ಕೊನೆಯ ಹೆಸರನ್ನು ಸೂಚಿಸಿ. +missingEmailMessage=ದಯವಿಟ್ಟು ಇಮೇಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingUsernameMessage=ದಯವಿಟ್ಟು ಬಳಕೆದಾರಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingPasswordMessage=ದಯವಿಟ್ಟು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingTotpMessage=ದಯವಿಟ್ಟು ದೃ hentic ೀಕರಣ ಕೋಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingTotpDeviceNameMessage=ದಯವಿಟ್ಟು ಸಾಧನದ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +notMatchPasswordMessage=ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. + +invalidPasswordExistingMessage=ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪಾಸ್‌ವರ್ಡ್ ಅಮಾನ್ಯವಾಗಿದೆ. +invalidPasswordBlacklistedMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕಪ್ಪುಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. +invalidPasswordConfirmMessage=ಪಾಸ್‌ವರ್ಡ್ ದೃ mation ೀಕರಣವು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. +invalidTotpMessage=ಅಮಾನ್ಯ ದೃ hentic ೀಕರಣ ಕೋಡ್. + +usernameExistsMessage=ಬಳಕೆದಾರಹೆಸರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. +emailExistsMessage=ಇಮೇಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. + +federatedIdentityExistsMessage= {0} {1} with ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ. ಖಾತೆಯನ್ನು ಲಿಂಕ್ ಮಾಡಲು ದಯವಿಟ್ಟು ಖಾತೆ ನಿರ್ವಹಣೆಗೆ ಲಾಗಿನ್ ಮಾಡಿ. + +confirmLinkIdpTitle=ಖಾತೆ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ +federatedIdentityConfirmLinkMessage={0} {1} with ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ. ನೀವು ಹೇಗೆ ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಿ? +federatedIdentityConfirmReauthenticateMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು {0 }with ನೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ದೃ hentic ೀಕರಿಸಿ +nestedFirstBrokerFlowMessage={0} ಬಳಕೆದಾರ {1} known ತಿಳಿದಿರುವ ಯಾವುದೇ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಿಲ್ಲ. +confirmLinkIdpReviewProfile=ವಿಮರ್ಶೆ ಪ್ರೊಫೈಲ್ +confirmLinkIdpContinue=ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಖಾತೆಗೆ ಸೇರಿಸಿ + +configureTotpMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನೀವು ಮೊಬೈಲ್ ದೃ hentic ೀಕರಣವನ್ನು ಹೊಂದಿಸಬೇಕಾಗಿದೆ. +updateProfileMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಅನ್ನು ನೀವು ನವೀಕರಿಸಬೇಕಾಗಿದೆ. +updatePasswordMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. +resetPasswordMessage=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. +verifyEmailMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. +linkIdpMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು {0} with ನೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. + +emailSentMessage=ಹೆಚ್ಚಿನ ಸೂಚನೆಗಳೊಂದಿಗೆ ನೀವು ಶೀಘ್ರದಲ್ಲೇ ಇಮೇಲ್ ಸ್ವೀಕರಿಸಬೇಕು. +emailSendErrorMessage= ಇಮೇಲ್ ಕಳುಹಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ, ದಯವಿಟ್ಟು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ. + +accountUpdatedMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ. +accountPasswordUpdatedMessage=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ. + +delegationCompleteHeader=ಲಾಗಿನ್ ಯಶಸ್ವಿಯಾಗಿದೆ +delegationCompleteMessage=ನೀವು ಈ ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ಮುಚ್ಚಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕನ್ಸೋಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಬಹುದು. +delegationFailedHeader=ಲಾಗಿನ್ ವಿಫಲವಾಗಿದೆ +delegationFailedMessage=ನೀವು ಈ ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ಮುಚ್ಚಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕನ್ಸೋಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. + +noAccessMessage=ಪ್ರವೇಶವಿಲ್ಲ + +invalidPasswordMinLengthMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ ಉದ್ದ {0}. +invalidPasswordMinDigitsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ಸಂಖ್ಯಾತ್ಮಕ ಅಂಕೆಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordMinLowerCaseCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ಲೋವರ್ ಕೇಸ್ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordMinUpperCaseCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ದೊಡ್ಡಕ್ಷರ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordMinSpecialCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordNotUsernameMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಬಳಕೆದಾರಹೆಸರಿಗೆ ಸಮನಾಗಿರಬಾರದು. +invalidPasswordRegexPatternMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ರಿಜೆಕ್ಸ್ ಮಾದರಿ (ಗಳನ್ನು) ಹೊಂದಿಸಲು ವಿಫಲವಾಗಿದೆ. +invalidPasswordHistoryMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕೊನೆಯ {0} ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಗೆ ಸಮನಾಗಿರಬಾರದು. +invalidPasswordGenericMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಪಾಸ್‌ವರ್ಡ್ ನೀತಿಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. + +failedToProcessResponseMessage=ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ವಿಫಲವಾಗಿದೆ +httpsRequiredMessage=HTTPS ಅಗತ್ಯವಿದೆ +realmNotEnabledMessage=ಕ್ಷೇತ್ರವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ +invalidRequestMessage=ಅಮಾನ್ಯ ವಿನಂತಿ +failedLogout=ಲಾಗ್ out ಟ್ ವಿಫಲವಾಗಿದೆ +unknownLoginRequesterMessage=ಅಜ್ಞಾತ ಲಾಗಿನ್ ವಿನಂತಿ +loginRequesterNotEnabledMessage=ಲಾಗಿನ್ ವಿನಂತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ +bearerOnlyMessage=ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಬೇರರ್-ಮಾತ್ರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ +standardFlowDisabledMessage= ಕೊಟ್ಟಿರುವ ಪ್ರತಿಕ್ರಿಯೆ_ ಪ್ರಕಾರದೊಂದಿಗೆ ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕ್ಲೈಂಟ್‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್ಗಾಗಿ ಪ್ರಮಾಣಿತ ಹರಿವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. +implicitFlowDisabledMessage=ಕೊಟ್ಟಿರುವ ಪ್ರತಿಕ್ರಿಯೆ_ ಪ್ರಕಾರದೊಂದಿಗೆ ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕ್ಲೈಂಟ್‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್‌ಗೆ ಸೂಚ್ಯ ಹರಿವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. +invalidRedirectUriMessage=ಅಮಾನ್ಯ ಮರುನಿರ್ದೇಶನ ಯೂರಿ +unsupportedNameIdFormatMessage=ಬೆಂಬಲಿಸದ NameIDFormat +invalidRequesterMessage=ಅಮಾನ್ಯ ವಿನಂತಿ +registrationNotAllowedMessage=ನೋಂದಣಿಯನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ +resetCredentialNotAllowedMessage=ರುಜುವಾತು ಮರುಹೊಂದಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ + +permissionNotApprovedMessage=ಅನುಮತಿಯನ್ನು ಅನುಮೋದಿಸಲಾಗಿಲ್ಲ. +noRelayStateInResponseMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ಯಾವುದೇ ರಿಲೇ ಸ್ಥಿತಿ ಇಲ್ಲ. +insufficientPermissionMessage=ಗುರುತುಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಸಾಕಷ್ಟು ಅನುಮತಿಗಳು ಇಲ್ಲ. +couldNotProceedWithAuthenticationRequestMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ request ೀಕರಣ ವಿನಂತಿಯೊಂದಿಗೆ ಮುಂದುವರಿಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +couldNotObtainTokenMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಟೋಕನ್ ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +unexpectedErrorRetrievingTokenMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಟೋಕನ್ ಅನ್ನು ಹಿಂಪಡೆಯುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ.. +unexpectedErrorHandlingResponseMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ. +identityProviderAuthenticationFailedMessage=ದೃ hentic ೀಕರಣ ವಿಫಲವಾಗಿದೆ. ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ದೃ ate ೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +couldNotSendAuthenticationRequestMessage= ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ request ೀಕರಣ ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಲಾಗಲಿಲ್ಲ. +unexpectedErrorHandlingRequestMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ hentic ೀಕರಣ ವಿನಂತಿಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ. +invalidAccessCodeMessage=ಅಮಾನ್ಯ ಪ್ರವೇಶ ಕೋಡ್. +sessionNotActiveMessage=ಸೆಷನ್ ಸಕ್ರಿಯವಾಗಿಲ್ಲ. +invalidCodeMessage=ದೋಷ ಸಂಭವಿಸಿದೆ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಿ. +identityProviderUnexpectedErrorMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ದೃ ating ೀಕರಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ +identityProviderNotFoundMessage=ಗುರುತಿಸುವಿಕೆಯೊಂದಿಗೆ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗಲಿಲ್ಲ. +identityProviderLinkSuccess=ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ನೀವು ಯಶಸ್ವಿಯಾಗಿ ಪರಿಶೀಲಿಸಿದ್ದೀರಿ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಮೂಲ ಬ್ರೌಸರ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಲಾಗಿನ್‌ನೊಂದಿಗೆ ಮುಂದುವರಿಯಿರಿ. +staleCodeMessage=ಈ ಪುಟವು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ +realmSupportsNoCredentialsMessage= ಕ್ಷೇತ್ರವು ಯಾವುದೇ ರುಜುವಾತು ಪ್ರಕಾರವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. +credentialSetupRequired=ಲಾಗಿನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ, ರುಜುವಾತು ಸೆಟಪ್ ಅಗತ್ಯವಿದೆ. +identityProviderNotUniqueMessage=ಕ್ಷೇತ್ರವು ಅನೇಕ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ದೃ ate ೀಕರಿಸಲು ಯಾವ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಬಳಸಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +emailVerifiedMessage=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ. +staleEmailVerificationLink= ನೀವು ಕ್ಲಿಕ್ ಮಾಡಿದ ಲಿಂಕ್ ಹಳೆಯ ಹಳೆಯ ಲಿಂಕ್ ಆಗಿದೆ ಮತ್ತು ಅದು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ. ಬಹುಶಃ ನೀವು ಈಗಾಗಲೇ ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದ್ದೀರಿ. +identityProviderAlreadyLinkedMessage={0} by ನಿಂದ ಹಿಂತಿರುಗಿಸಲಾದ ಫೆಡರೇಟೆಡ್ ಗುರುತನ್ನು ಈಗಾಗಲೇ ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರರಿಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ. +confirmAccountLinking=ಗುರುತಿನ ಪೂರೈಕೆದಾರ {1 of ನ ಖಾತೆಯನ್ನು {0 your ನಿಮ್ಮ ಖಾತೆಯೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡುವುದನ್ನು ಖಚಿತಪಡಿಸಿ. +confirmEmailAddressVerification=ಇ-ಮೇಲ್ ವಿಳಾಸದ ಸಿಂಧುತ್ವವನ್ನು ದೃ irm ೀಕರಿಸಿ {0}. +confirmExecutionOfActions=ಈ ಕೆಳಗಿನ ಕ್ರಿಯೆಯನ್ನು (ಗಳನ್ನು) ಮಾಡಿ + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=& laquo; ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ +missingParameterMessage=ಕಾಣೆಯಾದ ನಿಯತಾಂಕಗಳು \: {0} +clientNotFoundMessage=ಗ್ರಾಹಕ ಕಂಡುಬಂದಿಲ್ಲ. +clientDisabledMessage=ಗ್ರಾಹಕನನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. +invalidParameterMessage=ಅಮಾನ್ಯ ನಿಯತಾಂಕ \: {0} +alreadyLoggedIn= ನೀವು ಈಗಾಗಲೇ ಲಾಗ್ ಇನ್ ಆಗಿದ್ದೀರಿ. +differentUserAuthenticated=ಈ ಅಧಿವೇಶನದಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ವಿಭಿನ್ನ ಬಳಕೆದಾರ '' {0} '' ಎಂದು ದೃ ated ೀಕರಿಸಲ್ಪಟ್ಟಿದ್ದೀರಿ. ದಯವಿಟ್ಟು ಮೊದಲು ಲಾಗ್ out ಟ್ ಮಾಡಿ. +brokerLinkingSessionExpired=ವಿನಂತಿಸಿದ ಬ್ರೋಕರ್ ಖಾತೆ ಲಿಂಕ್, ಆದರೆ ಪ್ರಸ್ತುತ ಸೆಷನ್ ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ. +proceedWithAction=& raquo; ಮುಂದುವರಿಯಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ + +requiredAction.CONFIGURE_TOTP= OTP ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ +requiredAction.terms_and_conditions=ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು +requiredAction.UPDATE_PASSWORD=ಪಾಸ್‌ವರ್ಡ್ ನವೀಕರಿಸಿ +requiredAction.UPDATE_PROFILE=ಪ್ರೊಫೈಲ್ ನವೀಕರಿಸಿ +requiredAction.VERIFY_EMAIL=ಇಮೇಲ್ ಪರಿಶೀಲಿಸಿ + +doX509Login=ನಿಮ್ಮನ್ನು as ಆಗಿ ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗುತ್ತದೆ: +clientCertificate=X509 ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರ \: +noCertificate=[ಪ್ರಮಾಣಪತ್ರವಿಲ್ಲ] + + +pageNotFound=ಪುಟ ಬಳಕೆದಾರಹೆಸರು +internalServerError=ಆಂತರಿಕ ಸರ್ವರ್ ದೋಷ ಸಂಭವಿಸಿದೆ + +console-username=ಬಳಕೆದಾರಹೆಸರು: +console-password=ಪಾಸ್‌ವರ್ಡ್: +console-otp= ಒನ್ ಟೈಮ್ ಪಾಸ್‌ವರ್ಡ್: +console-new-password=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್: +console-confirm-password=ಪಾಸ್ವರ್ಡ್ ದೃ irm ೀಕರಿಸಿ: +console-update-password=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ನ ನವೀಕರಣದ ಅಗತ್ಯವಿದೆ. +console-verify-email=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. ಪರಿಶೀಲನಾ ಕೋಡ್ ಹೊಂದಿರುವ {0 to ಗೆ ನಾವು ಇಮೇಲ್ ಕಳುಹಿಸಿದ್ದೇವೆ. ದಯವಿಟ್ಟು ಈ ಕೋಡ್ ಅನ್ನು ಕೆಳಗಿನ ಇನ್ಪುಟ್ಗೆ ನಮೂದಿಸಿ. +console-email-code=ಇಮೇಲ್ ಕೋಡ್: +console-accept-terms=ನಿಯಮಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತೀರಾ? [y / n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=ಬಳಕೆದಾರ ಮಾಹಿತಿ +openshift.scope.user_check-access=ಬಳಕೆದಾರ ಪ್ರವೇಶ ಮಾಹಿತಿ +openshift.scope.user_full=ಪೂರ್ಣ ಪ್ರವೇಶ +openshift.scope.list-projects=ಯೋಜನೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ + +# SAML authentication +saml.post-form.title=ದೃ hentic ೀಕರಣ ಮರುನಿರ್ದೇಶನ +saml.post-form.message=ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ, ದಯವಿಟ್ಟು ಕಾಯಿರಿ. +saml.post-form.js-disabled=ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಾವು ಬಲವಾಗಿ ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. ಮುಂದುವರಿಸಲು ಕೆಳಗಿನ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ. + +#authenticators +otp-display-name=ದೃ hentic ೀಕರಣ ಅಪ್ಲಿಕೇಶನ್ +otp-help-text=ದೃ hentic ೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಪರಿಶೀಲನೆ ಕೋಡ್ ನಮೂದಿಸಿ. +password-display-name=ಪಾಸ್ವರ್ಡ್ +password-help-text=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಿ. +auth-username-form-display-name=ಬಳಕೆದಾರಹೆಸರು +auth-username-form-help-text=ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿ +auth-username-password-form-display-name=ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ +auth-username-password-form-help-text=ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಿ. + +# WebAuthn +webauthn-display-name=ಭದ್ರತಾ ಕೀ +webauthn-help-text=ಲಾಗ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ. +webauthn-passwordless-display-name=ಭದ್ರತಾ ಕೀ +webauthn-passwordless-help-text=ಪಾಸ್‌ವರ್ಡ್ ರಹಿತ ಲಾಗ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ. +webauthn-login-title=ಭದ್ರತಾ ಕೀ ಲಾಗಿನ್ +webauthn-registration-title=ಭದ್ರತಾ ಕೀ ನೋಂದಣಿ +webauthn-available-authenticators= ಲಭ್ಯವಿರುವ ದೃ hentic ೀಕರಣಕಾರರು + +# WebAuthn Error +webauthn-error-title=ಭದ್ರತಾ ಕೀ ದೋಷ +webauthn-error-registration= ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ನೋಂದಾಯಿಸಲು ವಿಫಲವಾಗಿದೆ. +webauthn-error-api-get=ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ate ೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ. +webauthn-error-different-user=ಮೊದಲ ದೃ hentic ೀಕೃತ ಬಳಕೆದಾರನು ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ated ೀಕರಿಸಲ್ಪಟ್ಟವನಲ್ಲ. +webauthn-error-auth-verification=ಭದ್ರತಾ ಕೀ ದೃ hentic ೀಕರಣ ಫಲಿತಾಂಶವು ಅಮಾನ್ಯವಾಗಿದೆ. +webauthn-error-register-verification=ಭದ್ರತಾ ಕೀ ನೋಂದಣಿ ಫಲಿತಾಂಶ ಅಮಾನ್ಯವಾಗಿದೆ. +webauthn-error-user-not-found=ಅಜ್ಞಾತ ಬಳಕೆದಾರರನ್ನು ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ated ೀಕರಿಸಲಾಗಿದೆ. + +identity-provider-redirector=ಮತ್ತೊಂದು ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಿ \ No newline at end of file diff --git a/keycloak-artemis/theme/base/login/messages/messages_tam.properties b/keycloak-artemis/theme/base/login/messages/messages_tam.properties new file mode 100644 index 00000000..526688b0 --- /dev/null +++ b/keycloak-artemis/theme/base/login/messages/messages_tam.properties @@ -0,0 +1,375 @@ +# encoding: utf-8 +doLogIn=உள்நுழைக +doRegister=பதிவு +doCancel=ரத்துசெய் +doSubmit=சமர்ப்பி +doBack=பின் +doYes=ஆம் +doNo=இல்லை +doContinue=தொடரவும் +doIgnore=புறக்கணிக்கவும் +doAccept=ஏற்றுக்கொள் +doDecline=சரிவு +doForgotPassword=கடவுச்சொல் மறந்துவிட்டதா? +doClickHere=இங்கே கிளிக் செய்க +doImpersonate=ஆள்மாறாட்டம் +doTryAgain=மீண்டும் முயற்சிக்கவும் +doTryAnotherWay=வேறு வழியில் முயற்சிக்கவும் +kerberosNotConfigured=கெர்பரோஸ் கட்டமைக்கப்படவில்லை +kerberosNotConfiguredTitle=கெர்பரோஸ் கட்டமைக்கப்படவில்லை +bypassKerberosDetail=ஒன்று நீங்கள் கெர்பரோஸால் உள்நுழைந்திருக்கவில்லை அல்லது உங்கள் உலாவி கெர்பரோஸ் உள்நுழைவுக்கு அமைக்கப்படவில்லை. பிற வழிகளில் உள்நுழைவதைத் தொடரவும் என்பதைக் கிளிக் செய்க +kerberosNotSetUp=கெர்பரோஸ் அமைக்கப்படவில்லை. நீங்கள் உள்நுழைய முடியாது.. +registerTitle=பதிவு +loginTitle={0} to இல் உள்நுழைக +loginTitleHtml={0} +impersonateTitle={0} ஆள்மாறாட்டம் பயனர் +impersonateTitleHtml= {0} ஆள்மாறாட்டம் பயனர் +realmChoice=சாம்ராஜ்யம் +unknownUser=தெரியாத பயனர் +loginTotpTitle=மொபைல் அங்கீகார அமைப்பு +loginProfileTitle=கணக்குத் தகவலைப் புதுப்பிக்கவும் +loginTimeout=உங்கள் உள்நுழைவு முயற்சி முடிந்தது. உள்நுழைவு தொடக்கத்திலிருந்தே தொடங்கும். +oauthGrantTitle={0} to க்கு அணுகலை வழங்குக +oauthGrantTitleHtml={0} +errorTitle=மன்னிக்கவும் ... +errorTitleHtml=நாங்கள் மன்னிக்கவும் ... +emailVerifyTitle=மின்னஞ்சல் சரிபார்ப்பு +emailForgotTitle=உங்கள் கடவுச்சொல்லை மறந்துவிட்டீர்களா? +updatePasswordTitle=கடவுச்சொல்லைப் புதுப்பிக்கவும் +codeSuccessTitle=வெற்றிக் குறியீடு +codeErrorTitle=பிழை குறியீடு \: {0} +displayUnsupported=கோரப்பட்ட காட்சி வகை ஆதரிக்கப்படவில்லை +browserRequired=உள்நுழைய உலாவி தேவை +browserContinue=உள்நுழைவை முடிக்க உலாவி தேவை +browserContinuePrompt=உலாவியைத் திறந்து உள்நுழைவைத் தொடரவா? [y / n]: +browserContinueAnswer=y + + +termsTitle=விதிமுறைகள் மற்றும் நிபந்தனைகள் +termsText=

வரையறுக்க வேண்டிய விதிமுறைகள் மற்றும் நிபந்தனைகள் +termsPlainText=வரையறுக்க வேண்டிய விதிமுறைகள் மற்றும் நிபந்தனைகள். + +recaptchaFailed=தவறான Recaptcha +recaptchaNotConfigured=Recaptcha தேவை, ஆனால் உள்ளமைக்கப்படவில்லை +consentDenied=ஒப்புதல் மறுக்கப்பட்டது. + +noAccount=புதிய பயனரா? +username=பயனர்பெயர் +usernameOrEmail=பயனர்பெயர் அல்லது மின்னஞ்சல் +firstName=முதல் பெயர் +givenName=கொடுக்கப்பட்ட பெயர் +fullName=முழு பெயர் +lastName=கடைசி பெயர் +familyName=குடும்ப பெயர் +email=மின்னஞ்சல் +password=கடவுச்சொல் +passwordConfirm=கடவுச்சொல்லை உறுதிப்படுத்தவும் +passwordNew=புதிய கடவுச்சொல் +passwordNewConfirm=புதிய கடவுச்சொல் உறுதிப்படுத்தல் +rememberMe=என்னை நினைவில் வையுங்கள் +authenticatorCode=ஒரு முறை குறியீடு +address=முகவரி +street=தெரு +locality=நகரம் அல்லது இடம் +region=மாநிலம், மாகாணம் அல்லது பிராந்தியம் +postal_code=ஜிப் அல்லது அஞ்சல் குறியீடு +country=நாடு +emailVerified=மின்னஞ்சல் சரிபார்க்கப்பட்டது +gssDelegationCredential=ஜிஎஸ்எஸ் பிரதிநிதிகள் நற்சான்றிதழ் + +profileScopeConsentText=பயனர் சுயவிவரம் +emailScopeConsentText=மின்னஞ்சல் முகவரி +addressScopeConsentText=முகவரி +phoneScopeConsentText=தொலைபேசி எண் +offlineAccessScopeConsentText=ஆஃப்லைன் அணுகல் +samlRoleListScopeConsentText=எனது பாத்திரங்கள் +rolesScopeConsentText=பயனர் பாத்திரங்கள் + +restartLoginTooltip=உள்நுழைவை மறுதொடக்கம் செய்யுங்கள் + +loginTotpIntro=இந்த கணக்கை அணுக நீங்கள் ஒரு முறை கடவுச்சொல் ஜெனரேட்டரை அமைக்க வேண்டும் +loginTotpStep1=உங்கள் மொபைலில் பின்வரும் பயன்பாடுகளில் ஒன்றை நிறுவவும்: +loginTotpStep2=பயன்பாட்டைத் திறந்து பார்கோடு ஸ்கேன் செய்யுங்கள்: +loginTotpStep3=பயன்பாடு வழங்கிய ஒரு முறை குறியீட்டை உள்ளிட்டு, அமைப்பை முடிக்க சமர்ப்பி என்பதைக் கிளிக் செய்க. +loginTotpStep3DeviceName=உங்கள் OTP சாதனங்களை நிர்வகிக்க உதவும் சாதன பெயரை வழங்கவும். +loginTotpManualStep2=பயன்பாட்டைத் திறந்து விசையை உள்ளிடவும்: +loginTotpManualStep3=பயன்பாடு அவற்றை அமைக்க அனுமதித்தால் பின்வரும் உள்ளமைவு மதிப்புகளைப் பயன்படுத்தவும்: +loginTotpUnableToScan=ஸ்கேன் செய்ய முடியவில்லையா? +loginTotpScanBarcode=பார்கோடு ஸ்கேன் செய்யவா? +loginCredential=நற்சான்றிதழ் +loginOtpOneTime=ஒரு முறை குறியீடு +loginTotpType=வகை +loginTotpAlgorithm=அல்காரிதம் +loginTotpDigits=இலக்கங்கள் +loginTotpInterval=இடைவெளி +loginTotpCounter=எதிர் +loginTotpDeviceName=சாதனத்தின் பெயர் + +loginTotp.totp=நேரத்தை அடிப்படையாகக் கொண்டது +loginTotp.hotp=எதிர் அடிப்படையிலான + +loginChooseAuthenticator=உள்நுழைவு முறையைத் தேர்ந்தெடுக்கவும் + +oauthGrantRequest=இந்த அணுகல் சலுகைகளை வழங்குகிறீர்களா? +inResource=இல் + +emailVerifyInstruction1=உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வழிமுறைகளுடன் ஒரு மின்னஞ்சல் உங்களுக்கு அனுப்பப்பட்டுள்ளது. +emailVerifyInstruction2=உங்கள் மின்னஞ்சலில் சரிபார்ப்புக் குறியீட்டைப் பெறவில்லையா? +emailVerifyInstruction3=மின்னஞ்சலை மீண்டும் அனுப்ப. + +emailLinkIdpTitle=இணைப்பு {0} +emailLinkIdp1=உங்கள் {2} கணக்குடன் {0} கணக்கு {1 link ஐ இணைப்பதற்கான வழிமுறைகளைக் கொண்ட மின்னஞ்சல் உங்களுக்கு அனுப்பப்பட்டுள்ளது. +emailLinkIdp2=உங்கள் மின்னஞ்சலில் சரிபார்ப்புக் குறியீட்டைப் பெறவில்லையா? +emailLinkIdp3=மின்னஞ்சலை மீண்டும் அனுப்ப. +emailLinkIdp4=நீங்கள் ஏற்கனவே வெவ்வேறு உலாவியில் மின்னஞ்சலை சரிபார்த்திருந்தால் +emailLinkIdp5=தொடர. + +backToLogin=& laquo; உள்நுழைவுக்குத் திரும்பு + +emailInstruction=உங்கள் பயனர்பெயர் அல்லது மின்னஞ்சல் முகவரியை உள்ளிடுக, புதிய கடவுச்சொல்லை எவ்வாறு உருவாக்குவது என்பது குறித்த வழிமுறைகளை நாங்கள் உங்களுக்கு அனுப்புவோம். + +copyCodeInstruction=தயவுசெய்து இந்த குறியீட்டை நகலெடுத்து உங்கள் பயன்பாட்டில் ஒட்டவும்: + +pageExpiredTitle=பக்கம் காலாவதியானது +pageExpiredMsg1=உள்நுழைவு செயல்முறையை மறுதொடக்கம் செய்ய +pageExpiredMsg2=உள்நுழைவு செயல்முறையைத் தொடர + +personalInfo=தனிப்பட்ட தகவல்: +role_admin=நிர்வாகம் +role_realm-admin=சாம்ராஜ்ய நிர்வாகம் +role_create-realm=சாம்ராஜ்யத்தை உருவாக்கு +role_create-client=கிளையண்டை உருவாக்கவும் +role_view-realm=சாம்ராஜ்யத்தைக் காண்க +role_view-users=பயனர்களைக் காண்க +role_view-applications=பயன்பாடுகளைக் காண்க +role_view-clients=வாடிக்கையாளர்களைக் காண்க +role_view-events=நிகழ்வுகளைக் காண்க +role_view-identity-providers=அடையாள வழங்குநர்களைக் காண்க +role_manage-realm=சாம்ராஜ்யத்தை நிர்வகிக்கவும் +role_manage-users=பயனர்களை நிர்வகிக்கவும் +role_manage-applications=பயன்பாடுகளை நிர்வகிக்கவும் +role_manage-identity-providers=அடையாள வழங்குநர்களை நிர்வகிக்கவும் +role_manage-clients=வாடிக்கையாளர்களை நிர்வகிக்கவும் +role_manage-events=நிகழ்வுகளை நிர்வகிக்கவும் +role_view-profile=சுயவிவரத்தைக் காண்க +role_manage-account=கணக்கை நிர்வகிக்கவும் +role_manage-account-links=கணக்கை நிர்வகிக்கவும் +role_read-token=டோக்கனைப் படியுங்கள் +role_offline-access=ஆஃப்லைன் அணுகல் +client_account=கணக்கு +client_account-console=கணக்கு பணியகம் +client_security-admin-console=பாதுகாப்பு நிர்வாக கன்சோல் +client_admin-cli=நிர்வாகம் CLI +client_realm-management=சாம்ராஜ்ய மேலாண்மை +client_broker=தரகர் + +requiredFields=தேவையான புலங்கள் + +invalidUserMessage=தவறான பயனர்பெயர் அல்லது கடவுச்சொல். +invalidUsernameMessage=தவறான பயனர்பெயர். +invalidUsernameOrEmailMessage=தவறான பயனர்பெயர் அல்லது மின்னஞ்சல். +invalidPasswordMessage=தவறான கடவுச்சொல். +invalidEmailMessage=தவறான மின்னஞ்சல் முகவரி. +accountDisabledMessage=கணக்கு முடக்கப்பட்டுள்ளது, உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளுங்கள். +accountTemporarilyDisabledMessage=கணக்கு தற்காலிகமாக முடக்கப்பட்டுள்ளது; உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளவும் அல்லது பின்னர் மீண்டும் முயற்சிக்கவும். +expiredCodeMessage=உள்நுழைவு நேரம் முடிந்தது. மீண்டும் உள்நுழைக. +expiredActionMessage=செயல் காலாவதியானது. இப்போது உள்நுழைவுடன் தொடரவும். +expiredActionTokenNoSessionMessage=செயல் காலாவதியானது. +expiredActionTokenSessionExistsMessage=செயல் காலாவதியானது. மீண்டும் தொடங்கவும். + +missingFirstNameMessage=தயவுசெய்து முதல் பெயரைக் குறிப்பிடவும். +missingLastNameMessage=தயவுசெய்து கடைசி பெயரைக் குறிப்பிடவும். +missingEmailMessage=தயவுசெய்து மின்னஞ்சலைக் குறிப்பிடவும். +missingUsernameMessage=தயவுசெய்து பயனர்பெயரைக் குறிப்பிடவும். +missingPasswordMessage=தயவுசெய்து கடவுச்சொல்லைக் குறிப்பிடவும். +missingTotpMessage=அங்கீகாரக் குறியீட்டைக் குறிப்பிடவும். +missingTotpDeviceNameMessage=சாதனத்தின் பெயரைக் குறிப்பிடவும். +notMatchPasswordMessage=கடவுச்சொற்கள் பொருந்தவில்லை. + +invalidPasswordExistingMessage=ஏற்கனவே உள்ள கடவுச்சொல் தவறானது. +invalidPasswordBlacklistedMessage=தவறான கடவுச்சொல்: கடவுச்சொல் தடுப்புப்பட்டியலில் உள்ளது. +invalidPasswordConfirmMessage=கடவுச்சொல் உறுதிப்படுத்தல் பொருந்தவில்லை. +invalidTotpMessage=தவறான அங்கீகார குறியீடு. + +usernameExistsMessage=பயனர்பெயர் ஏற்கனவே உள்ளது. +emailExistsMessage=மின்னஞ்சல் ஏற்கனவே உள்ளது. + +federatedIdentityExistsMessage= {0} {1} with உடன் பயனர் ஏற்கனவே உள்ளது. கணக்கை இணைக்க கணக்கு நிர்வாகத்தில் உள்நுழைக. + +confirmLinkIdpTitle=கணக்கு ஏற்கனவே உள்ளது +federatedIdentityConfirmLinkMessage={0} {1} with உடன் பயனர் ஏற்கனவே உள்ளது. நீங்கள் எவ்வாறு தொடர விரும்புகிறீர்கள்? +federatedIdentityConfirmReauthenticateMessage=உங்கள் கணக்கை உடன் இணைக்க அங்கீகரிக்கவும்{0} +nestedFirstBrokerFlowMessage=known {0} பயனர் {1} known எந்தவொரு அறியப்பட்ட பயனருடனும் இணைக்கப்படவில்லை. +confirmLinkIdpReviewProfile=மதிப்பாய்வு சுயவிவரம் +confirmLinkIdpContinue=இருக்கும் கணக்கில் சேர்க்கவும் + +configureTotpMessage=உங்கள் கணக்கைச் செயல்படுத்த மொபைல் அங்கீகாரத்தை அமைக்க வேண்டும். +updateProfileMessage=உங்கள் கணக்கைச் செயல்படுத்த உங்கள் பயனர் சுயவிவரத்தைப் புதுப்பிக்க வேண்டும். +updatePasswordMessage=உங்கள் கணக்கை செயல்படுத்த உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். +resetPasswordMessage=உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். +verifyEmailMessage=உங்கள் கணக்கைச் செயல்படுத்த உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வேண்டும். +linkIdpMessage=உங்கள் கணக்கை {0 with உடன் இணைக்க உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வேண்டும். + +emailSentMessage=மேலதிக வழிமுறைகளுடன் விரைவில் ஒரு மின்னஞ்சலைப் பெற வேண்டும். +emailSendErrorMessage=மின்னஞ்சல் அனுப்புவதில் தோல்வி, தயவுசெய்து பின்னர் மீண்டும் முயற்சிக்கவும். + +accountUpdatedMessage=உங்கள் கணக்கு புதுப்பிக்கப்பட்டது. +accountPasswordUpdatedMessage=உங்கள் கடவுச்சொல் புதுப்பிக்கப்பட்டது. + +delegationCompleteHeader=உள்நுழைவு வெற்றிகரமாக +delegationCompleteMessage=நீங்கள் இந்த உலாவி சாளரத்தை மூடிவிட்டு உங்கள் கன்சோல் பயன்பாட்டிற்குச் செல்லலாம். +delegationFailedHeader=உள்நுழைவு தோல்வியுற்றது +delegationFailedMessage=நீங்கள் இந்த உலாவி சாளரத்தை மூடிவிட்டு உங்கள் கன்சோல் பயன்பாட்டிற்குச் சென்று மீண்டும் உள்நுழைய முயற்சி செய்யலாம். + +noAccessMessage=அணுகல் இல்லை + +invalidPasswordMinLengthMessage=தவறான கடவுச்சொல்: குறைந்தபட்ச நீளம் {0}. +invalidPasswordMinDigitsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} எண் இலக்கங்களைக் கொண்டிருக்க வேண்டும். +invalidPasswordMinLowerCaseCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} சிறிய எழுத்துக்குறிகளைக் கொண்டிருக்க வேண்டும். +invalidPasswordMinUpperCaseCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} மேல் வழக்கு எழுத்துக்களைக் கொண்டிருக்க வேண்டும். +invalidPasswordMinSpecialCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} சிறப்பு எழுத்துக்களைக் கொண்டிருக்க வேண்டும். +invalidPasswordNotUsernameMessage=தவறான கடவுச்சொல்: பயனர்பெயருக்கு சமமாக இருக்கக்கூடாது. +invalidPasswordRegexPatternMessage=தவறான கடவுச்சொல்: ரீஜெக்ஸ் முறை (களை) பொருத்தத் தவறிவிட்டது. +invalidPasswordHistoryMessage=தவறான கடவுச்சொல்: கடைசி {0} கடவுச்சொற்களுக்கு சமமாக இருக்கக்கூடாது. +invalidPasswordGenericMessage=தவறான கடவுச்சொல்: புதிய கடவுச்சொல் கடவுச்சொல் கொள்கைகளுடன் பொருந்தவில்லை. + +failedToProcessResponseMessage=பதிலைச் செயலாக்குவதில் தோல்வி +httpsRequiredMessage=HTTPS தேவை +realmNotEnabledMessage=சாம்ராஜ்யம் இயக்கப்படவில்லை +invalidRequestMessage=தவறான கோரிக்கை +failedLogout=வெளியேறுதல் தோல்வியுற்றது +unknownLoginRequesterMessage=அறியப்படாத உள்நுழைவு கோரிக்கை +loginRequesterNotEnabledMessage=உள்நுழைவு கோரிக்கை இயக்கப்படவில்லை +bearerOnlyMessage=உலாவி உள்நுழைவைத் தொடங்க தாங்கி மட்டும் பயன்பாடுகள் அனுமதிக்கப்படவில்லை +standardFlowDisabledMessage=கொடுக்கப்பட்ட மறுமொழி_வகை மூலம் உலாவி உள்நுழைவைத் தொடங்க கிளையன்ட் அனுமதிக்கப்படுவதில்லை. வாடிக்கையாளருக்கு நிலையான ஓட்டம் முடக்கப்பட்டுள்ளது. +implicitFlowDisabledMessage=கொடுக்கப்பட்ட மறுமொழி_வகை மூலம் உலாவி உள்நுழைவைத் தொடங்க கிளையன்ட் அனுமதிக்கப்படுவதில்லை. கிளையண்ட்டுக்கு மறைமுக ஓட்டம் முடக்கப்பட்டுள்ளது. +invalidRedirectUriMessage=தவறான வழிமாற்று யூரி +unsupportedNameIdFormatMessage=ஆதரிக்கப்படாத NameIDFormat +invalidRequesterMessage=தவறான கோரிக்கை +registrationNotAllowedMessage=பதிவு செய்ய அனுமதிக்கப்படவில்லை +resetCredentialNotAllowedMessage=நற்சான்றிதழை மீட்டமைக்க அனுமதிக்கப்படவில்லை + +permissionNotApprovedMessage=அனுமதி அங்கீகரிக்கப்படவில்லை. +noRelayStateInResponseMessage=அடையாள வழங்குநரின் பதிலில் ரிலே நிலை இல்லை. +insufficientPermissionMessage=அடையாளங்களை இணைக்க போதுமான அனுமதி இல்லை. +couldNotProceedWithAuthenticationRequestMessage=அடையாள வழங்குநரிடம் அங்கீகார கோரிக்கையுடன் தொடர முடியவில்லை. +couldNotObtainTokenMessage=அடையாள வழங்குநரிடமிருந்து டோக்கனைப் பெற முடியவில்லை. +unexpectedErrorRetrievingTokenMessage=அடையாள வழங்குநரிடமிருந்து டோக்கனை மீட்டெடுக்கும்போது எதிர்பாராத பிழை. +unexpectedErrorHandlingResponseMessage=அடையாள வழங்குநரிடமிருந்து பதிலைக் கையாளும் போது எதிர்பாராத பிழை. +identityProviderAuthenticationFailedMessage=அங்கீகாரம் தோல்வியுற்றது. அடையாள வழங்குநருடன் அங்கீகரிக்க முடியவில்லை. +couldNotSendAuthenticationRequestMessage= அடையாள வழங்குநருக்கு அங்கீகார கோரிக்கையை அனுப்ப முடியவில்லை. +unexpectedErrorHandlingRequestMessage=அடையாள வழங்குநரிடம் அங்கீகார கோரிக்கையை கையாளும் போது எதிர்பாராத பிழை. +invalidAccessCodeMessage=தவறான அணுகல் குறியீடு. +sessionNotActiveMessage=அமர்வு செயலில் இல்லை. +invalidCodeMessage=பிழை ஏற்பட்டது, தயவுசெய்து உங்கள் விண்ணப்பத்தின் மூலம் மீண்டும் உள்நுழைக. +identityProviderUnexpectedErrorMessage=அடையாள வழங்குநருடன் அங்கீகரிக்கும் போது எதிர்பாராத பிழை +identityProviderNotFoundMessage=அடையாளங்காட்டியுடன் அடையாள வழங்குநரைக் கண்டுபிடிக்க முடியவில்லை. +identityProviderLinkSuccess=உங்கள் மின்னஞ்சலை வெற்றிகரமாக சரிபார்க்கிறீர்கள். தயவுசெய்து உங்கள் அசல் உலாவிக்குச் சென்று உள்நுழைவுடன் தொடரவும். +staleCodeMessage=இந்த பக்கம் இனி செல்லுபடியாகாது, தயவுசெய்து உங்கள் பயன்பாட்டிற்குச் சென்று மீண்டும் உள்நுழைக +realmSupportsNoCredentialsMessage=எந்த நற்சான்றிதழ் வகையையும் சாம்ராஜ்யம் ஆதரிக்கவில்லை. +credentialSetupRequired=உள்நுழைய முடியாது, நற்சான்றிதழ் அமைப்பு தேவை. +identityProviderNotUniqueMessage=பல அடையாள வழங்குநர்களை மெய்ப்பாடு ஆதரிக்கிறது. எந்த அடையாள வழங்குநரை அங்கீகரிக்க பயன்படுத்த வேண்டும் என்பதை தீர்மானிக்க முடியவில்லை. +emailVerifiedMessage=உங்கள் மின்னஞ்சல் முகவரி சரிபார்க்கப்பட்டது. +staleEmailVerificationLink=நீங்கள் கிளிக் செய்த இணைப்பு பழைய பழமையான இணைப்பு மற்றும் இனி செல்லுபடியாகாது. உங்கள் மின்னஞ்சலை நீங்கள் ஏற்கனவே சரிபார்த்திருக்கலாம். +identityProviderAlreadyLinkedMessage={0} by வழங்கிய கூட்டாட்சி அடையாளம் ஏற்கனவே மற்றொரு பயனருடன் இணைக்கப்பட்டுள்ளது. +confirmAccountLinking=அடையாள வழங்குநரின் {1} account கணக்கை your 1 your உங்கள் கணக்கோடு இணைப்பதை உறுதிப்படுத்தவும். +confirmEmailAddressVerification=மின்னஞ்சல் முகவரியின் செல்லுபடியை உறுதிப்படுத்தவும் {0}. +confirmExecutionOfActions=பின்வரும் செயலை (களை) செய்யவும் + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=& laquo; பயன்பாட்டிற்குத் திரும்பு +missingParameterMessage=காணாமல் போன அளவுருக்கள் \: {0} +clientNotFoundMessage=வாடிக்கையாளர் கிடைக்கவில்லை. +clientDisabledMessage=வாடிக்கையாளர் முடக்கப்பட்டுள்ளது. +invalidParameterMessage=தவறான அளவுரு \: {0} +alreadyLoggedIn= நீங்கள் ஏற்கனவே உள்நுழைந்துள்ளீர்கள். +differentUserAuthenticated=இந்த அமர்வில் நீங்கள் ஏற்கனவே வெவ்வேறு பயனராக '' {0} '' அங்கீகரிக்கப்பட்டுள்ளீர்கள். முதலில் வெளியேறவும். +brokerLinkingSessionExpired=கோரப்பட்ட தரகர் கணக்கு இணைத்தல், ஆனால் தற்போதைய அமர்வு இனி செல்லுபடியாகாது. +proceedWithAction=& raquo; தொடர இங்கே கிளிக் செய்க + +requiredAction.CONFIGURE_TOTP= OTP ஐ உள்ளமைக்கவும் +requiredAction.terms_and_conditions=விதிமுறைகள் மற்றும் நிபந்தனைகள் +requiredAction.UPDATE_PASSWORD=கடவுச்சொல்லைப் புதுப்பிக்கவும் +requiredAction.UPDATE_PROFILE=சுயவிவரத்தைப் புதுப்பிக்கவும் +requiredAction.VERIFY_EMAIL=மின்னஞ்சலை சரிபார்க்கவும் + +doX509Login=நீங்கள் as ஆக உள்நுழைவீர்கள்: +clientCertificate=X509 கிளையன்ட் சான்றிதழ் \: +noCertificate=[சான்றிதழ் இல்லை] + + +pageNotFound=பக்கம் காணப்படவில்லை +internalServerError=உள் சேவையக பிழை ஏற்பட்டது + +console-username=பயனர்பெயர்: +console-password=கடவுச்சொல்: +console-otp=ஒரு முறை கடவுச்சொல்: +console-new-password=புதிய கடவுச்சொல்: +console-confirm-password=கடவுச்சொல்லை உறுதிப்படுத்தவும்: +console-update-password=உங்கள் கடவுச்சொல்லின் புதுப்பிப்பு தேவை. +console-verify-email=உங்கள் மின்னஞ்சல் முகவரியை நீங்கள் சரிபார்க்க வேண்டும். சரிபார்ப்புக் குறியீட்டைக் கொண்ட மின்னஞ்சலை {0 to க்கு அனுப்பினோம். கீழே உள்ளீட்டில் இந்த குறியீட்டை உள்ளிடவும். +console-email-code=மின்னஞ்சல் குறியீடு: +console-accept-terms=விதிமுறைகளை ஏற்கவா? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=பயனர் தகவல் +openshift.scope.user_check-access=பயனர் அணுகல் தகவல் +openshift.scope.user_full=முழு அணுகல் +openshift.scope.list-projects=திட்டங்களை பட்டியலிடுங்கள் + +# SAML authentication +saml.post-form.title=அங்கீகார வழிமாற்று +saml.post-form.message=திருப்பி விடுகிறது, தயவுசெய்து காத்திருங்கள். +saml.post-form.js-disabled=ஜாவாஸ்கிரிப்ட் முடக்கப்பட்டுள்ளது. அதை இயக்க நாங்கள் கடுமையாக பரிந்துரைக்கிறோம். தொடர கீழே உள்ள பொத்தானைக் கிளிக் செய்க. + +#authenticators +otp-display-name=அங்கீகார பயன்பாடு +otp-help-text=அங்கீகார பயன்பாட்டிலிருந்து சரிபார்ப்புக் குறியீட்டை உள்ளிடவும். +password-display-name=கடவுச்சொல் +password-help-text=உங்கள் கடவுச்சொல்லை உள்ளிட்டு உள்நுழைக. +auth-username-form-display-name=பயனர்பெயர் +auth-username-form-help-text=உங்கள் பயனர்பெயரை உள்ளிட்டு உள்நுழையத் தொடங்குங்கள் +auth-username-password-form-display-name=பயனர்பெயர் மற்றும் கடவுச்சொல் +auth-username-password-form-help-text=உங்கள் பயனர்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிட்டு உள்நுழைக. + +# WebAuthn +webauthn-display-name=பாதுகாப்பு விசை +webauthn-help-text=உள்நுழைய உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்தவும். +webauthn-passwordless-display-name=பாதுகாப்பு விசை +webauthn-passwordless-help-text=கடவுச்சொல் இல்லாத உள்நுழைவுக்கு உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்தவும். +webauthn-login-title=பாதுகாப்பு விசை உள்நுழைவு +webauthn-registration-title=பாதுகாப்பு விசை பதிவு +webauthn-available-authenticators=கிடைக்கக்கூடிய அங்கீகாரங்கள் + +# WebAuthn Error +webauthn-error-title=பாதுகாப்பு விசை பிழை +webauthn-error-registration=உங்கள் பாதுகாப்பு விசையை பதிவு செய்வதில் தோல்வி. +webauthn-error-api-get=பாதுகாப்பு விசையால் அங்கீகரிக்க முடியவில்லை. +webauthn-error-different-user=முதல் அங்கீகரிக்கப்பட்ட பயனர் பாதுகாப்பு விசையால் அங்கீகரிக்கப்பட்டவர் அல்ல. +webauthn-error-auth-verification=பாதுகாப்பு விசை அங்கீகார முடிவு தவறானது. +webauthn-error-register-verification=பாதுகாப்பு விசை பதிவு முடிவு தவறானது. +webauthn-error-user-not-found=பாதுகாப்பு விசையால் அங்கீகரிக்கப்பட்ட அறியப்படாத பயனர். + +identity-provider-redirector=மற்றொரு அடையாள வழங்குநருடன் இணைக்கவும் \ No newline at end of file diff --git a/keycloak-artemis/theme/base/login/register.ftl b/keycloak-artemis/theme/base/login/register.ftl new file mode 100644 index 00000000..25b5c9cd --- /dev/null +++ b/keycloak-artemis/theme/base/login/register.ftl @@ -0,0 +1,152 @@ +<#import "template.ftl" as layout> +<@layout.registrationLayout; section> + <#if section = "header"> + ${msg("registerTitle")} + <#elseif section = "form"> +

+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + <#if !realm.registrationEmailAsUsername> +
+
+ +
+
+ +
+
+ + + <#if passwordRequired??> +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + + <#if recaptchaRequired??> +
+
+
+
+
+ + + + + + diff --git a/keycloak-artemis/theme/base/login/theme.properties b/keycloak-artemis/theme/base/login/theme.properties new file mode 100644 index 00000000..1f7d337b --- /dev/null +++ b/keycloak-artemis/theme/base/login/theme.properties @@ -0,0 +1 @@ +locales=ca,de,eng,es,fra,it,ja,lt,nl,no,pl,pt-BR,ru,sk,sv,tr,zh-CN,ara,hin,kan,tam diff --git a/keycloak-artemis/theme/mosip/account/resources/css/account.css b/keycloak-artemis/theme/mosip/account/resources/css/account.css new file mode 100644 index 00000000..3878e43a --- /dev/null +++ b/keycloak-artemis/theme/mosip/account/resources/css/account.css @@ -0,0 +1,277 @@ +html { + height: 100%; +} + +body { + background-color: #F9F9F9; + margin: 0; + padding: 0; + height: 100%; +} + +header .navbar { + margin-bottom: 0; + min-height: inherit; +} + +.header .container { + position: relative; +} + +.navbar-title { + background-image: url('../img/logo.png'); + height: 25px; + background-repeat: no-repeat; + width: 123px; + margin: 3px 10px 5px; + text-indent: -99999px; +} + +.navbar-pf .navbar-utility { + right: 20px; + top: -34px; + font-size: 12px; +} + +.navbar-pf .navbar-utility > li > a { + color: #fff !important; + padding-bottom: 12px; + padding-top: 11px; + border-left: medium none; +} + +.container { + height: 100%; +} + +.content-area { + background-color: #fff; + border-color: #CECECE; + border-style: solid; + border-width: 0 1px; + height: 100%; + padding: 0 30px; +} + +.margin-bottom { + margin-bottom: 10px; +} + +/* Sidebar */ + +.bs-sidebar { + background-color: #f9f9f9; + padding-top: 44px; + padding-right: 0; + padding-left: 0; + z-index: 20; +} +.bs-sidebar ul { + list-style: none; + padding-left: 12px; +} + +.bs-sidebar ul li { + margin-bottom: 0.5em; + margin-left: -1em; +} +.bs-sidebar ul li a { + font-size: 14px; + padding-left: 25px; + color: #4d5258; + line-height: 28px; + display: block; + border-width: 1px 0 1px 1px; + border-style: solid; + border-color: #f9f9f9; +} +.bs-sidebar ul li a:hover, +.bs-sidebar ul li a:focus { + text-decoration: none; + color: #777777; + border-right: 2px solid #aaa; +} +.bs-sidebar ul li.active a { + background-color: #c7e5f0; + border-color: #56bae0; + font-weight: bold; + background-image: url(../img/icon-sidebar-active.png); + background-repeat: no-repeat; + background-position: right center; +} + +.bs-sidebar ul li.active a:hover { + border-right: none; +} + + +.content-area h2 { + font-family: "Open Sans", sans-serif; + font-weight: 100; + font-size: 24px; + margin-bottom: 25px; + margin-top: 25px; +} + +.subtitle { + text-align: right; + margin-top: 30px; + color: #909090; +} + +.required { + color: #CB2915; +} + + +.alert { + margin-top: 30px; + margin-bottom: 0; +} + +.feedback-aligner .alert { + background-position: 1.27273em center; + background-repeat: no-repeat; + border-radius: 2px; + border-width: 1px; + color: #4D5258; + display: inline-block; + font-size: 1.1em; + line-height: 1.4em; + margin: 0; + padding: 0.909091em 3.63636em; + position: relative; + text-align: left; +} +.alert.alert-success { + background-color: #E4F1E1; + border-color: #4B9E39; +} +.alert.alert-error { + background-color: #F8E7E7; + border-color: #B91415; +} +.alert.alert-warning { + background-color: #FEF1E9; + border-color: #F17528; +} +.alert.alert-info { + background-color: #E4F3FA; + border-color: #5994B2; +} + +.form-horizontal { + border-top: 1px solid #E9E8E8; + padding-top: 23px; +} + +.form-horizontal .control-label { + color: #909090; + line-height: 1.4em; + padding-top: 5px; + position: relative; + text-align: right; + width: 100%; +} + +.form-group { + position: relative; +} + +.control-label + .required { + position: absolute; + right: -2px; + top: 0; +} + +#kc-form-buttons { + text-align: right; + margin-top: 10px; +} + +#kc-form-buttons .btn-primary { + float: right; + margin-left: 8px; +} + +/* Authenticator page */ + +ol { + padding-left: 40px; +} + +ol li { + font-size: 13px; + margin-bottom: 10px; + position: relative; +} + +ol li img { + margin-top: 15px; + margin-bottom: 5px; + border: 1px solid #eee; +} + +hr + .form-horizontal { + border: none; + padding-top: 0; +} + +.kc-dropdown{ + position: relative; +} +.kc-dropdown > a{ + display:block; + padding: 11px 10px 12px; + line-height: 12px; + font-size: 12px; + color: #fff !important; + text-decoration: none; +} +.kc-dropdown > a::after{ + content: "\2c5"; + margin-left: 4px; +} +.kc-dropdown:hover > a{ + background-color: rgba(0,0,0,0.2); +} +.kc-dropdown ul li a{ + padding: 1px 11px; + font-size: 12px; + color: #000 !important; + border: 1px solid #fff; + text-decoration: none; + display:block; + line-height: 20px; +} +.kc-dropdown ul li a:hover{ + color: #4d5258; + background-color: #d4edfa; + border-color: #b3d3e7; +} +.kc-dropdown ul{ + position: absolute; + z-index: 2000; + list-style:none; + display:none; + padding: 5px 0px; + margin: 0px; + background-color: #fff !important; + border: 1px solid #b6b6b6; + border-radius: 1px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; + min-width: 100px; +} +.kc-dropdown:hover ul{ + display:block; +} + + +#kc-totp-secret-key { + border: 1px solid #eee; + font-size: 16px; + padding: 10px; + margin: 50px 0; +} \ No newline at end of file diff --git a/keycloak-artemis/theme/mosip/account/resources/img/favicon.ico b/keycloak-artemis/theme/mosip/account/resources/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..48188dedaaed851f39dcf435d3bde8e0dce753fd GIT binary patch literal 627 zcmV-(0*w8MP)fnm`u?`7EDZT zU@#004h&*6qDT$3A+1HARIlxQw0Gw~Fqjw}@R{Bx@00f{&kMVRw3Fz%ejPaV7yTE* zFfRVFfUfKNfww^PA5AYAhLPDOVn^Z@5Uq#8eCj{K^1uiH-%|sWPn^Z+JGia8uj_ip zZxduPnQOLfKTs5fNvoYXN5LH&;bDG;iSDDcboJ0G%bfWzLoC#S@B5!sRW1H1Fh4(U zCK8G8Z0;+U=JG_6dl~BMWvaKyqfNox4TZyDm6NS?PHPsf>mtkY)(X?p)044SEDSKQ zTqY7~#q8?iUXO?Cx}0ybNC=-sv&nO(ja);Zsw$GSbv}_!r^h5o;>pJq=GIKi)BxwS zIvtLQX_~mM%k55!1cRzr-Bk6$hn3YADC!p(StiU*sn$CQ!;;MuB0(GzS&ySNfE*{22sK>&cF zD98ZA!^0c7Ty9jX6mNc<6~^+fSY63eDwURie5q8*?sVcL zaG@TFvod&`Xu~G?W|nd+MRD*L$@~KG!V|6H_V+Po~-c73FxkIEGZ*N=jIun2<7~^e}_RcjiI`=UK zVCeYHtShu&-DyXLq!)E7W+-p1Ilz&A@c@&Xh}=}&gd+kA7qR+CC9YLuAP#kTzP zOOabP0l+XkKxNbyD literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/account/resources/img/keycloak-logo.png b/keycloak-artemis/theme/mosip/account/resources/img/keycloak-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..955574855d493cc248e112b7d755a95d641613f8 GIT binary patch literal 5213 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 span { + -moz-box-sizing: border-box; + color: white; + float: left; + font-size: 11px; + font-family: "Open Sans", sans-serif; + font-weight: bold; + height: 24px; + line-height: 24px; + padding: 0; + width: 50%; +} +.onoffswitch .onoffswitch-switch { + background-image: linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -o-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -moz-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -webkit-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -ms-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, 0, #ededed)); + border: 1px solid #aaa; + border-radius: 2px; + bottom: 0; + margin: 0; + position: absolute; + right: 39px; + top: 0; + transition: all 0.3s ease-in 0s; + -webkit-transition: all 0.3s ease-in 0s; + width: 23px; +} +.onoffswitch .onoffswitch-inner .onoffswitch-active { + background-image: linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -o-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -moz-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -webkit-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -ms-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #00a9ec), color-stop(1, 0, #009bd3)); + color: #FFFFFF; + padding-left: 10px; +} +.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-active, +.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-inactive { + background-image: none; + background-color: #e5e5e5; + color: #9d9fa1; +} +.onoffswitch .onoffswitch-inner .onoffswitch-inactive { + background: linear-gradient(#fefefe, #e8e8e8) repeat scroll 0 0 transparent; + color: #4d5258; + padding-right: 10px; + text-align: right; +} +.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0; +} +.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0; +} + + +/*********** Select 2 ***********/ + +.select2-container { + width: 100%; +} + +.select2-container-multi .select2-choices .select2-search-field { + height: 26px; +} + +/*********** html select ********/ +.overflow-select { + overflow: auto; +} + + +/*********** New Menu ***********/ + + +.sidebar-pf-left{ + background: #292e34; +} + +.sidebar-pf .nav-pills > li a i, .sidebar-pf .nav-pills > li a span{ + color: #72767b; + display: inline-block; + margin-right: 10px; +} +.sidebar-pf .nav-pills > li > a{ + color: #dbdada; + padding: 0px 20px 0 30px!important; + line-height: 30px; + border-left-width: 12px; + border-left-style: solid; + border-left-color: #292e34; + margin-left: -6px; +} + +.sidebar-pf .nav-pills > li > a:hover{ + background: #393f44; + border-color:#292e34; + border-left-color: #393f44; + color: #fff; +} + +.sidebar-pf .nav-pills > li > a:after{ + display: none!important; +} + + +.sidebar-pf .nav-pills > li.active > a { + color: #fff; + background: #393f44!important; + border-bottom: 1px solid #000!important; + border-top: 1px solid #000!important; + border-left-color: #39a5dc!important; +} + +.sidebar-pf .nav-pills > li.active a i, .sidebar-pf .nav-pills > li.active a span{ + color: #39a5dc; +} + +/*********** Realm selector ***********/ + +.realm-selector{ + color: #fff; + margin: 0 -20px; + position: relative; +} + +.realm-dropmenu{ + display: none; + cursor: pointer; + position: absolute; + top: 60px; + left: 0; + right: 0; + z-index: 999; + background: #fff; +} + +.realm-selector:hover .realm-dropmenu{ + display: block; +} + +.realm-add{ + padding: 10px; +} + +.realm-selector h2{ + font-size: 16px; + line-height: 60px; + padding: 0 20px; + margin: 0; + border-bottom: 1px solid #d5d5d6; +} + +.realm-selector h2 i{ + display: inline-block; + float: right; + line-height: 60px; +} + + +.realm-selector ul{ + padding-left: 0; + margin: 0; + list-style: none; + max-height: 200px; + overflow-y:auto; +} + + +.realm-selector ul li a{ + line-height: 60px; + padding: 0 20px; + border-bottom: 1px solid #d5d5d6; + line-height: 39px; + display: block; + font-size: 14px; +} + + +/*********** Overwrites header defaults ***********/ + +.navbar-pf{ + border-top: none!important; +} + +.navbar-pf .navbar-brand { + padding: 0; + height: 56px; + line-height: 56px; + background-position: center center; + background-image: url('../img/keyclok-logo.png'); + background-size: 148px 30px; + background-repeat: no-repeat; + width: 148px; +} + +.navbar-pf .navbar-utility .dropdown-toggle { + padding: 23px !important; +} + +.clickable { + cursor: pointer; +} + +h1 i { + color: #999999; + font-size: 18px; + margin-left: 10px; +} + +/* Action cell */ +.kc-action-cell { + background-color: #eeeeee; + background-image: linear-gradient(to bottom, #fafafa 0%, #ededed 100%); + background-repeat: repeat-x; + + text-align: center; + vertical-align: middle; + + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + cursor:pointer; +} + +.kc-action-cell:hover { + background-color: #eeeeee; + background-image: none; +} + +.kc-sorter span { + margin-left: 10px; +} + + +/* Time selector */ + +.time-selector input { + display: inline-block; + width: 120px; + padding-right: 0; + margin-right: 0; +} + +.time-selector select { + display: inline-block; + width: 80px; + margin-left: 0; + padding-left: 0; +} + +.ace_editor { + height: 600px; + width: 100%; +} + +.kc-button-input-file input { + float: left; + width: 73%; +} + +.kc-button-input-file label { + float: left; + margin-left: 2%; + width: 25%; +} + +table.kc-authz-table-expanded { + margin-top: 0px !important; +} + +.no-gutter > [class*='col-'] { + padding-right:0!important; + padding-left:0!important; +} + +.password-conceal { + font-family: 'text-security-disc'; + font-size: 14px; +} + +/* Deactivation styles for user-group membership tree models */ + +div[tree-model] li .deactivate { + color: #4a5053; + opacity: 0.4; +} + +div[tree-model] li .deactivate_selected { + background-color: #dcdcdc; + font-weight: bold; + padding: 1px 5px; +} + +/* search highlighting */ + +div[tree-model] li .highlight { + background-color: #aaddff; +} + +/* Manage credentials */ +table.credentials-table { + margin-top: 0; + margin-bottom: 20px; +} + +table.credentials-table td.kc-action-cell { + vertical-align: middle; +} + +table.credentials-table input[type='text'] { + width: 100%; +} + +td.credential-label-cell { + padding: 5px !important; +} + +td.credential-data-cell { + padding: 0 !important; +} + +td.credential-data-cell a { + margin-left: 5px; + line-height: 2.5em; + cursor: pointer; +} + +td.credential-action-cell { + padding: 0px !important; +} + +td.credential-action-cell div.kc-action-cell { + width: 100%; + height: 36px; + line-height: 34px; +} + +td.credential-action-cell.expanded div.kc-action-cell { + border-bottom: 1px solid #d1d1d1; +} + +table.credential-data-table { + margin-top: 0; +} + +table.credential-data-table tr:first-child td { + border-top: 0; +} + +table.credential-data-table td:first-child { + width: 150px; +} + +table.credential-data-table td.key { + text-align: right; + font-weight: bold; +} + diff --git a/keycloak-artemis/theme/mosip/admin/resources/img/favicon.ico b/keycloak-artemis/theme/mosip/admin/resources/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..48188dedaaed851f39dcf435d3bde8e0dce753fd GIT binary patch literal 627 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 akN*dX+`h$pZtd{^0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keycloak-artemis/theme/mosip/admin/resources/img/select-arrow.png b/keycloak-artemis/theme/mosip/admin/resources/img/select-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..a865a6fa7324e054cffa6e1878d69438780b20c7 GIT binary patch literal 1154 zcmbVMTWHfz7>p*_>aXo9GTd$y`I14I@;lVM5JhweKRY3LHQC7fY1b^;WQwQUZl zZ_DPjwq`A+Q}I<~jVEFP6CjoJ%#!7boBlvw?V=p`?Z&9uZobt9Ob)oP#nEs*8W&c;ICuXx!@E2M)bdlwvIE#@G8ws*Pl;dI?8%xx(sU$BXLTpf}aEyknRX9Ex zim)s%ggGwB*G7`bSSXr`29=P4X)D;YTqMb3NA3NLQ&>ArT2 zA9uH-Ywx;_@dpP62I76EH_hHudfZ-m_3_D@=eypgs=j~y@N$1<+s2d9fz493b7t>b zdi$;G;Cc4Oy<=aF_s6}ZOI9R~$+;sl=AP@Cwm_P2^Y!Ofnm`u?`7EDZT zU@#004h&*6qDT$3A+1HARIlxQw0Gw~Fqjw}@R{Bx@00f{&kMVRw3Fz%ejPaV7yTE* zFfRVFfUfKNfww^PA5AYAhLPDOVn^Z@5Uq#8eCj{K^1uiH-%|sWPn^Z+JGia8uj_ip zZxduPnQOLfKTs5fNvoYXN5LH&;bDG;iSDDcboJ0G%bfWzLoC#S@B5!sRW1H1Fh4(U zCK8G8Z0;+U=JG_6dl~BMWvaKyqfNox4TZyDm6NS?PHPsf>mtkY)(X?p)044SEDSKQ zTqY7~#q8?iUXO?Cx}0ybNC=-sv&nO(ja);Zsw$GSbv}_!r^h5o;>pJq=GIKi)BxwS zIvtLQX_~mM%k55!1cRzr-Bk6$hn3YADC!p(StiU*sn$CQ!;;MuB0(GzS&ySNfE*{22sK>&cF zD98ZA!^0c7Ty9jX6mNc<6~^+fSY63eDwURie5q8*?sVcL zaG@TFvod&`Xu~G?W|nd+MRD*L$@~KG!VpbFH`>7=NJimT8HPR1b>!7GRq%%D)H?|Wo% zC@Pq9$n!u*^5*>k`A#3+kZfF(`zJ152&b=J2><{9!0hZbO_;oR8NR%F9kLkE@5Z(} z|9X+Rqj^|(^f2UQ`B&qbstQ}zSHs@7Mx_7%0O*T*Sywa1;J+C|`oj73Q8;qyTvEs3fk{(-JWjQ|4!;N?Hk9Wu}T8~06?E)T~0nO z$|9aN^E2gq`rLgk&kqde>9h9ceYG2J7l(CKD-8eu0DaQs4ti*V_8>1|L40001@p8^a34>6V-IeVqb00000NkvXXu0mjf D@HyfE literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/login/resources/img/feedback-error-sign.png b/keycloak-artemis/theme/mosip/login/resources/img/feedback-error-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd500445d7249ddd1b1dea7dc79d5e2f75cf223 GIT binary patch literal 343 zcmV-d0jU0oP)Rb^f-HfiA|a#ZS&BN>m{U!Bf9XBlP=AUsPhep z0;u>nQCxb~G6c;4tOM)aDVebC2LF?__!*$Y%|S5$e;ZcIdR+o#XrlC>L#@3RFZO+y z4ac0_$8S?_3L#)o1cV>wsb|~_2qr}-{Xy0sk1ddFrS2NjYBy!#lv@hhf%T~P1a2ls zg9cR!$Y8{U0euD81vt(&PyxuVl0?xy+oT=qfZ( zU<;qzo;L~X{8Dl*OuQ;g6C?jcvTY4MH)UgY@3N+I%Y&B-aM#Gmz4*K9-@h9B>+j#Q z@1I{-{^;BJ=zrF!cK!}Pr!g=bh|HcT>Z=m}wDHmbyC0nDaV#gVm&uycGotW zpv;r|b9e9Fzj)!!_FHF``Wx|qb*+1{*5LE=)%xG0rlsBtdT?-dwR{mlor@ArQ!T)1>sQ|BRGRy6pUXk5Eq%Jj zt#hDSUl#1`1Hp4rtdp{v4HrVu6{1-oD!M}vd literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/login/resources/img/feedback-success-sign.png b/keycloak-artemis/theme/mosip/login/resources/img/feedback-success-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..640bd71cab7bdfc7a8adcf28ffaf6db736a1c008 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2comSQK*5Dp-y;YjHK@;M7UB8!3Q zuY)k7lg8`{prB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&3=E9oo-U3d z7QI&|@AYC16lmSQ(|nzi6W2vA0hQiX{shsj9%4*QVx6m7=T11}S0g4pTOrBJ(L2zj zqqUbmAu&;Tnwis)`FE;yFXbH4TM_-V#F%}bS9C7N)nccy^_%s?ydQOE$UA=bQASGdP zUS5*^?Y}eFBd=Y%8?p303zx;a-hVOO%tz8T)jmnDmV3_E#n4nO@i}MX#=5_=rbOm! z*!s=OFZw-8%CQyiuZC^?Jc-4l;#4*gQu&X%Q~loCIB2_ BsrLW? literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/login/resources/img/feedback-warning-arrow-down.png b/keycloak-artemis/theme/mosip/login/resources/img/feedback-warning-arrow-down.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2d9d2aeb1c1461767988a042aae50492d454bc GIT binary patch literal 513 zcmV+c0{;DpP)pbFH`>7=NJimT8HPR1b>!7GRq%%D)H?|Wo% zC@Pq9$n!u*^5*>k`A#3+kZfF(`zJ152&b=J2><{9!0hZbO_;oR8NR%F9kLkE@5Z(} z|9X+Rqj^|(^f2UQ`B&qbstQ}zSHs@7Mx_7%0O*T*Sywa1;J+C|`oj73Q8;qyTvEs3fk{(-JWjQ|4!;N?Hk9Wu}T8~06?E)T~0nO z$|9aN^E2gq`rLgk&kqde>9h9ceYG2J7l(CKD-8eu0DaQs4ti*V_8>1|L40001@p8^a34>6V-IeVqb00000NkvXXu0mjf D@HyfE literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/login/resources/img/feedback-warning-sign.png b/keycloak-artemis/theme/mosip/login/resources/img/feedback-warning-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..f9392a356fd3b383997c1ef289b48d02be96c351 GIT binary patch literal 646 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 literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/login/resources/img/keycloak-logo-text.png b/keycloak-artemis/theme/mosip/login/resources/img/keycloak-logo-text.png new file mode 100644 index 0000000000000000000000000000000000000000..63f3b9f87deb2dee6172d44fbad7177064245101 GIT binary patch literal 19994 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 literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/login/resources/img/mosiplogo.png b/keycloak-artemis/theme/mosip/login/resources/img/mosiplogo.png new file mode 100644 index 0000000000000000000000000000000000000000..321ba3df51e313a491639e7d6fd7af1b7488e9b5 GIT binary patch literal 11347 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 + +  + + + Welcome to ${productNameFull} + + + + + + + + <#if properties.styles?has_content> + <#list properties.styles?split(' ') as style> + + + + + + + + + diff --git a/keycloak-artemis/theme/mosip/welcome/resources/admin-console.png b/keycloak-artemis/theme/mosip/welcome/resources/admin-console.png new file mode 100644 index 0000000000000000000000000000000000000000..ac734972ff042a5afcc95ab6e2c0303a22f71b2e GIT binary patch literal 712 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 literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/welcome/resources/bg.png b/keycloak-artemis/theme/mosip/welcome/resources/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..b722a001b320de8a297a800267f24499f017036c GIT binary patch literal 72796 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�uUMdUXaHskh$;TuNe>sE5A1;RU9ye9>rOq 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 D>3@or literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/welcome/resources/css/welcome.css b/keycloak-artemis/theme/mosip/welcome/resources/css/welcome.css new file mode 100644 index 00000000..c6a679a2 --- /dev/null +++ b/keycloak-artemis/theme/mosip/welcome/resources/css/welcome.css @@ -0,0 +1,140 @@ +body { + background: #fff url(../bg.png) no-repeat center bottom fixed; + background-size: cover; +} +.welcome-header { + margin-top: 10px; + margin-bottom: 50px; + margin-left: -10px; +} +.welcome-header img { + width: 150px; + margin-bottom: 40px; +} +.welcome-message { + margin-top: 20px; +} +.h-l { + min-height: 370px; + padding: 10px 20px 10px; + overflow: hidden; +} +.h-l h3 { + margin-bottom: 10px; +} +.h-m { + height: 110px; + padding-top: 23px; +} +.card-pf img { + width: 22px; + margin-right: 10px; + vertical-align: bottom; +} +img.doc-img { + width: auto; + height: 22px; +} +.link { + font-size: 16px; + vertical-align: baseline; + margin-left: 5px; +} +h3 { + font-weight: 550; +} +h3 a:link, +h3 a:visited { + color: #333; + font-weight: 550; +} +h3 a:hover, +h3 a:hover .link { + text-decoration: none; + color: #00659c; +} +.h-l h3 a img { + height: 30px; + width: auto; +} + +.description { + margin-top: 30px; +} + +.card-pf { + border-top: 1px solid rgba(3, 3, 3, 0.1); + box-shadow: 0 1px 1px rgba(3, 3, 3, 0.275); +} + +.welcome-form label, +.welcome-form input { + display: block; + width: 100%; +} + +.welcome-form label { + color: #828486; + font-weight: normal; + margin-top: 18px; +} +.welcome-form input { + border: 0; + border-bottom: solid 1px #cbcbcb; +} +.welcome-form input:focus { + border-bottom: solid 1px #5e99c6; + outline-width: 0; +} +.welcome-form button { + margin-top: 10px; +} +.error { + color: #c00; + border-color: #c00; + padding: 5px 10px; +} +.success { + color: #3f9c35; + border-color: #3f9c35; + padding: 5px 10px; +} +.welcome-form + .welcome-primary-link, +.welcome-message + .welcome-primary-link { + display: none; +} + +.footer img { + float: right; + width: 150px; + margin-top: 30px; +} + +@media (max-width: 768px) { + .welcome-header { + margin-top: 10px; + margin-bottom: 20px; + } + .welcome-header img { + margin-bottom: 20px; + } + h3 { + margin-top: 10px; + } + .h-l, + .h-m { + height: auto; + min-height: auto; + padding: 5px 10px; + } + .h-l img { + display: inline; + margin-bottom: auto; + } + .description { + display: none; + } + .footer img { + margin-top: 10px; + } +} diff --git a/keycloak-artemis/theme/mosip/welcome/resources/favicon.ico b/keycloak-artemis/theme/mosip/welcome/resources/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..48188dedaaed851f39dcf435d3bde8e0dce753fd GIT binary patch literal 627 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 E08=aAq5uE@ literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/welcome/resources/logo.png b/keycloak-artemis/theme/mosip/welcome/resources/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..134440b16ebf5c23935f14502c08903a530d7829 GIT binary patch literal 7539 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 E08=aAq5uE@ literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/welcome/resources/mail.png b/keycloak-artemis/theme/mosip/welcome/resources/mail.png new file mode 100644 index 0000000000000000000000000000000000000000..3a63e7b855b579a170e559a232e386d561542cf3 GIT binary patch literal 1037 zcmV+o1oHcdP)T2Cy$)U9 zZdp7YFBPaeaOG=McRPR&D4pN~sH2jds;Vf5N+!aSigM17{Pc&g>$$jn=_QqXlS(GS zcvmB*wkQ;hVaoLV&NUwUrW?-X9x1zcq;2I|9QXq1!My$u{8tf9f$bh&qz3~42YtpV zzewvPg4y;?5sJn*0cP3qB1~8-5iA^y!MH{jJ(Pn!!^Ykzag3MhL$oh|Mf+h<_pTME zC*?SG--n&_Il_?`UiUsPs)oILe1S##Au$Eh?pR_H&js{WchR%~%a#|$b^2Z?B3O@1 z1VJUmY5{tyn^;y0S^bP_G%VXEtg(T%y7XYOS|JP?1q&`5jlsB1!?NZ5FFxt5?&R}e z0!laBnprAJ#X^|0N;HXu>{Qr3f!?}buy){}&!D%u;U%c>wqHhsy4SI~r&U_;r01eFv_S|!Fi8*(omy5Uw#54EsT(;tjLZ*@P&DJ2w*L2unB z_Nb1=8kpa7LrTb|tiS+ZP+kv%MuFODKFhl$`_aAqBp07%S6!e92ivjE1{fw35b&wA z^YAi#pj0fxvi1dfWFpqs#@=aOykmUw2P3T1n;(^9s$Z7zT)b=^EZ|dE7?WdCEg^dM z?$b`r-Ywb>i9R)n|5j;rvnZ?ic)2WMQZ2#!sGQgmX3egwybDERm@&KHq|ZU>sm2LK zTA%U;1_0`25eymyu_a{c9pe+JluxQ9SQwLMAwe49e^Oxw=xw zQ%v>CAQcPn-r{C?XW2d>p7D~4gfYWXUXUG2?sq1wl2ugF#XwsfmbJ>fLFFBc@y`6F zn|KsUj@oKI=11iz&wE9Yipk#ThFdYImf+*&5jGFb5RBa1NxSjRXL)g{pkTKT(#&oI zuW#VH4CmC7iViG!7o~h*p&pli$BHE$!5+bi73}Jodw(MZ32SCm#cw};0RV)2iZfu_ zgkP`9x@Ong0qm4mCVnm1w+0x;rT~~q1ZpJlo(B`9^k&W<$SS3jt?36p00000NkvXX Hu0mjf{@~(i literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/welcome/resources/user.png b/keycloak-artemis/theme/mosip/welcome/resources/user.png new file mode 100644 index 0000000000000000000000000000000000000000..0d61bb470927ad8c25aaed14dbd338b6f4a865fe GIT binary patch literal 2423 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 literal 0 HcmV?d00001 diff --git a/keycloak-artemis/theme/mosip/welcome/theme.properties b/keycloak-artemis/theme/mosip/welcome/theme.properties new file mode 100644 index 00000000..154ff327 --- /dev/null +++ b/keycloak-artemis/theme/mosip/welcome/theme.properties @@ -0,0 +1,6 @@ +import=common/keycloak + +styles=node_modules/patternfly/dist/css/patternfly.css node_modules/patternfly/dist/css/patternfly-additions.css css/welcome.css + +documentationUrl=https://www.keycloak.org/documentation.html +displayCommunityLinks=true \ No newline at end of file diff --git a/keycloak-jboss/Dockerfile b/keycloak-jboss/Dockerfile new file mode 100644 index 00000000..c3cf4c1d --- /dev/null +++ b/keycloak-jboss/Dockerfile @@ -0,0 +1,13 @@ +FROM jboss/keycloak:9.0.0 + +ADD --chown=jboss:root ./theme/ ./theme + +RUN cp -R ./theme/mosip /opt/jboss/keycloak/themes/mosip + +RUN cp -R ./theme/base /opt/jboss/keycloak/themes + + +ADD --chown=jboss:root ./standalone/ ./standalone + +RUN cp -R ./standalone/deployments/* /opt/jboss/keycloak/standalone/deployments + diff --git a/keycloak-jboss/standalone/deployments/spi-keycloak-1.0.jar b/keycloak-jboss/standalone/deployments/spi-keycloak-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..03e897e3b7ecc448bfe37340f8d83f9926b80a1a GIT binary patch literal 6179 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
+
+
+
+ ${productName} +

Welcome to ${productNameFull}

+
+
+ +
+
+

Documentation

+
+ + User Guide, Admin REST API and Javadocs + +
+
+
+
+ <#if properties.displayCommunityLinks = "true"> + + + + +
+
+ +
+
+
ユーザーの代理 +realmChoice=レルム +unknownUser=不明なユーザー +loginTotpTitle=モバイル Authenticator セットアップ +loginProfileTitle=アカウント情報の更新 +loginTimeout=انتهت مهلة محاولة تسجيل الدخول الخاصة بك. سيبدأ تسجيل الدخول من البداية. +oauthGrantTitle={0}へのアクセスを許可 +oauthGrantTitleHtml={0} +errorTitle=申し訳ございません +errorTitleHtml=申し訳ございません +emailVerifyTitle=Eメール確認 +emailForgotTitle=パスワードをお忘れですか? +updatePasswordTitle=パスワード更新 +codeSuccessTitle=成功コード +codeErrorTitle=エラーコード\: {0} +displayUnsupported=要求された表示タイプがサポートされていません +browserRequired=ログインに必要なブラウザー +browserContinue=ログインを完了するために必要なブラウザー +browserContinuePrompt=ブラウザーを開いてログインを続行しますか? [y/n]: +browserContinueAnswer=y + + +termsTitle=利用規約 +termsText=

利用規約はここで設定する必要があります

+termsPlainText=定義される利用規約。 + +recaptchaFailed=無効な reCAPTCHA +recaptchaNotConfigured=reCAPTCHA が必須ですが、設定されていません +consentDenied=同意は拒否されました。 + +noAccount=新規ユーザーですか? +username=ユーザー名 +usernameOrEmail=اسم المستخدم أو البريد الالكتروني +firstName=名 +givenName=名 +fullName=氏名 +lastName=姓 +familyName=姓 +email=Eメール +password=كلمه السر +passwordConfirm=パスワード (確認) +passwordNew=新しいパスワード +passwordNewConfirm=新しいパスワード (確認) +rememberMe=ログイン状態の保存 +authenticatorCode=ワンタイムコード +address=住所 +street=番地 +locality=市区町村 +region=都道府県 +postal_code=郵便番号 +country=国 +emailVerified=確認済みEメール +gssDelegationCredential=GSS 代行クレデンシャル + +profileScopeConsentText=ユーザープロフィール +emailScopeConsentText=メールアドレス +addressScopeConsentText=アドレス +phoneScopeConsentText=電話番号 +offlineAccessScopeConsentText=オフラインアクセス +samlRoleListScopeConsentText=ロール +rolesScopeConsentText=ユーザーロール + +loginTotpIntro=このアカウントにアクセスするには、ワンタイムパスワードジェネレーターを設定する必要があります +loginTotpStep1=次のアプリケーションのいずれかをモバイルにインストールしてください +loginTotpStep2=アプリケーションを開き、バーコードをスキャンしてください +loginTotpStep3=アプリケーションで提供されたワンタイムコードを入力して送信をクリックし、セットアップを完了してください。 +loginTotpManualStep2=アプリケーションを開き、キーを入力してください +loginTotpManualStep3=アプリケーションが設定できる場合は、次の設定値を使用してください +loginTotpUnableToScan=スキャンできませんか? +loginTotpScanBarcode=バーコードをスキャンしますか? +loginOtpOneTime=ワンタイムコード +loginTotpType=タイプ +loginTotpAlgorithm=アルゴリズム +loginTotpDigits=桁 +loginTotpInterval=間隔 +loginTotpCounter=カウンター + +loginTotp.totp=時間ベース +loginTotp.hotp=カウンターベース + + +oauthGrantRequest=アクセス権を許可してよろしいでしょうか? +inResource=in + +emailVerifyInstruction1=メールアドレスを確認する手順を記載したEメールを送信しました。 +emailVerifyInstruction2=Eメールで確認コードを受け取っていませんか? +emailVerifyInstruction3=Eメールを再送信します。 + +emailLinkIdpTitle=リンク {0} +emailLinkIdp1={0} の {1} アカウントを あなたの {2} アカウントとリンクするための手順を記載したEメールを送信しました。 +emailLinkIdp2=Eメールで確認コードを受け取っていませんか? +emailLinkIdp3=Eメールを再送信します。 +emailLinkIdp4=別のブラウザーでメールを確認済みの場合 +emailLinkIdp5=続けるには + +backToLogin=« ログインに戻る + +emailInstruction=ユーザー名またメールアドレスを入力してください。新しいパスワードの設定方法をご案内いたします。 + +copyCodeInstruction=このコードをコピーし、あなたのアプリケーションにペーストしてください: + +pageExpiredTitle=ページの有効期限が切れています +pageExpiredMsg1=ログインプロセスを再開するには +pageExpiredMsg2=ログイン処理を続行するには + +personalInfo=個人情報: +role_admin=管理者 +role_realm-admin=レルム管理者 +role_create-realm=レルムの作成 +role_create-client=クライアントの作成 +role_view-realm=レルムの参照 +role_view-users=ユーザーの参照 +role_view-applications=アプリケーションの参照 +role_view-clients=クライアントの参照 +role_view-events=イベントの参照 +role_view-identity-providers=アイデンティティ プロバイダーの参照 +role_manage-realm=レルムの管理 +role_manage-users=ユーザーの管理 +role_manage-applications=アプリケーションの管理 +role_manage-identity-providers=アイデンティティ プロバイダーの管理 +role_manage-clients=クライアントの管理 +role_manage-events=イベントの管理 +role_view-profile=プロフィールの参照 +role_manage-account=アカウントの管理 +role_manage-account-links=アカウントリンクの管理 +role_read-token=トークンの読み取り +role_offline-access=オフラインアクセス +client_account=アカウント +client_security-admin-console=セキュリティ管理コンソール +client_admin-cli=管理 CLI +client_realm-management=レルム管理 +client_broker=ブローカー + +invalidUserMessage=خطأ في اسم المستخدم أو كلمة مرور +invalidEmailMessage=無効なメールアドレスです。 +accountDisabledMessage=アカウントは無効です。管理者に連絡してください。 +accountTemporarilyDisabledMessage=アカウントは一時的に無効です。管理者に連絡、またはしばらく時間をおいてから再度お試しください。 +expiredCodeMessage=ログインタイムアウトが発生しました。再度ログインしてください。 +expiredActionMessage=アクションは期限切れです。今すぐログインしてください。 +expiredActionTokenNoSessionMessage=アクションは期限切れです。 +expiredActionTokenSessionExistsMessage=アクションは期限切れです。もう一度やり直してください。 + +missingFirstNameMessage=名を指定してください。 +missingLastNameMessage=姓を指定してください。 +missingEmailMessage=Eメールを指定してください。 +missingUsernameMessage=ユーザー名を指定してください。 +missingPasswordMessage=رمز مرور خاطئ +missingTotpMessage=Authenticator コードを指定してください。 +notMatchPasswordMessage=パスワードが一致していません。 + +invalidPasswordExistingMessage=間違った既存のパスワードです。 +invalidPasswordBlacklistedMessage=無効なパスワード: パスワードがブラックリストに含まれています。 +invalidPasswordConfirmMessage=パスワード確認が一致していません。 +invalidTotpMessage=間違った Authenticator コードです。 + +usernameExistsMessage=既に存在するユーザー名です。 +emailExistsMessage=既に存在するEメールです。 + +federatedIdentityExistsMessage={0} {1} のユーザーは既に存在します。そのアカウントをリンクするにはアカウント管理にログインしてください。 + +confirmLinkIdpTitle=既に存在するアカウントです。 +federatedIdentityConfirmLinkMessage={0} {1} のユーザーは既に存在します。継続しますか? +#federatedIdentityConfirmReauthenticateMessage={1} でアカウントをリンクするために {0} として認証します +confirmLinkIdpReviewProfile=プロフィールの確認 +confirmLinkIdpContinue=既存のアカウントに追加する + +configureTotpMessage=アカウントを有効にするにはモバイル Authenticator のセットアップが必要です。 +updateProfileMessage=アカウントを有効にするにはユーザープロフィールの更新が必要です。 +updatePasswordMessage=アカウントを有効にするにはパスワードの更新が必要です。 +resetPasswordMessage=パスワードを変更する必要があります。 +verifyEmailMessage=アカウントを有効にするにはメールアドレスの確認が必要です。 +linkIdpMessage=アカウントを {0} とリンクするにはメールアドレスの確認が必要です。 + +emailSentMessage=詳細な手順を記載したEメールをすぐに受信してください。 +emailSendErrorMessage=Eメールの送信に失敗しました。しばらく時間をおいてから再度お試しください。 + +accountUpdatedMessage=アカウントが更新されました。 +accountPasswordUpdatedMessage=パスワードが更新されました。 + +delegationCompleteHeader=ログインに成功しました +delegationCompleteMessage=このブラウザーのウィンドウを閉じて、コンソールアプリケーションに戻ることができます。 +delegationFailedHeader=ログインに失敗しました +delegationFailedMessage=このブラウザーウィンドウを閉じてコンソールアプリケーションに戻り、再度ログインを試みることができます。 + +noAccessMessage=アクセスがありません + +invalidPasswordMinLengthMessage=無効なパスワード: 最小 {0} の長さが必要です。 +invalidPasswordMinDigitsMessage=無効なパスワード: 少なくとも {0} 文字の数字を含む必要があります。 +invalidPasswordMinLowerCaseCharsMessage=無効なパスワード: 少なくとも {0} 文字の小文字を含む必要があります。 +invalidPasswordMinUpperCaseCharsMessage=無効なパスワード: 少なくとも {0} 文字の大文字を含む必要があります。 +invalidPasswordMinSpecialCharsMessage=無効なパスワード: 少なくとも {0} 文字の特殊文字を含む必要があります。 +invalidPasswordNotUsernameMessage=無効なパスワード: ユーザー名と同じパスワードは禁止されています。 +invalidPasswordRegexPatternMessage=無効なパスワード: 正規表現パターンと一致しません。 +invalidPasswordHistoryMessage=無効なパスワード: 最近の {0} パスワードのいずれかと同じパスワードは禁止されています。 +invalidPasswordGenericMessage=無効なパスワード: 新しいパスワードはパスワードポリシーと一致しません。 + +failedToProcessResponseMessage=応答を処理できませんでした +httpsRequiredMessage=HTTPS が必須です +realmNotEnabledMessage=レルムが有効ではありません +invalidRequestMessage=無効なリクエストです +failedLogout=ログアウトに失敗しました +unknownLoginRequesterMessage=不明なログイン要求元です +loginRequesterNotEnabledMessage=ログイン要求元は有効ではありません +bearerOnlyMessage=bearer-only のアプリケーションはブラウザーログインを開始することが許可されていません +standardFlowDisabledMessage=与えられた response_type でクライアントはブラウザーログインを開始することが許可されていません。 Standard Flow は無効です。 +implicitFlowDisabledMessage=与えられた response_type でクライアントはブラウザーログインを開始することが許可されていません。 Implicit Flow は無効です。 +invalidRedirectUriMessage=無効なリダイレクト URI です +unsupportedNameIdFormatMessage=サポートされていない NameID Format です +invalidRequesterMessage=無効な要求元です +registrationNotAllowedMessage=登録は許可されていません +resetCredentialNotAllowedMessage=クレデンシャルのリセットは許可されていません + +permissionNotApprovedMessage=アクセス権は承認されていません。 +noRelayStateInResponseMessage=アイデンティティ プロバイダーからの応答に RelayState がありません。 +insufficientPermissionMessage=アイデンティティにリンクするには不十分なアクセス権です。 +couldNotProceedWithAuthenticationRequestMessage=アイデンティティ プロバイダーに認証要求を続行できませんでした。 +couldNotObtainTokenMessage=アイデンティティ プロバイダーからトークンを取得できませんでした。 +unexpectedErrorRetrievingTokenMessage=アイデンティティ プロバイダーからのトークン取得で予期せぬエラーが発生しました。 +unexpectedErrorHandlingResponseMessage=アイデンティティ プロバイダーからの応答を処理する際に予期せぬエラーが発生しました。 +identityProviderAuthenticationFailedMessage=認証に失敗しました。アイデンティティ プロバイダーを使用して認証できませんでした。 +couldNotSendAuthenticationRequestMessage=アイデンティティ プロバイダーに認証要求を送信することができませんでした。 +unexpectedErrorHandlingRequestMessage=アイデンティティ プロバイダーへの認証要求を処理する際に予期せぬエラーが発生しました。 +invalidAccessCodeMessage=無効なアクセスコードです。 +sessionNotActiveMessage=セッションが有効ではありません。 +invalidCodeMessage=エラーが発生しました。アプリケーションを介して再度ログインしてください。 +identityProviderUnexpectedErrorMessage=アイデンティティ プロバイダーによる認証の際に予期せぬエラーが発生しました +identityProviderNotFoundMessage=該当の識別子を持つアイデンティティ プロバイダーが見つかりませんでした。 +identityProviderLinkSuccess=Eメールを正常に確認しました。元のブラウザーに戻ってログインしてください。 +staleCodeMessage=このページはもはや有効ではありませんので、アプリケーションに戻り再度ログインしてください +realmSupportsNoCredentialsMessage=レルムはクレデンシャルタイプをサポートしていません。 +identityProviderNotUniqueMessage=レルムは複数のアイデンティティ プロバイダーをサポートしています。どのアイデンティティ プロバイダーが認証に使用されるべきか判断できませんでした。 +emailVerifiedMessage=メールアドレスが確認できました。 +staleEmailVerificationLink=クリックしたリンクは古いリンクであり、有効ではありません。すでにメールを確認していませんか? +identityProviderAlreadyLinkedMessage={0}によって返された連携されたアイデンティティは、すでに別のユーザーにリンクされています。 +confirmAccountLinking=アイデンティティプロバイダー{1}のアカウント{0}とあなたのアカウントとのリンクを確認してください。 +confirmEmailAddressVerification=Eメールアドレス{0}の有効性を確認してください。 +confirmExecutionOfActions=次の操作を実行します。 + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=« アプリケーションに戻る +missingParameterMessage=不足パラメータ\: {0} +clientNotFoundMessage=クライアントが見つかりません。 +clientDisabledMessage=クライアントが無効になっています。 +invalidParameterMessage=無効なパラメータ\: {0} +alreadyLoggedIn=既にログインしています。 +differentUserAuthenticated=すでにこのセッションで異なるユーザー''{0}''として認証されています。まずログアウトしてください。 +brokerLinkingSessionExpired=要求されたブローカーアカウントのリンクは、現在のセッションでは有効ではありません。 +proceedWithAction=» 続行するにはここをクリックしてください + +requiredAction.CONFIGURE_TOTP=OTPの設定 +requiredAction.terms_and_conditions=利用規約 +requiredAction.UPDATE_PASSWORD=パスワードの更新 +requiredAction.UPDATE_PROFILE=プロフィールの更新 +requiredAction.VERIFY_EMAIL=Eメールの確認 + +doX509Login=次のユーザーとしてログインします\: +clientCertificate=X509クライアント証明書\: +noCertificate=[証明書なし] + + +pageNotFound=ページが見つかりません +internalServerError=内部サーバーエラーが発生しました + +console-username=ユーザー名: +console-password=パスワード: +console-otp=ワンタイムパスワード: +console-new-password=新しいパスワード: +console-confirm-password=パスワードの確認: +console-update-password=パスワードの更新が必要です。 +console-verify-email=メールアドレスを確認する必要があります。確認コードを含むメールが{0}に送信されました。このコードを以下に入力してください。 +console-email-code=Eメールコード: +console-accept-terms=利用規約に同意しますか? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=ユーザー情報 +openshift.scope.user_check-access=ユーザーアクセス情報 +openshift.scope.user_full=フルアクセス +openshift.scope.list-projects=プロジェクトの一覧表示 + +# SAML authentication +saml.post-form.title=認証リダイレクト +saml.post-form.message=リダイレクトしています。お待ちください。 +saml.post-form.js-disabled=JavaScriptが無効になっています。有効にすることを強くお勧めします。継続するには、下のボタンをクリックしてください。 diff --git a/keycloak-jboss/theme/base/login/messages/messages_eng.properties b/keycloak-jboss/theme/base/login/messages/messages_eng.properties new file mode 100644 index 00000000..62893f74 --- /dev/null +++ b/keycloak-jboss/theme/base/login/messages/messages_eng.properties @@ -0,0 +1,376 @@ +doLogIn=Log In +doRegister=Register +doCancel=Cancel +doSubmit=Submit +doBack=Back +doYes=Yes +doNo=No +doContinue=Continue +doIgnore=Ignore +doAccept=Accept +doDecline=Decline +doForgotPassword=Forgot Password? +doClickHere=Click here +doImpersonate=Impersonate +doTryAgain=Try again +doTryAnotherWay=Try Another Way +kerberosNotConfigured=Kerberos Not Configured +kerberosNotConfiguredTitle=Kerberos Not Configured +bypassKerberosDetail=Either you are not logged in by Kerberos or your browser is not set up for Kerberos login. Please click continue to login in through other means +kerberosNotSetUp=Kerberos is not set up. You cannot login. +registerTitle=Register +loginTitle=Log in to {0} +loginTitleHtml={0} +impersonateTitle={0} Impersonate User +impersonateTitleHtml={0} Impersonate User +realmChoice=Realm +unknownUser=Unknown user +loginTotpTitle=Mobile Authenticator Setup +loginProfileTitle=Update Account Information +loginTimeout=Your login attempt timed out. Login will start from the beginning. +oauthGrantTitle=Grant Access to {0} +oauthGrantTitleHtml={0} +errorTitle=We are sorry... +errorTitleHtml=We are sorry ... +emailVerifyTitle=Email verification +emailForgotTitle=Forgot Your Password? +updatePasswordTitle=Update password +codeSuccessTitle=Success code +codeErrorTitle=Error code\: {0} +displayUnsupported=Requested display type unsupported +browserRequired=Browser required to login +browserContinue=Browser required to complete login +browserContinuePrompt=Open browser and continue login? [y/n]: +browserContinueAnswer=y + + +termsTitle=Terms and Conditions +termsText=

Terms and conditions to be defined

+termsPlainText=Terms and conditions to be defined. + +recaptchaFailed=Invalid Recaptcha +recaptchaNotConfigured=Recaptcha is required, but not configured +consentDenied=Consent denied. + +noAccount=New user? +username=Username +usernameOrEmail=Username or email +firstName=First name +givenName=Given name +fullName=Full name +lastName=Last name +familyName=Family name +email=Email +password=Password +passwordConfirm=Confirm password +passwordNew=New Password +passwordNewConfirm=New Password confirmation +rememberMe=Remember me +authenticatorCode=One-time code +address=Address +street=Street +locality=City or Locality +region=State, Province, or Region +postal_code=Zip or Postal code +country=Country +emailVerified=Email verified +gssDelegationCredential=GSS Delegation Credential +organizationName=Organization Name +phoneNumber=Phone Number +partnerType=Partner Type +langCode=Notification Language + +profileScopeConsentText=User profile +emailScopeConsentText=Email address +addressScopeConsentText=Address +phoneScopeConsentText=Phone number +offlineAccessScopeConsentText=Offline Access +samlRoleListScopeConsentText=My Roles +rolesScopeConsentText=User roles + +restartLoginTooltip=Restart login + +loginTotpIntro=You need to set up a One Time Password generator to access this account +loginTotpStep1=Install one of the following applications on your mobile: +loginTotpStep2=Open the application and scan the barcode: +loginTotpStep3=Enter the one-time code provided by the application and click Submit to finish the setup. +loginTotpStep3DeviceName=Provide a Device Name to help you manage your OTP devices. +loginTotpManualStep2=Open the application and enter the key: +loginTotpManualStep3=Use the following configuration values if the application allows setting them: +loginTotpUnableToScan=Unable to scan? +loginTotpScanBarcode=Scan barcode? +loginCredential=Credential +loginOtpOneTime=One-time code +loginTotpType=Type +loginTotpAlgorithm=Algorithm +loginTotpDigits=Digits +loginTotpInterval=Interval +loginTotpCounter=Counter +loginTotpDeviceName=Device Name + +loginTotp.totp=Time-based +loginTotp.hotp=Counter-based + +loginChooseAuthenticator=Select login method + +oauthGrantRequest=Do you grant these access privileges? +inResource=in + +emailVerifyInstruction1=An email with instructions to verify your email address has been sent to you. +emailVerifyInstruction2=Haven''t received a verification code in your email? +emailVerifyInstruction3=to re-send the email. + +emailLinkIdpTitle=Link {0} +emailLinkIdp1=An email with instructions to link {0} account {1} with your {2} account has been sent to you. +emailLinkIdp2=Haven''t received a verification code in your email? +emailLinkIdp3=to re-send the email. +emailLinkIdp4=If you already verified the email in different browser +emailLinkIdp5=to continue. + +backToLogin=« Back to Login + +emailInstruction=Enter your username or email address and we will send you instructions on how to create a new password. + +copyCodeInstruction=Please copy this code and paste it into your application: + +pageExpiredTitle=Page has expired +pageExpiredMsg1=To restart the login process +pageExpiredMsg2=To continue the login process + +personalInfo=Personal Info: +role_admin=Admin +role_realm-admin=Realm Admin +role_create-realm=Create realm +role_create-client=Create client +role_view-realm=View realm +role_view-users=View users +role_view-applications=View applications +role_view-clients=View clients +role_view-events=View events +role_view-identity-providers=View identity providers +role_manage-realm=Manage realm +role_manage-users=Manage users +role_manage-applications=Manage applications +role_manage-identity-providers=Manage identity providers +role_manage-clients=Manage clients +role_manage-events=Manage events +role_view-profile=View profile +role_manage-account=Manage account +role_manage-account-links=Manage account links +role_read-token=Read token +role_offline-access=Offline access +client_account=Account +client_account-console=Account Console +client_security-admin-console=Security Admin Console +client_admin-cli=Admin CLI +client_realm-management=Realm Management +client_broker=Broker + +requiredFields=Required fields + +invalidUserMessage=Invalid username or password. +invalidUsernameMessage=Invalid username. +invalidUsernameOrEmailMessage=Invalid username or email. +invalidPasswordMessage=Invalid password. +invalidEmailMessage=Invalid email address. +accountDisabledMessage=Account is disabled, contact your administrator. +accountTemporarilyDisabledMessage=Account is temporarily disabled; contact your administrator or retry later. +expiredCodeMessage=Login timeout. Please log in again. +expiredActionMessage=Action expired. Please continue with login now. +expiredActionTokenNoSessionMessage=Action expired. +expiredActionTokenSessionExistsMessage=Action expired. Please start again. + +missingFirstNameMessage=Please specify first name. +missingLastNameMessage=Please specify last name. +missingEmailMessage=Please specify email. +missingUsernameMessage=Please specify username. +missingPasswordMessage=Please specify password. +missingTotpMessage=Please specify authenticator code. +missingTotpDeviceNameMessage=Please specify device name. +notMatchPasswordMessage=Passwords don''t match. + +invalidPasswordExistingMessage=Invalid existing password. +invalidPasswordBlacklistedMessage=Invalid password: password is blacklisted. +invalidPasswordConfirmMessage=Password confirmation doesn''t match. +invalidTotpMessage=Invalid authenticator code. + +usernameExistsMessage=Username already exists. +emailExistsMessage=Email already exists. + +federatedIdentityExistsMessage=User with {0} {1} already exists. Please login to account management to link the account. + +confirmLinkIdpTitle=Account already exists +federatedIdentityConfirmLinkMessage=User with {0} {1} already exists. How do you want to continue? +federatedIdentityConfirmReauthenticateMessage=Authenticate to link your account with {0} +nestedFirstBrokerFlowMessage=The {0} user {1} is not linked to any known user. +confirmLinkIdpReviewProfile=Review profile +confirmLinkIdpContinue=Add to existing account + +configureTotpMessage=You need to set up Mobile Authenticator to activate your account. +updateProfileMessage=You need to update your user profile to activate your account. +updatePasswordMessage=You need to change your password to activate your account. +resetPasswordMessage=You need to change your password. +verifyEmailMessage=You need to verify your email address to activate your account. +linkIdpMessage=You need to verify your email address to link your account with {0}. + +emailSentMessage=You should receive an email shortly with further instructions. +emailSendErrorMessage=Failed to send email, please try again later. + +accountUpdatedMessage=Your account has been updated. +accountPasswordUpdatedMessage=Your password has been updated. + +delegationCompleteHeader=Login Successful +delegationCompleteMessage=You may close this browser window and go back to your console application. +delegationFailedHeader=Login Failed +delegationFailedMessage=You may close this browser window and go back to your console application and try logging in again. + +noAccessMessage=No access + +invalidPasswordMinLengthMessage=Invalid password: minimum length {0}. +invalidPasswordMinDigitsMessage=Invalid password: must contain at least {0} numerical digits. +invalidPasswordMinLowerCaseCharsMessage=Invalid password: must contain at least {0} lower case characters. +invalidPasswordMinUpperCaseCharsMessage=Invalid password: must contain at least {0} upper case characters. +invalidPasswordMinSpecialCharsMessage=Invalid password: must contain at least {0} special characters. +invalidPasswordNotUsernameMessage=Invalid password: must not be equal to the username. +invalidPasswordRegexPatternMessage=Invalid password: fails to match regex pattern(s). +invalidPasswordHistoryMessage=Invalid password: must not be equal to any of last {0} passwords. +invalidPasswordGenericMessage=Invalid password: new password doesn''t match password policies. + +failedToProcessResponseMessage=Failed to process response +httpsRequiredMessage=HTTPS required +realmNotEnabledMessage=Realm not enabled +invalidRequestMessage=Invalid Request +failedLogout=Logout failed +unknownLoginRequesterMessage=Unknown login requester +loginRequesterNotEnabledMessage=Login requester not enabled +bearerOnlyMessage=Bearer-only applications are not allowed to initiate browser login +standardFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Standard flow is disabled for the client. +implicitFlowDisabledMessage=Client is not allowed to initiate browser login with given response_type. Implicit flow is disabled for the client. +invalidRedirectUriMessage=Invalid redirect uri +unsupportedNameIdFormatMessage=Unsupported NameIDFormat +invalidRequesterMessage=Invalid requester +registrationNotAllowedMessage=Registration not allowed +resetCredentialNotAllowedMessage=Reset Credential not allowed + +permissionNotApprovedMessage=Permission not approved. +noRelayStateInResponseMessage=No relay state in response from identity provider. +insufficientPermissionMessage=Insufficient permissions to link identities. +couldNotProceedWithAuthenticationRequestMessage=Could not proceed with authentication request to identity provider. +couldNotObtainTokenMessage=Could not obtain token from identity provider. +unexpectedErrorRetrievingTokenMessage=Unexpected error when retrieving token from identity provider. +unexpectedErrorHandlingResponseMessage=Unexpected error when handling response from identity provider. +identityProviderAuthenticationFailedMessage=Authentication failed. Could not authenticate with identity provider. +couldNotSendAuthenticationRequestMessage=Could not send authentication request to identity provider. +unexpectedErrorHandlingRequestMessage=Unexpected error when handling authentication request to identity provider. +invalidAccessCodeMessage=Invalid access code. +sessionNotActiveMessage=Session not active. +invalidCodeMessage=An error occurred, please login again through your application. +identityProviderUnexpectedErrorMessage=Unexpected error when authenticating with identity provider +identityProviderNotFoundMessage=Could not find an identity provider with the identifier. +identityProviderLinkSuccess=You successfully verified your email. Please go back to your original browser and continue there with the login. +staleCodeMessage=This page is no longer valid, please go back to your application and log in again +realmSupportsNoCredentialsMessage=Realm does not support any credential type. +credentialSetupRequired=Cannot login, credential setup required. +identityProviderNotUniqueMessage=Realm supports multiple identity providers. Could not determine which identity provider should be used to authenticate with. +emailVerifiedMessage=Your email address has been verified. +staleEmailVerificationLink=The link you clicked is an old stale link and is no longer valid. Maybe you have already verified your email. +identityProviderAlreadyLinkedMessage=Federated identity returned by {0} is already linked to another user. +confirmAccountLinking=Confirm linking the account {0} of identity provider {1} with your account. +confirmEmailAddressVerification=Confirm validity of e-mail address {0}. +confirmExecutionOfActions=Perform the following action(s) + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic + +backToApplication=« Back to Application +missingParameterMessage=Missing parameters\: {0} +clientNotFoundMessage=Client not found. +clientDisabledMessage=Client disabled. +invalidParameterMessage=Invalid parameter\: {0} +alreadyLoggedIn=You are already logged in. +differentUserAuthenticated=You are already authenticated as different user ''{0}'' in this session. Please log out first. +brokerLinkingSessionExpired=Requested broker account linking, but current session is no longer valid. +proceedWithAction=» Click here to proceed + +requiredAction.CONFIGURE_TOTP=Configure OTP +requiredAction.terms_and_conditions=Terms and Conditions +requiredAction.UPDATE_PASSWORD=Update Password +requiredAction.UPDATE_PROFILE=Update Profile +requiredAction.VERIFY_EMAIL=Verify Email + +doX509Login=You will be logged in as\: +clientCertificate=X509 client certificate\: +noCertificate=[No Certificate] + + +pageNotFound=Page not found +internalServerError=An internal server error has occurred + +console-username=Username: +console-password=Password: +console-otp=One Time Password: +console-new-password=New Password: +console-confirm-password=Confirm Password: +console-update-password=Update of your password is required. +console-verify-email=You need to verify your email address. We sent an email to {0} that contains a verification code. Please enter this code into the input below. +console-email-code=Email Code: +console-accept-terms=Accept Terms? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=User information +openshift.scope.user_check-access=User access information +openshift.scope.user_full=Full Access +openshift.scope.list-projects=List projects + +# SAML authentication +saml.post-form.title=Authentication Redirect +saml.post-form.message=Redirecting, please wait. +saml.post-form.js-disabled=JavaScript is disabled. We strongly recommend to enable it. Click the button below to continue. + +#authenticators +otp-display-name=Authenticator Application +otp-help-text=Enter a verification code from authenticator application. +password-display-name=Password +password-help-text=Log in by entering your password. +auth-username-form-display-name=Username +auth-username-form-help-text=Start log in by entering your username +auth-username-password-form-display-name=Username and password +auth-username-password-form-help-text=Log in by entering your username and password. + +# WebAuthn +webauthn-display-name=Security Key +webauthn-help-text=Use your security key to log in. +webauthn-passwordless-display-name=Security Key +webauthn-passwordless-help-text=Use your security key for passwordless log in. +webauthn-login-title=Security Key login +webauthn-registration-title=Security Key Registration +webauthn-available-authenticators=Available authenticators + +# WebAuthn Error +webauthn-error-title=Security Key Error +webauthn-error-registration=Failed to register your Security key. +webauthn-error-api-get=Failed to authenticate by the Security key. +webauthn-error-different-user=First authenticated user is not the one authenticated by the Security key. +webauthn-error-auth-verification=Security key authentication result is invalid. +webauthn-error-register-verification=Security key registration result is invalid. +webauthn-error-user-not-found=Unknown user authenticated by the Security key. + +identity-provider-redirector=Connect with another Identity Provider + diff --git a/keycloak-jboss/theme/base/login/messages/messages_fra.properties b/keycloak-jboss/theme/base/login/messages/messages_fra.properties new file mode 100644 index 00000000..7c9a2a99 --- /dev/null +++ b/keycloak-jboss/theme/base/login/messages/messages_fra.properties @@ -0,0 +1,299 @@ +# encoding: utf-8 + +doLogIn=Connexion +doRegister=Enregistrement +doCancel=Annuler +doSubmit=Soumettre +doYes=Oui +doNo=Non +doContinue=Continuer +doIgnore=Ignorer +doAccept=Accepter +doDecline=D\u00e9cliner +doForgotPassword=Mot de passe oubli\u00e9 ? +doClickHere=Cliquez ici +doImpersonate=Impersonate +kerberosNotConfigured=Kerberos non configur\u00e9 +kerberosNotConfiguredTitle=Kerberos non configur\u00e9 +bypassKerberosDetail=Si vous n''\u00eates pas connect\u00e9 via Kerberos ou bien que votre navigateur n''est pas configur\u00e9 pour la connexion via Kerberos. Veuillez cliquer pour vous connecter via un autre moyen. +kerberosNotSetUp=Kerberos n''est pas configur\u00e9. Connexion impossible. +registerTitle=S''enregistrer +registerWithTitle=Enregistrement avec {0} +registerWithTitleHtml={0} +loginTitle=Se connecter \u00e0 {0} +loginTitleHtml={0} +impersonateTitle={0} utilisateur impersonate +impersonateTitleHtml={0} utilisateur impersonate +realmChoice=Domaine +unknownUser=Utilisateur inconnu +loginTotpTitle=Configuration de l''authentification par mobile +loginProfileTitle=Mise \u00e0 jour du compte +loginTimeout=Le temps imparti pour la connexion est \u00e9coul\u00e9. Le processus de connexion red\u00e9marre depuis le d\u00e9but. +oauthGrantTitle=OAuth Grant +oauthGrantTitleHtml={0} +errorTitle=Nous sommes d\u00e9sol\u00e9s... +errorTitleHtml=Nous sommes d\u00e9sol\u00e9s... +emailVerifyTitle=V\u00e9rification du courriel +emailForgotTitle=Mot de passe oubli\u00e9 ? +updatePasswordTitle=Mise \u00e0 jour du mot de passe +codeSuccessTitle=Code succ\u00e8s +codeErrorTitle=Code d''erreur \: {0} +displayUnsupported=Type d''affichage demand\u00e9 non support\u00e9 +browserRequired=Navigateur requis pour se connecter +browserContinue=Navigateur requis pour continuer la connexion +browserContinuePrompt=Ouvrir le navigateur et continuer la connexion? [y/n]: +browserContinueAnswer=y + +termsTitle=Termes et Conditions +termsTitleHtml=Termes et Conditions +termsText=

Termes et conditions \u00e0 d\u00e9finir

+termsPlainText=Termes et conditions \u00e0 d\u00e9finir + +recaptchaFailed=Re-captcha invalide +recaptchaNotConfigured=Re-captcha est requis, mais il n''est pas configur\u00e9 +consentDenied=Consentement refus\u00e9. + +noAccount=Nouvel utilisateur ? +username=Nom d''utilisateur +usernameOrEmail=Nom d''utilisateur ou courriel +firstName=Pr\u00e9nom +givenName=Pr\u00e9nom +fullName=Nom complet +lastName=Nom +familyName=Nom de famille +email=Courriel +password=Mot de passe +passwordConfirm=Confirmation du mot de passe +passwordNew=Nouveau mot de passe +passwordNewConfirm=Confirmation du nouveau mot de passe +rememberMe=Se souvenir de moi +authenticatorCode=Code \u00e0 usage unique +address=Adresse +street=Rue +locality=Ville ou Localit\u00e9 +region=\u00c9tat, Province ou R\u00e9gion +postal_code=Code postal +country=Pays +emailVerified=Courriel v\u00e9rifi\u00e9 +gssDelegationCredential=Accr\u00e9ditation de d\u00e9l\u00e9gation GSS + +loginTotpIntro=Il est n\u00e9cessaire de configurer un g\u00e9n\u00e9rateur One Time Password pour acc\u00e9der \u00e0 ce compte +loginTotpStep1=Installez
FreeOTP ou bien Google Authenticator sur votre mobile. Ces deux applications sont disponibles sur Google Play et Apple App Store. +loginTotpStep2=Ouvrez l''application et scannez le code-barres ou entrez la clef. +loginTotpStep3=Entrez le code \u00e0 usage unique fourni par l''application et cliquez sur Sauvegarder pour terminer. +loginTotpManualStep2=Ouvrez l''application et saisissez la cl\u00e9 +loginTotpManualStep3=Utilisez la configuration de valeur suivante si l''application permet son \u00e9dition +loginTotpUnableToScan=Impossible de scanner? +loginTotpScanBarcode=Scanner le code barre ? +loginOtpOneTime=Code \u00e0 usage unique +loginTotpType=Type +loginTotpAlgorithm=Algorithme +loginTotpDigits=Chiffres +loginTotpInterval=Intervalle +loginTotpCounter=Compteur + +loginTotp.totp=Bas\u00e9 sur le temps +loginTotp.hotp=Bas\u00e9 sur les compteurs + +oauthGrantRequest=Voulez-vous accorder ces privil\u00e8ges d''acc\u00e8s ? +inResource=dans + +emailVerifyInstruction1=Un courriel avec des instructions \u00e0 suivre vous a \u00e9t\u00e9 envoy\u00e9. +emailVerifyInstruction2=Vous n''avez pas re\u00e7u de code dans le courriel ? +emailVerifyInstruction3=pour renvoyer le courriel. + +emailLinkIdpTitle=Association avec {0} +emailLinkIdp1=Un courriel avec des instructions pour associer le compte {1} sur {0} avec votre compte {2} vous a \u00e9t\u00e9 envoy\u00e9. +emailLinkIdp2=Vous n''avez pas re\u00e7u de code dans le courriel ? +emailLinkIdp3=pour renvoyer le courriel. +emailLinkIdp4=Si vous avez d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre courriel dans un autre navigateur +emailLinkIdp5=pour continuer. + +backToLogin=« Retour \u00e0 la connexion + +emailInstruction=Entrez votre nom d''utilisateur ou votre courriel ; un courriel va vous \u00eatre envoy\u00e9 vous permettant de cr\u00e9er un nouveau mot de passe. + +copyCodeInstruction=Copiez le code et recopiez le dans votre application : + +pageExpiredTitle=La page a expir\u00e9 +pageExpiredMsg1=Pour recommencer le processus d''authentification +pageExpiredMsg2=Pour continuer le processus d''authentification + +personalInfo=Information personnelle : +role_admin=Administrateur +role_realm-admin=Administrateur du domaine +role_create-realm=Cr\u00e9er un domaine +role_create-client=Cr\u00e9er un client +role_view-realm=Voir un domaine +role_view-users=Voir les utilisateurs +role_view-applications=Voir les applications +role_view-clients=Voir les clients +role_view-events=Voir les \u00e9v\u00e9nements +role_view-identity-providers=Voir les fournisseurs d''identit\u00e9 +role_manage-realm=G\u00e9rer le domaine +role_manage-users=G\u00e9rer les utilisateurs +role_manage-applications=G\u00e9rer les applications +role_manage-identity-providers=G\u00e9rer les fournisseurs d''identit\u00e9 +role_manage-clients=G\u00e9rer les clients +role_manage-events=G\u00e9rer les \u00e9v\u00e9nements +role_view-profile=Voir le profil +role_manage-account=G\u00e9rer le compte +role_manage-account-links=G\u00e9rer les liens de compte +role_read-token=Lire le jeton d''authentification +role_offline-access=Acc\u00e8s hors-ligne +client_account=Compte +client_security-admin-console=Console d''administration de la s\u00e9curit\u00e9 +client_admin-cli=Admin CLI +client_realm-management=Gestion du domaine +client_broker=Broker + +invalidUserMessage=Nom d''utilisateur ou mot de passe invalide. +invalidEmailMessage=Courriel invalide. +accountDisabledMessage=Compte d\u00e9sactiv\u00e9, contactez votre administrateur. +accountTemporarilyDisabledMessage=Ce compte est temporairement d\u00e9sactiv\u00e9, contactez votre administrateur ou bien r\u00e9essayez plus tard. +expiredCodeMessage=Connexion expir\u00e9e. Veuillez vous reconnecter. +expiredActionMessage=Action expir\u00e9e. Merci de continuer la connexion. +expiredActionTokenNoSessionMessage=Action expir\u00e9e. +expiredActionTokenSessionExistsMessage=Action expir\u00e9e. Merci de recommencer. + +missingFirstNameMessage=Veuillez entrer votre pr\u00e9nom. +missingLastNameMessage=Veuillez entrer votre nom. +missingEmailMessage=Veuillez entrer votre courriel. +missingUsernameMessage=Veuillez entrer votre nom d''utilisateur. +missingPasswordMessage=Veuillez entrer votre mot de passe. +missingTotpMessage=Veuillez entrer votre code d''authentification. +notMatchPasswordMessage=Les mots de passe ne sont pas identiques. + +invalidPasswordExistingMessage=Mot de passe existant invalide. +invalidPasswordBlacklistedMessage=Mot de passe invalide : ce mot de passe est blacklist\u00e9. +invalidPasswordConfirmMessage=Le mot de passe de confirmation ne correspond pas. +invalidTotpMessage=Le code d''authentification est invalide. + +usernameExistsMessage=Le nom d''utilisateur existe d\u00e9j\u00e0. +emailExistsMessage=Le courriel existe d\u00e9j\u00e0. + +federatedIdentityExistsMessage=L''utilisateur avec {0} {1} existe d\u00e9j\u00e0. Veuillez acc\u00e9der \u00e0 au gestionnaire de compte pour lier le compte. +federatedIdentityEmailExistsMessage=Cet utilisateur avec ce courriel existe d\u00e9j\u00e0. Veuillez vous connecter au gestionnaire de compte pour lier le compte. + +confirmLinkIdpTitle=Ce compte existe d\u00e9j\u00e0 +federatedIdentityConfirmLinkMessage=L''utilisateur {0} {1} existe d\u00e9j\u00e0. Que souhaitez-vous faire ? +federatedIdentityConfirmReauthenticateMessage=Identifiez vous afin de lier votre compte avec {0} +confirmLinkIdpReviewProfile=V\u00e9rifiez vos informations de profil +confirmLinkIdpContinue=Souhaitez-vous lier {0} \u00e0 votre compte existant + +configureTotpMessage=Vous devez configurer l''authentification par mobile pour activer votre compte. +updateProfileMessage=Vous devez mettre \u00e0 jour votre profil pour activer votre compte. +updatePasswordMessage=Vous devez changer votre mot de passe pour activer votre compte. +resetPasswordMessage=Vous devez changer votre mot de passe. +verifyEmailMessage=Vous devez v\u00e9rifier votre courriel pour activer votre compte. +linkIdpMessage=Vous devez v\u00e9rifier votre courriel pour lier votre compte avec {0}. + +emailSentMessage=Vous devriez recevoir rapidement un courriel avec de plus amples instructions. +emailSendErrorMessage=Erreur lors de l''envoi du courriel, veuillez essayer plus tard. + +accountUpdatedMessage=Votre compte a \u00e9t\u00e9 mis \u00e0 jour. +accountPasswordUpdatedMessage=Votre mot de passe a \u00e9t\u00e9 mis \u00e0 jour. + +noAccessMessage=Aucun acc\u00e8s + +invalidPasswordMinLengthMessage=Mot de passe invalide : longueur minimale requise de {0}. +invalidPasswordMinDigitsMessage=Mot de passe invalide : doit contenir au moins {0} chiffre(s). +invalidPasswordMinLowerCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en minuscule. +invalidPasswordMinUpperCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en majuscule. +invalidPasswordMinSpecialCharsMessage=Mot de passe invalide : doit contenir au moins {0} caract\u00e8re(s) sp\u00e9ciaux. +invalidPasswordNotUsernameMessage=Mot de passe invalide : ne doit pas \u00eatre identique au nom d''utilisateur. +invalidPasswordRegexPatternMessage=Mot de passe invalide : ne valide pas l''expression rationnelle. +invalidPasswordHistoryMessage=Mot de passe invalide : ne doit pas \u00eatre \u00e9gal aux {0} derniers mots de passe. +invalidPasswordGenericMessage=Mot de passe invalide : le nouveau mot de passe ne r\u00e9pond pas \u00e0 la politique de mot de passe. + +failedToProcessResponseMessage=Erreur lors du traitement de la r\u00e9ponse +httpsRequiredMessage=Le protocole HTTPS est requis +realmNotEnabledMessage=Le domaine n''est pas activ\u00e9 +invalidRequestMessage=Requ\u00eate invalide +failedLogout=La d\u00e9connexion a \u00e9chou\u00e9e +unknownLoginRequesterMessage=Compte inconnu du demandeur +loginRequesterNotEnabledMessage=La connexion du demandeur n''est pas active +bearerOnlyMessage=Les applications Bearer-only ne sont pas autoris\u00e9es \u00e0 initier la connexion par navigateur. +standardFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux standard est d\u00e9sactiv\u00e9 pour le client. +implicitFlowDisabledMessage=Le client n''est pas autoris\u00e9 \u00e0 initier une connexion avec le navigateur avec ce response_type. Le flux implicite est d\u00e9sactiv\u00e9 pour le client. +invalidRedirectUriMessage=L''URI de redirection est invalide +unsupportedNameIdFormatMessage=NameIDFormat non support\u00e9 +invalidRequesterMessage=Demandeur invalide +registrationNotAllowedMessage=L''enregistrement n''est pas autoris\u00e9 +resetCredentialNotAllowedMessage=La remise \u00e0 z\u00e9ro n''est pas autoris\u00e9e + +permissionNotApprovedMessage=La permission n''est pas approuv\u00e9e. +noRelayStateInResponseMessage=Aucun \u00e9tat de relais dans la r\u00e9ponse du fournisseur d''identit\u00e9. +insufficientPermissionMessage=Permissions insuffisantes pour lier les identit\u00e9s. +couldNotProceedWithAuthenticationRequestMessage=Impossible de continuer avec la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9. +couldNotObtainTokenMessage=Impossible de r\u00e9cup\u00e9rer le jeton du fournisseur d''identit\u00e9. +unexpectedErrorRetrievingTokenMessage=Erreur inattendue lors de la r\u00e9cup\u00e9ration du jeton provenant du fournisseur d''identit\u00e9. +unexpectedErrorHandlingResponseMessage=Erreur inattendue lors du traitement de la r\u00e9ponse provenant du fournisseur d''identit\u00e9. +identityProviderAuthenticationFailedMessage=L''authentification a \u00e9chou\u00e9e. Impossible de s''authentifier avec le fournisseur d''identit\u00e9. +couldNotSendAuthenticationRequestMessage=Impossible d''envoyer la requ\u00eate d''authentification vers le fournisseur d''identit\u00e9. +unexpectedErrorHandlingRequestMessage=Erreur inattendue lors du traitement de la requ\u00eate vers le fournisseur d''identit\u00e9. +invalidAccessCodeMessage=Code d''acc\u00e8s invalide. +sessionNotActiveMessage=La session n''est pas active. +invalidCodeMessage=Une erreur est survenue, veuillez vous reconnecter \u00e0 votre application. +identityProviderUnexpectedErrorMessage=Erreur inattendue lors de l''authentification avec fournisseur d''identit\u00e9. +identityProviderNotFoundMessage=Impossible de trouver le fournisseur d''identit\u00e9 avec cet identifiant. +identityProviderLinkSuccess=Votre compte a \u00e9t\u00e9 correctement li\u00e9 avec {0} compte {1} . +staleCodeMessage=Cette page n''est plus valide, merci de retourner \u00e0 votre application et de vous connecter \u00e0 nouveau. +realmSupportsNoCredentialsMessage=Ce domaine ne supporte aucun type d''accr\u00e9ditation. +identityProviderNotUniqueMessage=Ce domaine autorise plusieurs fournisseurs d''identit\u00e9. Impossible de d\u00e9terminer le fournisseur d''identit\u00e9 avec lequel s''authentifier. +emailVerifiedMessage=Votre courriel a \u00e9t\u00e9 v\u00e9rifi\u00e9. + +staleEmailVerificationLink=Le lien que vous avez cliqu\u00e9 est p\u00e9rim\u00e9 et n''est plus valide. Peut-\u00eatre avez vous d\u00e9j\u00e0 v\u00e9rifi\u00e9 votre mot de passe ? +identityProviderAlreadyLinkedMessage=L''identit\u00e9 f\u00e9d\u00e9r\u00e9e retourn\u00e9e par {0} est d\u00e9j\u00e0 li\u00e9e \u00e0 un autre utilisateur. +confirmAccountLinking=Confirmez la liaison du compte {0} du fournisseur d''entit\u00e9 {1} avec votre compte. +confirmEmailAddressVerification=Confirmez la validit\u00e9 de l''adresse courriel {0}. +confirmExecutionOfActions=Suivez les instructions suivantes + + +backToApplication=« Revenir \u00e0 l''application +missingParameterMessage=Param\u00e8tres manquants \: {0} +clientNotFoundMessage=Client inconnu. +clientDisabledMessage=Client d\u00e9sactiv\u00e9. +invalidParameterMessage=Param\u00e8tre invalide \: {0} +alreadyLoggedIn=Vous \u00eates d\u00e9j\u00e0 connect\u00e9. + +differentUserAuthenticated=Vous \u00eates d\u00e9j\u00e0 authentifi\u00e9 avec un autre utilisateur ''{0}'' dans cette session. Merci de vous d\u00e9connecter. +proceedWithAction=» Cliquez ici + + +requiredAction.CONFIGURE_TOTP=Configurer OTP +requiredAction.terms_and_conditions=Termes et conditions +requiredAction.UPDATE_PASSWORD=Mettre \u00e0 jour votre mot de passe +requiredAction.UPDATE_PROFILE=Mettre \u00e0 jour votre profil +requiredAction.VERIFY_EMAIL=Valider votre adresse email + + +doX509Login=Vous allez \u00eatre connect\u00e9 en tant que\: +clientCertificate=X509 certificat client\: +noCertificate=[Pas de certificat] + + +pageNotFound=Page non trouv\u00e9e +internalServerError=Une erreur interne du serveur s''est produite + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी \ No newline at end of file diff --git a/keycloak-jboss/theme/base/login/messages/messages_hin.properties b/keycloak-jboss/theme/base/login/messages/messages_hin.properties new file mode 100644 index 00000000..094e34af --- /dev/null +++ b/keycloak-jboss/theme/base/login/messages/messages_hin.properties @@ -0,0 +1,374 @@ +# encoding: utf-8 +doLogIn=लॉग इन करें +doRegister=रजिस्टर करें +doCancel=रद्द करना +doSubmit=प्रस्तुत +doBack=वापस +doYes=हाँ +doNo=नहीं न +doContinue=जारी रखें +doIgnore=नज़रअंदाज़ करना +doAccept=स्वीकार करना +doDecline=पतन +doForgotPassword=Forgot Password? +doClickHere=यहाँ क्लिक करें +doImpersonate=अभिनय करना +doTryAgain=Try फिर व +doTryAnotherWay=दूसरा तरीका आजमाएं +kerberosNotConfigured=Kerberos कॉन्फ़िगर नहीं किया गया +kerberosNotConfiguredTitle=Kerberos कॉन्फ़िगर नहीं किया गया +bypassKerberosDetail=या तो आप Kerberos द्वारा लॉग इन नहीं हैं या आपका ब्राउज़र Kerberos लॉगिन के लिए सेट अप नहीं है। कृपया अन्य माध्यमों से लॉगिन करना जारी रखें पर क्लिक करें +kerberosNotSetUp=Kerberos सेट नहीं है। आप लॉगिन नहीं कर सकते। +registerTitle=रजिस्टर करें +loginTitle=में प्रवेश करें {0} +loginTitleHtml={0} +impersonateTitle={0} प्रतिरूपण उपयोगकर्ता +impersonateTitleHtml={0} प्रतिरूपण उपयोगकर्ता +realmChoice=क्षेत्र +unknownUser=अज्ञात उपयोगकर्ता +loginTotpTitle=मोबाइल प्रमाणक सेटअप +loginProfileTitle=लेखा जानकारी को अद्यतन बनाएं +loginTimeout=आपके लॉगिन प्रयास का समय समाप्त हो गया। लॉगिन शुरुआत से शुरू हो जाएगा। +oauthGrantTitle=पहुँच प्रदान करें{0} +oauthGrantTitleHtml={0} +errorTitle=हमें खेद है... +errorTitleHtml=हम हैं माफ़ करना ... +emailVerifyTitle=ईमेल सत्यापन +emailForgotTitle=क्या आप पासवर्ड भूल गए? +updatePasswordTitle=पासवर्ड अपडेट करें +codeSuccessTitle=सफलता कोड +codeErrorTitle=त्रुटि कोड\: {0} +displayUnsupported=अनुरोधित प्रदर्शन प्रकार असमर्थित +browserRequired=लॉगिन करने के लिए आवश्यक ब्राउज़र +browserContinue=लॉगिन पूरा करने के लिए ब्राउज़र की आवश्यकता है +browserContinuePrompt=ब्राउज़र खोलें और लॉगिन जारी रखें? [y/n]: +browserContinueAnswer=y + + +termsTitle=नियम और शर्तें +termsText=

परिभाषित किए जाने वाले नियम और शर्तें

+termsPlainText=परिभाषित किए जाने वाले नियम और शर्तें. + +recaptchaFailed=अमान्य रीकैप्चा +recaptchaNotConfigured=रिकैप्चा आवश्यक है, लेकिन कॉन्फ़िगर नहीं किया गया है +consentDenied=सहमति अस्वीकृत. + +noAccount=नया उपयोगकर्ता? +username=उपयोगकर्ता नाम +usernameOrEmail=उपयोगकर्ता का नाम या ईमेल +firstName=पहला नाम +givenName=प्रदत्त नाम +fullName=पूरा नाम +lastName=अंतिम नाम +familyName=परिवार का नाम +email=ईमेल +password=कुंजिका +passwordConfirm=पासवर्ड की पुष्टि कीजिये +passwordNew=नया पासवर्ड +passwordNewConfirm=नया पासवर्ड पुष्टि +rememberMe=मुझे याद रखना +authenticatorCode=एक बार का कोड +address=पता +street=सड़क +locality=शहर या इलाका +region=राज्य, प्रांत या क्षेत्र +postal_code=डाक कोड +country=देश +emailVerified=ईमेल सत्यापित हुआ +gssDelegationCredential=जीएसएस प्रतिनिधिमंडल क्रेडेंशियल + +profileScopeConsentText=उपयोगकर्ता प्रोफ़ाइल +emailScopeConsentText=ईमेल पता +addressScopeConsentText=पता +phoneScopeConsentText=फ़ोन नंबर +offlineAccessScopeConsentText=ऑफलाइन एक्सेस +samlRoleListScopeConsentText=मेरी भूमिकाएं +rolesScopeConsentText=उपयोगकर्ता भूमिका + +restartLoginTooltip=लॉगिन पुनरारंभ करें + +loginTotpIntro=इस खाते तक पहुंचने के लिए आपको वन टाइम पासवर्ड जनरेटर सेट करना होगा +loginTotpStep1=अपने मोबाइल में निम्न में से कोई एक एप्लिकेशन इंस्टॉल करें: +loginTotpStep2=एप्लिकेशन खोलें और बारकोड को स्कैन करें: +loginTotpStep3=एप्लिकेशन द्वारा प्रदान किया गया वन-टाइम कोड दर्ज करें और सेटअप समाप्त करने के लिए सबमिट पर क्लिक करें। +loginTotpStep3DeviceName=अपने ओटीपी उपकरणों को प्रबंधित करने में आपकी सहायता के लिए डिवाइस का नाम प्रदान करें। +loginTotpManualStep2=एप्लिकेशन खोलें और कुंजी दर्ज करें: +loginTotpManualStep3=यदि एप्लिकेशन उन्हें सेट करने की अनुमति देता है तो निम्न कॉन्फ़िगरेशन मानों का उपयोग करें: +loginTotpUnableToScan=स्कैन करने में असमर्थ? +loginTotpScanBarcode=बारकोड स्कैन करें? +loginCredential=क्रेडेंशियल +loginOtpOneTime=एक बार का कोड +loginTotpType=प्रकार +loginTotpAlgorithm=कलन विधि +loginTotpDigits=कलन विधि +loginTotpInterval=मध्यान्तर +loginTotpCounter=काउंटर +loginTotpDeviceName=डिवाइस का नाम + +loginTotp.totp=समय पर आधारित +loginTotp.hotp=काउंटर-आधारित + +loginChooseAuthenticator=लॉगिन विधि चुनें + +oauthGrantRequest=क्या आप इन एक्सेस विशेषाधिकारों को प्रदान करते हैं? +inResource=में + +emailVerifyInstruction1=आपका ईमेल पता सत्यापित करने के निर्देशों वाला एक ईमेल आपको भेज दिया गया है। +emailVerifyInstruction2=आपके ईमेल में सत्यापन कोड प्राप्त नहीं हुआ है? +emailVerifyInstruction3=ईमेल को फिर से भेजने के लिए। + +emailLinkIdpTitle=संपर्क{0} +emailLinkIdp1=आपके {2} खाते के साथ {0} खाते {1} को लिंक करने के निर्देशों वाला एक ईमेल आपको भेजा गया है। +emailLinkIdp2=आपके ईमेल में सत्यापन कोड प्राप्त नहीं हुआ है? +emailLinkIdp3=ईमेल को फिर से भेजने के लिए। +emailLinkIdp4=यदि आप पहले ही ईमेल को भिन्न ब्राउज़र में सत्यापित कर चुके हैं +emailLinkIdp5=जारी रखने के लिए। + +backToLogin=« लॉगिन पर वापस जाएं + +emailInstruction=अपना उपयोगकर्ता नाम या ईमेल पता दर्ज करें और हम आपको एक नया पासवर्ड बनाने के निर्देश भेजेंगे। + +copyCodeInstruction=कृपया इस कोड को कॉपी करें और इसे अपने आवेदन में पेस्ट करें: + +pageExpiredTitle=पृष्ठ समाप्त हो गया है +pageExpiredMsg1=लॉगिन प्रक्रिया को पुनः आरंभ करने के लिए +pageExpiredMsg2=लॉगिन प्रक्रिया जारी रखने के लिए + +personalInfo=व्यक्तिगत जानकारी: +role_admin=व्यवस्थापक +role_realm-admin=क्षेत्र व्यवस्थापक +role_create-realm=दायरे बनाएं +role_create-client=क्लाइंट बनाएं +role_view-realm=क्षेत्र देखें +role_view-users=उपयोगकर्ताओं को देखें +role_view-applications=एप्लिकेशन देखें +role_view-clients=ग्राहकों को देखें +role_view-events=इवेंट देखें +role_view-identity-providers=पहचान प्रदाता देखें +role_manage-realm=दायरे का प्रबंधन करें +role_manage-users=उपयोगकर्ताओं को प्रबंधित करें +role_manage-applications=अनुप्रयोगों का प्रबंधन +role_manage-identity-providers=पहचान प्रदाताओं को प्रबंधित करें +role_manage-clients=ग्राहकों को प्रबंधित करें +role_manage-events=ईवेंट प्रबंधित करें +role_view-profile=प्रोफ़ाइल देखें +role_manage-account=खाते का प्रबंधन करें +role_manage-account-links=खाता लिंक प्रबंधित करें +role_read-token=टोकन पढ़ें +role_offline-access=ऑफ़लाइन पहुंच +client_account=लेखा +client_account-console=खाता कंसोल +client_security-admin-console=सुरक्षा व्यवस्थापक कंसोल +client_admin-cli=व्यवस्थापक सीएलआई +client_realm-management=क्षेत्र प्रबंधन +client_broker=दलाल + +requiredFields=आवश्यक फील्ड्स + +invalidUserMessage=अमान्य उपयोगकर्ता नाम या पासवर्ड। +invalidUsernameMessage=अमान्य उपयोगकर्ता नाम। +invalidUsernameOrEmailMessage=अमान्य उपयोगकर्ता नाम या ईमेल। +invalidPasswordMessage=अवैध पासवर्ड। +invalidEmailMessage=अमान्य ईमेल पता। +accountDisabledMessage=खाता अक्षम है, अपने व्यवस्थापक से संपर्क करें। +accountTemporarilyDisabledMessage=खाता अस्थायी रूप से अक्षम है; अपने व्यवस्थापक से संपर्क करें या बाद में पुनः प्रयास करें। +expiredCodeMessage=लॉगिन मध्यांतर। कृपया फिर भाग लें। +expiredActionMessage=कार्रवाई समाप्त हो गई। कृपया अभी लॉगिन जारी रखें। +expiredActionTokenNoSessionMessage=कार्रवाई समाप्त हो गई। +expiredActionTokenSessionExistsMessage=कार्रवाई समाप्त हो गई। कृपया फिर से शुरू करें। + +missingFirstNameMessage=कृपया प्रथम नाम निर्दिष्ट करें। +missingLastNameMessage=कृपया अंतिम नाम निर्दिष्ट करें। +missingEmailMessage=कृपया ईमेल निर्दिष्ट करें। +missingUsernameMessage=कृपया उपयोगकर्ता नाम निर्दिष्ट करें। +missingPasswordMessage=कृपया पासवर्ड निर्दिष्ट करें। +missingTotpMessage=कृपया प्रमाणक कोड निर्दिष्ट करें। +missingTotpDeviceNameMessage=कृपया डिवाइस का नाम निर्दिष्ट करें। +notMatchPasswordMessage=पासवर्ड मेल नहीं खाते। + +invalidPasswordExistingMessage=अमान्य मौजूदा पासवर्ड। +invalidPasswordBlacklistedMessage=अमान्य पासवर्ड: पासवर्ड काली सूची में डाल दिया गया है। +invalidPasswordConfirmMessage=पासवर्ड पुष्टिकरण मेल नहीं खाता। +invalidTotpMessage=अमान्य प्रमाणक कोड। + +usernameExistsMessage=उपयोगकर्ता का नाम पहले से मौजूद है। +emailExistsMessage=ईमेल पहले से मौजूद है। + +federatedIdentityExistsMessage={0} {1} वाला उपयोगकर्ता पहले से मौजूद है। खाते को लिंक करने के लिए कृपया खाता प्रबंधन में लॉगिन करें। + +confirmLinkIdpTitle=खाता पहले से मौजूद है +federatedIdentityConfirmLinkMessage={0} {1} वाला उपयोगकर्ता पहले से मौजूद है। आप कैसे जारी रखना चाहते हैं? +federatedIdentityConfirmReauthenticateMessage=अपने खाते को {0} से जोड़ने के लिए प्रमाणित करें +nestedFirstBrokerFlowMessage={0} उपयोगकर्ता {1} किसी ज्ञात उपयोगकर्ता से लिंक नहीं है। +confirmLinkIdpReviewProfile=प्रोफ़ाइल की समीक्षा करें +confirmLinkIdpContinue=मौजूदा खाते में जोड़ें + +configureTotpMessage=अपना खाता सक्रिय करने के लिए आपको मोबाइल प्रमाणक सेट करना होगा। +updateProfileMessage=अपने खाते को सक्रिय करने के लिए आपको अपनी उपयोगकर्ता प्रोफ़ाइल को अपडेट करना होगा। +updatePasswordMessage=अपना खाता सक्रिय करने के लिए आपको अपना पासवर्ड बदलना होगा। +resetPasswordMessage=आपको अपना पासवर्ड बदलना होगा। +verifyEmailMessage=अपना खाता सक्रिय करने के लिए आपको अपना ईमेल पता सत्यापित करना होगा। +linkIdpMessage=अपने खाते को {0} से जोड़ने के लिए आपको अपना ईमेल पता सत्यापित करना होगा। + +emailSentMessage=आपको आगे के निर्देशों के साथ शीघ्र ही एक ईमेल प्राप्त होना चाहिए। +emailSendErrorMessage=ईमेल भेजने में विफल, कृपया बाद में पुन: प्रयास करें। +accountUpdatedMessage=आपका खाता नवीनीकृत हो चुका है। +accountPasswordUpdatedMessage=आपका पासवर्ड बदला जा चुका है। + +delegationCompleteHeader=लॉग इन सफल +delegationCompleteMessage=आप इस ब्राउज़र विंडो को बंद कर सकते हैं और अपने कंसोल एप्लिकेशन पर वापस जा सकते हैं। +delegationFailedHeader=लॉगिन विफल +delegationFailedMessage=आप इस ब्राउज़र विंडो को बंद कर सकते हैं और अपने कंसोल एप्लिकेशन पर वापस जा सकते हैं और फिर से लॉग इन करने का प्रयास कर सकते हैं। + +noAccessMessage=तक पहुँच नहीं + +invalidPasswordMinLengthMessage=अमान्य पासवर्ड: न्यूनतम लंबाई {0}. +invalidPasswordMinDigitsMessage=अमान्य पासवर्ड: कम से कम {0} संख्यात्मक अंक होने चाहिए। +invalidPasswordMinLowerCaseCharsMessage=अमान्य पासवर्ड: कम से कम {0} लोअर केस वर्ण होने चाहिए। +invalidPasswordMinUpperCaseCharsMessage=अमान्य पासवर्ड: कम से कम {0} अपर केस वर्ण होने चाहिए। +invalidPasswordMinSpecialCharsMessage=अमान्य पासवर्ड: कम से कम {0} विशेष वर्ण होने चाहिए। +invalidPasswordNotUsernameMessage=अमान्य पासवर्ड: उपयोगकर्ता नाम के बराबर नहीं होना चाहिए। +invalidPasswordRegexPatternMessage=अमान्य पासवर्ड: रेगेक्स पैटर्न से मेल नहीं खाता (एस .)). +invalidPasswordHistoryMessage=अमान्य पासवर्ड: किसी भी अंतिम {0} पासवर्ड के बराबर नहीं होना चाहिए। +invalidPasswordGenericMessage=अमान्य पासवर्ड: नया पासवर्ड पासवर्ड नीतियों से मेल नहीं खाता। + +failedToProcessResponseMessage=प्रतिक्रिया संसाधित करने में विफल +httpsRequiredMessage=HTTPS आवश्यक +realmNotEnabledMessage=क्षेत्र सक्षम नहीं है +invalidRequestMessage=अमान्य अनुरोध +failedLogout=लॉगआउट विफल +unknownLoginRequesterMessage=अज्ञात लॉगिन अनुरोधकर्ता +loginRequesterNotEnabledMessage=लॉगिन अनुरोधकर्ता सक्षम नहीं है +bearerOnlyMessage=केवल वाहक अनुप्रयोगों को ब्राउज़र लॉगिन आरंभ करने की अनुमति नहीं है +standardFlowDisabledMessage=क्लाइंट को दिए गए response_type के साथ ब्राउज़र लॉगिन शुरू करने की अनुमति नहीं है। क्लाइंट के लिए मानक प्रवाह अक्षम है। +implicitFlowDisabledMessage=क्लाइंट को दिए गए response_type के साथ ब्राउज़र लॉगिन शुरू करने की अनुमति नहीं है। क्लाइंट के लिए निहित प्रवाह अक्षम है। +invalidRedirectUriMessage=अमान्य रीडायरेक्ट यूरी +unsupportedNameIdFormatMessage=असमर्थित NameIDFormat +invalidRequesterMessage=अमान्य अनुरोधकर्ता +registrationNotAllowedMessage=पंजीकरण की अनुमति नहीं है +resetCredentialNotAllowedMessage=क्रेडेंशियल रीसेट करने की अनुमति नहीं है + +permissionNotApprovedMessage=अनुमति स्वीकृत नहीं है। +noRelayStateInResponseMessage=पहचान प्रदाता के जवाब में कोई रिले स्थिति नहीं है। +insufficientPermissionMessage=पहचान लिंक करने के लिए अपर्याप्त अनुमतियां। +couldNotProceedWithAuthenticationRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध के साथ आगे नहीं बढ़ सका। +couldNotObtainTokenMessage=पहचान प्रदाता से टोकन प्राप्त नहीं कर सका। +unexpectedErrorRetrievingTokenMessage=पहचान प्रदाता से टोकन प्राप्त करते समय अनपेक्षित त्रुटि। +unexpectedErrorHandlingResponseMessage=पहचान प्रदाता से प्रतिक्रिया को संभालते समय अनपेक्षित त्रुटि। +identityProviderAuthenticationFailedMessage=प्रमाणीकरण विफल होना। पहचान प्रदाता के साथ प्रमाणित नहीं किया जा सका। +couldNotSendAuthenticationRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध नहीं भेजा जा सका। +unexpectedErrorHandlingRequestMessage=पहचान प्रदाता को प्रमाणीकरण अनुरोध को संसाधित करते समय अनपेक्षित त्रुटि। +invalidAccessCodeMessage=अमान्य एक्सेस कोड। +sessionNotActiveMessage=सत्र सक्रिय नहीं है। +invalidCodeMessage=एक त्रुटि हुई, कृपया अपने आवेदन के माध्यम से फिर से लॉगिन करें। +identityProviderUnexpectedErrorMessage=पहचान प्रदाता के साथ प्रमाणीकरण करते समय अनपेक्षित त्रुटि +identityProviderNotFoundMessage=पहचानकर्ता के साथ एक पहचान प्रदाता नहीं मिला। +identityProviderLinkSuccess=आपने अपना ईमेल सफलतापूर्वक सत्यापित कर लिया है। कृपया अपने मूल ब्राउज़र पर वापस जाएं और वहां लॉगिन के साथ जारी रखें। +staleCodeMessage=यह पृष्ठ अब मान्य नहीं है, कृपया अपने आवेदन पर वापस जाएं और फिर से लॉग इन करें +realmSupportsNoCredentialsMessage=दायरे किसी भी क्रेडेंशियल प्रकार का समर्थन नहीं करता है। +credentialSetupRequired=लॉगिन नहीं कर सकता, क्रेडेंशियल सेटअप की आवश्यकता है। +identityProviderNotUniqueMessage=दायरे कई पहचान प्रदाताओं का समर्थन करता है। यह निर्धारित नहीं किया जा सका कि किस पहचान प्रदाता के साथ प्रमाणित करने के लिए उपयोग किया जाना चाहिए। +emailVerifiedMessage=आपका ईमेल पता सत्यापित कर दिया गया है। +staleEmailVerificationLink=आपके द्वारा क्लिक किया गया लिंक पुराना पुराना लिंक है और अब मान्य नहीं है। हो सकता है कि आपने अपना ईमेल पहले ही सत्यापित कर लिया हो। +identityProviderAlreadyLinkedMessage={0} द्वारा लौटाई गई फ़ेडरेटेड पहचान पहले से ही किसी अन्य उपयोगकर्ता से जुड़ी हुई है। +confirmAccountLinking=पहचान प्रदाता {1} के खाते को अपने खाते से जोड़ने की पुष्टि करें। +confirmEmailAddressVerification=ई-मेल पते {0} की वैधता की पुष्टि करें। +confirmExecutionOfActions=निम्नलिखित क्रियाएं करें + +locale_ca=कैटल\u00E0 +locale_de=deutsch +locale_eng=अंग्रेज़ी +locale_es=एस्पा\u00F1ol +locale_fra=फ़्रैन\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=नीदरलैंड्स +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=« आवेदन पर वापस जाएं +missingParameterMessage=गुम पैरामीटर\: {0} +clientNotFoundMessage=ग्राहक नहीं मिला। +clientDisabledMessage=क्लाइंट अक्षम. +invalidParameterMessage=अमान्य मापदंड\: {0} +alreadyLoggedIn=आप पहले से लॉगिन कर रहे हैं. +differentUserAuthenticated=आप इस सत्र में पहले से ही भिन्न उपयोगकर्ता ''{0}'' के रूप में प्रमाणित हैं। कृपया पहले लॉग आउट करें। +brokerLinkingSessionExpired=अनुरोधित ब्रोकर खाता लिंकिंग, लेकिन वर्तमान सत्र अब मान्य नहीं है। +proceedWithAction=» आगे बढ़ने के लिए यहां क्लिक करें + +requiredAction.CONFIGURE_TOTP=ओटीपी कॉन्फ़िगर करें +requiredAction.terms_and_conditions=नियम और शर्तें +requiredAction.UPDATE_PASSWORD=पासवर्ड अपडेट करें +requiredAction.UPDATE_PROFILE=प्रोफ़ाइल अपडेट करें +requiredAction.VERIFY_EMAIL=Verify Email + +doX509Login=आप के रूप में लॉग इन किया जाएगा\: +clientCertificate=X509 क्लाइंट प्रमाणपत्र\: +noCertificate=[कोई प्रमाणपत्र नहीं] + + +pageNotFound=पृष्ठ नहीं मिला +internalServerError=एक आंतरिक सर्वर त्रुटि हुई है + +console-username=उपयोगकर्ता नाम: +console-password=कुंजिका: +console-otp=वन टाइम पासवर्ड: +console-new-password=नया पासवर्ड: +console-confirm-password=पासवर्ड की पुष्टि कीजिये: +console-update-password=आपके पासवर्ड का अद्यतन आवश्यक है। +console-verify-email=आपको अपना ईमेल पता सत्यापित करना होगा। हमने {0} को एक ईमेल भेजा है जिसमें एक सत्यापन कोड है। कृपया इस कोड को नीचे दिए गए इनपुट में दर्ज करें। +console-email-code=ईमेल कोड: +console-accept-terms=शर्तों को स्वीकारें? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=यूजर जानकारी +openshift.scope.user_check-access=उपयोगकर्ता पहुंच जानकारी +openshift.scope.user_full=Full Access +openshift.scope.list-projects=परियोजनाओं की सूची बनाएं + +# SAML authentication +saml.post-form.title=प्रमाणीकरण पुनर्निर्देशन +saml.post-form.message=फिर से भेजा जा रहा है ............ कृपया इंतजार करें। +saml.post-form.js-disabled=जावास्क्रिप्ट अक्षम है। हम इसे सक्षम करने की दृढ़ता से अनुशंसा करते हैं। जारी रखने के लिए नीचे के बटन पर क्लिक करें। + +#authenticators +otp-display-name=प्रमाणक आवेदन +otp-help-text=प्रमाणक आवेदन से सत्यापन कोड दर्ज करें। +password-display-name=कुंजिका +password-help-text=अपना पासवर्ड डालकर लॉग इन करें। +auth-username-form-display-name=उपयोगकर्ता नाम +auth-username-form-help-text=अपना उपयोगकर्ता नाम दर्ज करके लॉग इन प्रारंभ करें +auth-username-password-form-display-name=उपयोगकर्ता नाम और पासवर्ड +auth-username-password-form-help-text=अपना यूजरनेम और पासवर्ड डालकर लॉग इन करें। + +# WebAuthn +webauthn-display-name=सुरक्षा कुंजी +webauthn-help-text=लॉग इन करने के लिए अपनी सुरक्षा कुंजी का उपयोग करें। +webauthn-passwordless-display-name=सुरक्षा कुंजी +webauthn-passwordless-help-text=पासवर्ड रहित लॉग इन के लिए अपनी सुरक्षा कुंजी का उपयोग करें। +webauthn-login-title=सुरक्षा कुंजी लॉगिन +webauthn-registration-title=सुरक्षा कुंजी पंजीकरण +webauthn-available-authenticators=उपलब्ध प्रमाणक + +# WebAuthn Error +webauthn-error-title=सुरक्षा कुंजी त्रुटि +webauthn-error-registration=आपकी सुरक्षा कुंजी पंजीकृत करने में विफल. +webauthn-error-api-get=सुरक्षा कुंजी द्वारा प्रमाणित करने में विफल. +webauthn-error-different-user=पहला प्रमाणीकृत उपयोगकर्ता सुरक्षा कुंजी द्वारा प्रमाणित नहीं है. +webauthn-error-auth-verification=सुरक्षा कुंजी प्रमाणीकरण परिणाम अमान्य है. +webauthn-error-register-verification=सुरक्षा कुंजी पंजीकरण परिणाम अमान्य है. +webauthn-error-user-not-found=सुरक्षा कुंजी द्वारा प्रमाणित अज्ञात उपयोगकर्ता. + +identity-provider-redirector=किसी अन्य पहचान प्रदाता से जुड़ें \ No newline at end of file diff --git a/keycloak-jboss/theme/base/login/messages/messages_kan.properties b/keycloak-jboss/theme/base/login/messages/messages_kan.properties new file mode 100644 index 00000000..0dbe0594 --- /dev/null +++ b/keycloak-jboss/theme/base/login/messages/messages_kan.properties @@ -0,0 +1,375 @@ +# encoding: utf-8 +doLogIn=ಲಾಗ್ ಇನ್ ಮಾಡಿ +doRegister=ನೋಂದಾಯಿಸಿ +doCancel=ರದ್ದುಮಾಡಿ +doSubmit=ಸಲ್ಲಿಸಿ +doBack=ಹಿಂದೆ +doYes=ಹೌದು +doNo=ಇಲ್ಲ +doContinue=ಮುಂದುವರಿಸಿ +doIgnore=ನಿರ್ಲಕ್ಷಿಸು +doAccept=ಸ್ವೀಕರಿಸಿ +doDecline=ಅವನತಿ +doForgotPassword=ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ? +doClickHere=ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ +doImpersonate=ಸೋಗು ಹಾಕಿ +doTryAgain=ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ +doTryAnotherWay=ಇನ್ನೊಂದು ರೀತಿಯಲ್ಲಿ ಪ್ರಯತ್ನಿಸಿ +kerberosNotConfigured=ಕರ್ಬರೋಸ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ +kerberosNotConfiguredTitle=ಕರ್ಬರೋಸ್ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ +bypassKerberosDetail=ಒಂದೋ ನೀವು ಕರ್ಬರೋಸ್‌ನಿಂದ ಲಾಗಿನ್ ಆಗಿಲ್ಲ ಅಥವಾ ಕರ್ಬರೋಸ್ ಲಾಗಿನ್‌ಗಾಗಿ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ. ಇತರ ವಿಧಾನಗಳ ಮೂಲಕ ಲಾಗಿನ್ ಆಗಲು ಮುಂದುವರಿಸಿ ಕ್ಲಿಕ್ ಮಾಡಿ +kerberosNotSetUp= ಕರ್ಬರೋಸ್ ಅನ್ನು ಹೊಂದಿಸಲಾಗಿಲ್ಲ. ನೀವು ಲಾಗಿನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ. +registerTitle=ನೋಂದಾಯಿಸಿ +loginTitle={0} to ಗೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ +loginTitleHtml={0} +impersonateTitle={0} ಸೋಗು ಹಾಕುವ ಬಳಕೆದಾರ +impersonateTitleHtml= {0} ಸೋಗು ಹಾಕುವ ಬಳಕೆದಾರ +realmChoice=ಕ್ಷೇತ್ರ +unknownUser=ಅಜ್ಞಾತ ಬಳಕೆದಾರ +loginTotpTitle=ಮೊಬೈಲ್ ದೃ hentic ೀಕರಣ ಸೆಟಪ್ +loginProfileTitle=ಖಾತೆ ಮಾಹಿತಿಯನ್ನು ನವೀಕರಿಸಿ +loginTimeout=ನಿಮ್ಮ ಲಾಗಿನ್ ಪ್ರಯತ್ನ ಮುಗಿದಿದೆ. ಲಾಗಿನ್ ಮೊದಲಿನಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. +oauthGrantTitle={0}to ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡಿ +oauthGrantTitleHtml={0} +errorTitle=ನಮ್ಮನ್ನು ಕ್ಷಮಿಸಿ ... +errorTitleHtml=ನಾವು ಕ್ಷಮಿಸಿ ... +emailVerifyTitle=ಇಮೇಲ್ ಪರಿಶೀಲನೆ +emailForgotTitle=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಮರೆತಿರುವಿರಾ? +updatePasswordTitle=ಪಾಸ್‌ವರ್ಡ್ ನವೀಕರಿಸಿ +codeSuccessTitle=ಯಶಸ್ಸಿನ ಕೋಡ್ +codeErrorTitle=ದೋಷ ಕೋಡ್ \: {0} +displayUnsupported=ವಿನಂತಿಸಿದ ಪ್ರದರ್ಶನ ಪ್ರಕಾರವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ +browserRequired=ಲಾಗಿನ್ ಮಾಡಲು ಬ್ರೌಸರ್ ಅಗತ್ಯವಿದೆ +browserContinue=ಲಾಗಿನ್ ಪೂರ್ಣಗೊಳಿಸಲು ಬ್ರೌಸರ್ ಅಗತ್ಯವಿದೆ +browserContinuePrompt=ಬ್ರೌಸರ್ ತೆರೆಯಿರಿ ಮತ್ತು ಲಾಗಿನ್ ಮುಂದುವರಿಸುವುದೇ? [y / n]: +browserContinueAnswer=y + + +termsTitle=ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು +termsText=

ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾದ ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು +termsPlainText=ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾದ ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು. + +recaptchaFailed=ಅಮಾನ್ಯ ಮರುಸಂಗ್ರಹ +recaptchaNotConfigured=Recaptcha ಅಗತ್ಯವಿದೆ, ಆದರೆ ಕಾನ್ಫಿಗರ್ ಮಾಡಿಲ್ಲ +consentDenied=ಒಪ್ಪಿಗೆ ನಿರಾಕರಿಸಲಾಗಿದೆ. + +noAccount=ಹೊಸ ಬಳಕೆದಾರ? +username=ಬಳಕೆದಾರಹೆಸರು +usernameOrEmail=ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್ +firstName=ಮೊದಲ ಹೆಸರು +givenName=ಕೊಟ್ಟಿರುವ ಹೆಸರು +fullName=ಪೂರ್ಣ ಹೆಸರು +lastName=ಕೊನೆಯ ಹೆಸರು +familyName=ಕುಟುಂಬದ ಹೆಸರು +email=ಇಮೇಲ್ +password=ಪಾಸ್ವರ್ಡ್ +passwordConfirm=ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ದೃ irm ೀಕರಿಸಿ +passwordNew=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ +passwordNewConfirm=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ದೃ mation ೀಕರಣ +rememberMe=ನನ್ನನ್ನು ನೆನಪಿಡಿ +authenticatorCode=ಒಂದು-ಬಾರಿ ಕೋಡ್ +address=ವಿಳಾಸ +street=ರಸ್ತೆ +locality=ನಗರ ಅಥವಾ ಸ್ಥಳ +region=ರಾಜ್ಯ, ಪ್ರಾಂತ್ಯ ಅಥವಾ ಪ್ರದೇಶ +postal_code=ಪಿನ್ ಅಥವಾ ಅಂಚೆ ಕೋಡ್ +country=ದೇಶ +emailVerified=ಇಮೇಲ್ ಪರಿಶೀಲಿಸಲಾಗಿದೆ +gssDelegationCredential=ಜಿಎಸ್ಎಸ್ ನಿಯೋಗ ರುಜುವಾತು + +profileScopeConsentText=ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ +emailScopeConsentText=ಇಮೇಲ್ ವಿಳಾಸ +addressScopeConsentText=ವಿಳಾಸ +phoneScopeConsentText=ಫೋನ್ ಸಂಖ್ಯೆ +offlineAccessScopeConsentText=ಆಫ್‌ಲೈನ್ ಪ್ರವೇಶ +samlRoleListScopeConsentText=ನನ್ನ ಪಾತ್ರಗಳು +rolesScopeConsentText=ಬಳಕೆದಾರರ ಪಾತ್ರಗಳು + +restartLoginTooltip=ಲಾಗಿನ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ + +loginTotpIntro=ಈ ಖಾತೆಯನ್ನು ಪ್ರವೇಶಿಸಲು ನೀವು ಒನ್ ಟೈಮ್ ಪಾಸ್ವರ್ಡ್ ಜನರೇಟರ್ ಅನ್ನು ಹೊಂದಿಸಬೇಕಾಗಿದೆ +loginTotpStep1=ನಿಮ್ಮ ಮೊಬೈಲ್‌ನಲ್ಲಿ ಈ ಕೆಳಗಿನ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಲ್ಲಿ ಒಂದನ್ನು ಸ್ಥಾಪಿಸಿ: +loginTotpStep2=ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ ಮತ್ತು ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ: +loginTotpStep3=ಅಪ್ಲಿಕೇಶನ್ ಒದಗಿಸಿದ ಒನ್-ಟೈಮ್ ಕೋಡ್ ಅನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಸೆಟಪ್ ಮುಗಿಸಲು ಸಲ್ಲಿಸು ಕ್ಲಿಕ್ ಮಾಡಿ. +loginTotpStep3DeviceName=ನಿಮ್ಮ OTP ಸಾಧನಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡಲು ಸಾಧನದ ಹೆಸರನ್ನು ಒದಗಿಸಿ. +loginTotpManualStep2=ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ ಮತ್ತು ಕೀಲಿಯನ್ನು ನಮೂದಿಸಿ: +loginTotpManualStep3=ಅಪ್ಲಿಕೇಶನ್ ಅವುಗಳನ್ನು ಹೊಂದಿಸಲು ಅನುಮತಿಸಿದರೆ ಈ ಕೆಳಗಿನ ಸಂರಚನಾ ಮೌಲ್ಯಗಳನ್ನು ಬಳಸಿ: +loginTotpUnableToScan=ಸ್ಕ್ಯಾನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲವೇ? +loginTotpScanBarcode=ಬಾರ್‌ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡುವುದೇ? +loginCredential=ರುಜುವಾತು +loginOtpOneTime=ಒಂದು-ಬಾರಿ ಕೋಡ್ +loginTotpType=ಪ್ರಕಾರ +loginTotpAlgorithm=ಅಲ್ಗಾರಿದಮ್ +loginTotpDigits=ಅಂಕೆಗಳು +loginTotpInterval=ಮಧ್ಯಂತರ +loginTotpCounter=ಕೌಂಟರ್ +loginTotpDeviceName=ಸಾಧನದ ಹೆಸರು + +loginTotp.totp=ಸಮಯ ಆಧಾರಿತ +loginTotp.hotp=ಕೌಂಟರ್ ಆಧಾರಿತ + +loginChooseAuthenticator=ಲಾಗಿನ್ ವಿಧಾನವನ್ನು ಆರಿಸಿ + +oauthGrantRequest=ನೀವು ಈ ಪ್ರವೇಶ ಸೌಲಭ್ಯಗಳನ್ನು ನೀಡುತ್ತೀರಾ? +inResource=இல் + +emailVerifyInstruction1=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲು ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇಮೇಲ್ ಅನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲಾಗಿದೆ. +emailVerifyInstruction2=ನಿಮ್ಮ ಇಮೇಲ್‌ನಲ್ಲಿ ಪರಿಶೀಲನೆ ಕೋಡ್ ಸ್ವೀಕರಿಸಿಲ್ಲವೇ? +emailVerifyInstruction3=ಇಮೇಲ್ ಅನ್ನು ಮರು ಕಳುಹಿಸಲು. + +emailLinkIdpTitle=ಲಿಂಕ್ {0} +emailLinkIdp1=ನಿಮ್ಮ {2} ಖಾತೆಯೊಂದಿಗೆ {0} ಖಾತೆ {1 link ಅನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಸೂಚನೆಗಳನ್ನು ಹೊಂದಿರುವ ಇಮೇಲ್ ಅನ್ನು ನಿಮಗೆ ಕಳುಹಿಸಲಾಗಿದೆ. +emailLinkIdp2=ನಿಮ್ಮ ಇಮೇಲ್‌ನಲ್ಲಿ ಪರಿಶೀಲನೆ ಕೋಡ್ ಸ್ವೀಕರಿಸಿಲ್ಲವೇ? +emailLinkIdp3=ಇಮೇಲ್ ಅನ್ನು ಮರು ಕಳುಹಿಸಲು. +emailLinkIdp4=ನೀವು ಈಗಾಗಲೇ ಬೇರೆ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದರೆ +emailLinkIdp5=ಮುಂದುವರಿಸಲು. + +backToLogin=& laquo; ಲಾಗಿನ್‌ಗೆ ಹಿಂತಿರುಗಿ + +emailInstruction=ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ ಮತ್ತು ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ನಾವು ನಿಮಗೆ ಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸುತ್ತೇವೆ. + +copyCodeInstruction=ದಯವಿಟ್ಟು ಈ ಕೋಡ್ ಅನ್ನು ನಕಲಿಸಿ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅಂಟಿಸಿ: + +pageExpiredTitle=ಪುಟ ಅವಧಿ ಮೀರಿದೆ +pageExpiredMsg1=ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು +pageExpiredMsg2=ಲಾಗಿನ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮುಂದುವರಿಸಲು + +personalInfo=ವೈಯಕ್ತಿಕ ಮಾಹಿತಿ: +role_admin=ನಿರ್ವಹಣೆ +role_realm-admin=ಕ್ಷೇತ್ರ ನಿರ್ವಹಣೆ +role_create-realm=ಕ್ಷೇತ್ರವನ್ನು ರಚಿಸಿ +role_create-client=ಕ್ಲೈಂಟ್ ರಚಿಸಿ +role_view-realm=ಕ್ಷೇತ್ರವನ್ನು ವೀಕ್ಷಿಸಿ +role_view-users=ಬಳಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ +role_view-applications=ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ +role_view-clients=ಗ್ರಾಹಕರನ್ನು ವೀಕ್ಷಿಸಿ +role_view-events=ಈವೆಂಟ್‌ಗಳನ್ನು ವೀಕ್ಷಿಸಿ +role_view-identity-providers=ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ವೀಕ್ಷಿಸಿ +role_manage-realm=ಕ್ಷೇತ್ರವನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-users=ಬಳಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-applications=ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-identity-providers=ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-clients=ಕ್ಲೈಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-events=ಈವೆಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_view-profile= ಪ್ರೊಫೈಲ್ ವೀಕ್ಷಿಸಿ +role_manage-account=ಖಾತೆಯನ್ನು ನಿರ್ವಹಿಸಿ +role_manage-account-links=ಖಾತೆ ಲಿಂಕ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ +role_read-token=ಟೋಕನ್ ಓದಿ +role_offline-access=ಆಫ್‌ಲೈನ್ ಪ್ರವೇಶ +client_account=ಖಾತೆ +client_account-console=ಖಾತೆ ಕನ್ಸೋಲ್ +client_security-admin-console=ಭದ್ರತಾ ನಿರ್ವಹಣೆ ಕನ್ಸೋಲ್ +client_admin-cli=ನಿರ್ವಹಣೆ CLI +client_realm-management=ಕ್ಷೇತ್ರ ನಿರ್ವಹಣೆ +client_broker=ಬ್ರೋಕರ್ + +requiredFields=ಅಗತ್ಯವಿರುವ ಕ್ಷೇತ್ರಗಳು + +invalidUserMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಪಾಸ್‌ವರ್ಡ್. +invalidUsernameMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು. +invalidUsernameOrEmailMessage=ಅಮಾನ್ಯ ಬಳಕೆದಾರಹೆಸರು ಅಥವಾ ಇಮೇಲ್. +invalidPasswordMessage=ಅಮಾನ್ಯ ಪಾಸ್ವರ್ಡ್. +invalidEmailMessage=ಅಮಾನ್ಯ ಇಮೇಲ್ ವಿಳಾಸ. +accountDisabledMessage=ಖಾತೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ. +accountTemporarilyDisabledMessage=ಖಾತೆಯನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ; ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ ಅಥವಾ ನಂತರ ಮರುಪ್ರಯತ್ನಿಸಿ. +expiredCodeMessage=ಲಾಗಿನ್ ಕಾಲಾವಧಿ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ. +expiredActionMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ಈಗ ಲಾಗಿನ್‌ನೊಂದಿಗೆ ಮುಂದುವರಿಸಿ. +expiredActionTokenNoSessionMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. +expiredActionTokenSessionExistsMessage=ಕ್ರಿಯೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಾರಂಭಿಸಿ. + +missingFirstNameMessage=ದಯವಿಟ್ಟು ಮೊದಲ ಹೆಸರನ್ನು ಸೂಚಿಸಿ. +missingLastNameMessage=ದಯವಿಟ್ಟು ಕೊನೆಯ ಹೆಸರನ್ನು ಸೂಚಿಸಿ. +missingEmailMessage=ದಯವಿಟ್ಟು ಇಮೇಲ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingUsernameMessage=ದಯವಿಟ್ಟು ಬಳಕೆದಾರಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingPasswordMessage=ದಯವಿಟ್ಟು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingTotpMessage=ದಯವಿಟ್ಟು ದೃ hentic ೀಕರಣ ಕೋಡ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +missingTotpDeviceNameMessage=ದಯವಿಟ್ಟು ಸಾಧನದ ಹೆಸರನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ. +notMatchPasswordMessage=ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. + +invalidPasswordExistingMessage=ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪಾಸ್‌ವರ್ಡ್ ಅಮಾನ್ಯವಾಗಿದೆ. +invalidPasswordBlacklistedMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಕಪ್ಪುಪಟ್ಟಿಗೆ ಸೇರಿಸಲಾಗಿದೆ. +invalidPasswordConfirmMessage=ಪಾಸ್‌ವರ್ಡ್ ದೃ mation ೀಕರಣವು ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. +invalidTotpMessage=ಅಮಾನ್ಯ ದೃ hentic ೀಕರಣ ಕೋಡ್. + +usernameExistsMessage=ಬಳಕೆದಾರಹೆಸರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. +emailExistsMessage=ಇಮೇಲ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ. + +federatedIdentityExistsMessage= {0} {1} with ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ. ಖಾತೆಯನ್ನು ಲಿಂಕ್ ಮಾಡಲು ದಯವಿಟ್ಟು ಖಾತೆ ನಿರ್ವಹಣೆಗೆ ಲಾಗಿನ್ ಮಾಡಿ. + +confirmLinkIdpTitle=ಖಾತೆ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ +federatedIdentityConfirmLinkMessage={0} {1} with ಹೊಂದಿರುವ ಬಳಕೆದಾರರು ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದಾರೆ. ನೀವು ಹೇಗೆ ಮುಂದುವರಿಸಲು ಬಯಸುತ್ತೀರಿ? +federatedIdentityConfirmReauthenticateMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು {0 }with ನೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ದೃ hentic ೀಕರಿಸಿ +nestedFirstBrokerFlowMessage={0} ಬಳಕೆದಾರ {1} known ತಿಳಿದಿರುವ ಯಾವುದೇ ಬಳಕೆದಾರರೊಂದಿಗೆ ಸಂಪರ್ಕ ಹೊಂದಿಲ್ಲ. +confirmLinkIdpReviewProfile=ವಿಮರ್ಶೆ ಪ್ರೊಫೈಲ್ +confirmLinkIdpContinue=ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಖಾತೆಗೆ ಸೇರಿಸಿ + +configureTotpMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನೀವು ಮೊಬೈಲ್ ದೃ hentic ೀಕರಣವನ್ನು ಹೊಂದಿಸಬೇಕಾಗಿದೆ. +updateProfileMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ ಅನ್ನು ನೀವು ನವೀಕರಿಸಬೇಕಾಗಿದೆ. +updatePasswordMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. +resetPasswordMessage=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸಬೇಕಾಗಿದೆ. +verifyEmailMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. +linkIdpMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು {0} with ನೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. + +emailSentMessage=ಹೆಚ್ಚಿನ ಸೂಚನೆಗಳೊಂದಿಗೆ ನೀವು ಶೀಘ್ರದಲ್ಲೇ ಇಮೇಲ್ ಸ್ವೀಕರಿಸಬೇಕು. +emailSendErrorMessage= ಇಮೇಲ್ ಕಳುಹಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ, ದಯವಿಟ್ಟು ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ. + +accountUpdatedMessage=ನಿಮ್ಮ ಖಾತೆಯನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ. +accountPasswordUpdatedMessage=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನವೀಕರಿಸಲಾಗಿದೆ. + +delegationCompleteHeader=ಲಾಗಿನ್ ಯಶಸ್ವಿಯಾಗಿದೆ +delegationCompleteMessage=ನೀವು ಈ ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ಮುಚ್ಚಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕನ್ಸೋಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಬಹುದು. +delegationFailedHeader=ಲಾಗಿನ್ ವಿಫಲವಾಗಿದೆ +delegationFailedMessage=ನೀವು ಈ ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ಮುಚ್ಚಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಕನ್ಸೋಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. + +noAccessMessage=ಪ್ರವೇಶವಿಲ್ಲ + +invalidPasswordMinLengthMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ ಉದ್ದ {0}. +invalidPasswordMinDigitsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ಸಂಖ್ಯಾತ್ಮಕ ಅಂಕೆಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordMinLowerCaseCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ಲೋವರ್ ಕೇಸ್ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordMinUpperCaseCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ದೊಡ್ಡಕ್ಷರ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordMinSpecialCharsMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕನಿಷ್ಠ {0} ವಿಶೇಷ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರಬೇಕು. +invalidPasswordNotUsernameMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಬಳಕೆದಾರಹೆಸರಿಗೆ ಸಮನಾಗಿರಬಾರದು. +invalidPasswordRegexPatternMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ರಿಜೆಕ್ಸ್ ಮಾದರಿ (ಗಳನ್ನು) ಹೊಂದಿಸಲು ವಿಫಲವಾಗಿದೆ. +invalidPasswordHistoryMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಕೊನೆಯ {0} ಪಾಸ್‌ವರ್ಡ್‌ಗಳಿಗೆ ಸಮನಾಗಿರಬಾರದು. +invalidPasswordGenericMessage=ಅಮಾನ್ಯ ಪಾಸ್‌ವರ್ಡ್: ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಪಾಸ್‌ವರ್ಡ್ ನೀತಿಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ. + +failedToProcessResponseMessage=ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ವಿಫಲವಾಗಿದೆ +httpsRequiredMessage=HTTPS ಅಗತ್ಯವಿದೆ +realmNotEnabledMessage=ಕ್ಷೇತ್ರವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ +invalidRequestMessage=ಅಮಾನ್ಯ ವಿನಂತಿ +failedLogout=ಲಾಗ್ out ಟ್ ವಿಫಲವಾಗಿದೆ +unknownLoginRequesterMessage=ಅಜ್ಞಾತ ಲಾಗಿನ್ ವಿನಂತಿ +loginRequesterNotEnabledMessage=ಲಾಗಿನ್ ವಿನಂತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿಲ್ಲ +bearerOnlyMessage=ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಬೇರರ್-ಮಾತ್ರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ +standardFlowDisabledMessage= ಕೊಟ್ಟಿರುವ ಪ್ರತಿಕ್ರಿಯೆ_ ಪ್ರಕಾರದೊಂದಿಗೆ ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕ್ಲೈಂಟ್‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್ಗಾಗಿ ಪ್ರಮಾಣಿತ ಹರಿವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. +implicitFlowDisabledMessage=ಕೊಟ್ಟಿರುವ ಪ್ರತಿಕ್ರಿಯೆ_ ಪ್ರಕಾರದೊಂದಿಗೆ ಬ್ರೌಸರ್ ಲಾಗಿನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲು ಕ್ಲೈಂಟ್‌ಗೆ ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ. ಕ್ಲೈಂಟ್‌ಗೆ ಸೂಚ್ಯ ಹರಿವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. +invalidRedirectUriMessage=ಅಮಾನ್ಯ ಮರುನಿರ್ದೇಶನ ಯೂರಿ +unsupportedNameIdFormatMessage=ಬೆಂಬಲಿಸದ NameIDFormat +invalidRequesterMessage=ಅಮಾನ್ಯ ವಿನಂತಿ +registrationNotAllowedMessage=ನೋಂದಣಿಯನ್ನು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ +resetCredentialNotAllowedMessage=ರುಜುವಾತು ಮರುಹೊಂದಿಸಲು ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ + +permissionNotApprovedMessage=ಅನುಮತಿಯನ್ನು ಅನುಮೋದಿಸಲಾಗಿಲ್ಲ. +noRelayStateInResponseMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಪ್ರತಿಕ್ರಿಯೆಯಾಗಿ ಯಾವುದೇ ರಿಲೇ ಸ್ಥಿತಿ ಇಲ್ಲ. +insufficientPermissionMessage=ಗುರುತುಗಳನ್ನು ಲಿಂಕ್ ಮಾಡಲು ಸಾಕಷ್ಟು ಅನುಮತಿಗಳು ಇಲ್ಲ. +couldNotProceedWithAuthenticationRequestMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ request ೀಕರಣ ವಿನಂತಿಯೊಂದಿಗೆ ಮುಂದುವರಿಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +couldNotObtainTokenMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಟೋಕನ್ ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +unexpectedErrorRetrievingTokenMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಟೋಕನ್ ಅನ್ನು ಹಿಂಪಡೆಯುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ.. +unexpectedErrorHandlingResponseMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಂದ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ. +identityProviderAuthenticationFailedMessage=ದೃ hentic ೀಕರಣ ವಿಫಲವಾಗಿದೆ. ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ದೃ ate ೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +couldNotSendAuthenticationRequestMessage= ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ request ೀಕರಣ ವಿನಂತಿಯನ್ನು ಕಳುಹಿಸಲಾಗಲಿಲ್ಲ. +unexpectedErrorHandlingRequestMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರಿಗೆ ದೃ hentic ೀಕರಣ ವಿನಂತಿಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ. +invalidAccessCodeMessage=ಅಮಾನ್ಯ ಪ್ರವೇಶ ಕೋಡ್. +sessionNotActiveMessage=ಸೆಷನ್ ಸಕ್ರಿಯವಾಗಿಲ್ಲ. +invalidCodeMessage=ದೋಷ ಸಂಭವಿಸಿದೆ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ಮತ್ತೆ ಲಾಗಿನ್ ಮಾಡಿ. +identityProviderUnexpectedErrorMessage=ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ದೃ ating ೀಕರಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ದೋಷ +identityProviderNotFoundMessage=ಗುರುತಿಸುವಿಕೆಯೊಂದಿಗೆ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಕಂಡುಹಿಡಿಯಲಾಗಲಿಲ್ಲ. +identityProviderLinkSuccess=ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ನೀವು ಯಶಸ್ವಿಯಾಗಿ ಪರಿಶೀಲಿಸಿದ್ದೀರಿ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಮೂಲ ಬ್ರೌಸರ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಲಾಗಿನ್‌ನೊಂದಿಗೆ ಮುಂದುವರಿಯಿರಿ. +staleCodeMessage=ಈ ಪುಟವು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ, ದಯವಿಟ್ಟು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ ಮತ್ತು ಮತ್ತೆ ಲಾಗ್ ಇನ್ ಮಾಡಿ +realmSupportsNoCredentialsMessage= ಕ್ಷೇತ್ರವು ಯಾವುದೇ ರುಜುವಾತು ಪ್ರಕಾರವನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. +credentialSetupRequired=ಲಾಗಿನ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ, ರುಜುವಾತು ಸೆಟಪ್ ಅಗತ್ಯವಿದೆ. +identityProviderNotUniqueMessage=ಕ್ಷೇತ್ರವು ಅನೇಕ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ದೃ ate ೀಕರಿಸಲು ಯಾವ ಗುರುತಿನ ಪೂರೈಕೆದಾರರನ್ನು ಬಳಸಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. +emailVerifiedMessage=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ಪರಿಶೀಲಿಸಲಾಗಿದೆ. +staleEmailVerificationLink= ನೀವು ಕ್ಲಿಕ್ ಮಾಡಿದ ಲಿಂಕ್ ಹಳೆಯ ಹಳೆಯ ಲಿಂಕ್ ಆಗಿದೆ ಮತ್ತು ಅದು ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ. ಬಹುಶಃ ನೀವು ಈಗಾಗಲೇ ನಿಮ್ಮ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿದ್ದೀರಿ. +identityProviderAlreadyLinkedMessage={0} by ನಿಂದ ಹಿಂತಿರುಗಿಸಲಾದ ಫೆಡರೇಟೆಡ್ ಗುರುತನ್ನು ಈಗಾಗಲೇ ಇನ್ನೊಬ್ಬ ಬಳಕೆದಾರರಿಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗಿದೆ. +confirmAccountLinking=ಗುರುತಿನ ಪೂರೈಕೆದಾರ {1 of ನ ಖಾತೆಯನ್ನು {0 your ನಿಮ್ಮ ಖಾತೆಯೊಂದಿಗೆ ಲಿಂಕ್ ಮಾಡುವುದನ್ನು ಖಚಿತಪಡಿಸಿ. +confirmEmailAddressVerification=ಇ-ಮೇಲ್ ವಿಳಾಸದ ಸಿಂಧುತ್ವವನ್ನು ದೃ irm ೀಕರಿಸಿ {0}. +confirmExecutionOfActions=ಈ ಕೆಳಗಿನ ಕ್ರಿಯೆಯನ್ನು (ಗಳನ್ನು) ಮಾಡಿ + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=& laquo; ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹಿಂತಿರುಗಿ +missingParameterMessage=ಕಾಣೆಯಾದ ನಿಯತಾಂಕಗಳು \: {0} +clientNotFoundMessage=ಗ್ರಾಹಕ ಕಂಡುಬಂದಿಲ್ಲ. +clientDisabledMessage=ಗ್ರಾಹಕನನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. +invalidParameterMessage=ಅಮಾನ್ಯ ನಿಯತಾಂಕ \: {0} +alreadyLoggedIn= ನೀವು ಈಗಾಗಲೇ ಲಾಗ್ ಇನ್ ಆಗಿದ್ದೀರಿ. +differentUserAuthenticated=ಈ ಅಧಿವೇಶನದಲ್ಲಿ ನೀವು ಈಗಾಗಲೇ ವಿಭಿನ್ನ ಬಳಕೆದಾರ '' {0} '' ಎಂದು ದೃ ated ೀಕರಿಸಲ್ಪಟ್ಟಿದ್ದೀರಿ. ದಯವಿಟ್ಟು ಮೊದಲು ಲಾಗ್ out ಟ್ ಮಾಡಿ. +brokerLinkingSessionExpired=ವಿನಂತಿಸಿದ ಬ್ರೋಕರ್ ಖಾತೆ ಲಿಂಕ್, ಆದರೆ ಪ್ರಸ್ತುತ ಸೆಷನ್ ಇನ್ನು ಮುಂದೆ ಮಾನ್ಯವಾಗಿಲ್ಲ. +proceedWithAction=& raquo; ಮುಂದುವರಿಯಲು ಇಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ + +requiredAction.CONFIGURE_TOTP= OTP ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ +requiredAction.terms_and_conditions=ನಿಯಮಗಳು ಮತ್ತು ಷರತ್ತುಗಳು +requiredAction.UPDATE_PASSWORD=ಪಾಸ್‌ವರ್ಡ್ ನವೀಕರಿಸಿ +requiredAction.UPDATE_PROFILE=ಪ್ರೊಫೈಲ್ ನವೀಕರಿಸಿ +requiredAction.VERIFY_EMAIL=ಇಮೇಲ್ ಪರಿಶೀಲಿಸಿ + +doX509Login=ನಿಮ್ಮನ್ನು as ಆಗಿ ಲಾಗ್ ಇನ್ ಮಾಡಲಾಗುತ್ತದೆ: +clientCertificate=X509 ಕ್ಲೈಂಟ್ ಪ್ರಮಾಣಪತ್ರ \: +noCertificate=[ಪ್ರಮಾಣಪತ್ರವಿಲ್ಲ] + + +pageNotFound=ಪುಟ ಬಳಕೆದಾರಹೆಸರು +internalServerError=ಆಂತರಿಕ ಸರ್ವರ್ ದೋಷ ಸಂಭವಿಸಿದೆ + +console-username=ಬಳಕೆದಾರಹೆಸರು: +console-password=ಪಾಸ್‌ವರ್ಡ್: +console-otp= ಒನ್ ಟೈಮ್ ಪಾಸ್‌ವರ್ಡ್: +console-new-password=ಹೊಸ ಪಾಸ್‌ವರ್ಡ್: +console-confirm-password=ಪಾಸ್ವರ್ಡ್ ದೃ irm ೀಕರಿಸಿ: +console-update-password=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ನ ನವೀಕರಣದ ಅಗತ್ಯವಿದೆ. +console-verify-email=ನಿಮ್ಮ ಇಮೇಲ್ ವಿಳಾಸವನ್ನು ನೀವು ಪರಿಶೀಲಿಸಬೇಕಾಗಿದೆ. ಪರಿಶೀಲನಾ ಕೋಡ್ ಹೊಂದಿರುವ {0 to ಗೆ ನಾವು ಇಮೇಲ್ ಕಳುಹಿಸಿದ್ದೇವೆ. ದಯವಿಟ್ಟು ಈ ಕೋಡ್ ಅನ್ನು ಕೆಳಗಿನ ಇನ್ಪುಟ್ಗೆ ನಮೂದಿಸಿ. +console-email-code=ಇಮೇಲ್ ಕೋಡ್: +console-accept-terms=ನಿಯಮಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತೀರಾ? [y / n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=ಬಳಕೆದಾರ ಮಾಹಿತಿ +openshift.scope.user_check-access=ಬಳಕೆದಾರ ಪ್ರವೇಶ ಮಾಹಿತಿ +openshift.scope.user_full=ಪೂರ್ಣ ಪ್ರವೇಶ +openshift.scope.list-projects=ಯೋಜನೆಗಳನ್ನು ಪಟ್ಟಿ ಮಾಡಿ + +# SAML authentication +saml.post-form.title=ದೃ hentic ೀಕರಣ ಮರುನಿರ್ದೇಶನ +saml.post-form.message=ಮರುನಿರ್ದೇಶಿಸಲಾಗುತ್ತಿದೆ, ದಯವಿಟ್ಟು ಕಾಯಿರಿ. +saml.post-form.js-disabled=ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಅದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಾವು ಬಲವಾಗಿ ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. ಮುಂದುವರಿಸಲು ಕೆಳಗಿನ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ. + +#authenticators +otp-display-name=ದೃ hentic ೀಕರಣ ಅಪ್ಲಿಕೇಶನ್ +otp-help-text=ದೃ hentic ೀಕರಣ ಅಪ್ಲಿಕೇಶನ್‌ನಿಂದ ಪರಿಶೀಲನೆ ಕೋಡ್ ನಮೂದಿಸಿ. +password-display-name=ಪಾಸ್ವರ್ಡ್ +password-help-text=ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಿ. +auth-username-form-display-name=ಬಳಕೆದಾರಹೆಸರು +auth-username-form-help-text=ನಿಮ್ಮ ಬಳಕೆದಾರ ಹೆಸರನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಲು ಪ್ರಾರಂಭಿಸಿ +auth-username-password-form-display-name=ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ +auth-username-password-form-help-text=ನಿಮ್ಮ ಬಳಕೆದಾರಹೆಸರು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ನಮೂದಿಸುವ ಮೂಲಕ ಲಾಗ್ ಇನ್ ಮಾಡಿ. + +# WebAuthn +webauthn-display-name=ಭದ್ರತಾ ಕೀ +webauthn-help-text=ಲಾಗ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ. +webauthn-passwordless-display-name=ಭದ್ರತಾ ಕೀ +webauthn-passwordless-help-text=ಪಾಸ್‌ವರ್ಡ್ ರಹಿತ ಲಾಗ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ಬಳಸಿ. +webauthn-login-title=ಭದ್ರತಾ ಕೀ ಲಾಗಿನ್ +webauthn-registration-title=ಭದ್ರತಾ ಕೀ ನೋಂದಣಿ +webauthn-available-authenticators= ಲಭ್ಯವಿರುವ ದೃ hentic ೀಕರಣಕಾರರು + +# WebAuthn Error +webauthn-error-title=ಭದ್ರತಾ ಕೀ ದೋಷ +webauthn-error-registration= ನಿಮ್ಮ ಭದ್ರತಾ ಕೀಲಿಯನ್ನು ನೋಂದಾಯಿಸಲು ವಿಫಲವಾಗಿದೆ. +webauthn-error-api-get=ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ate ೀಕರಿಸಲು ವಿಫಲವಾಗಿದೆ. +webauthn-error-different-user=ಮೊದಲ ದೃ hentic ೀಕೃತ ಬಳಕೆದಾರನು ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ated ೀಕರಿಸಲ್ಪಟ್ಟವನಲ್ಲ. +webauthn-error-auth-verification=ಭದ್ರತಾ ಕೀ ದೃ hentic ೀಕರಣ ಫಲಿತಾಂಶವು ಅಮಾನ್ಯವಾಗಿದೆ. +webauthn-error-register-verification=ಭದ್ರತಾ ಕೀ ನೋಂದಣಿ ಫಲಿತಾಂಶ ಅಮಾನ್ಯವಾಗಿದೆ. +webauthn-error-user-not-found=ಅಜ್ಞಾತ ಬಳಕೆದಾರರನ್ನು ಭದ್ರತಾ ಕೀಲಿಯಿಂದ ದೃ ated ೀಕರಿಸಲಾಗಿದೆ. + +identity-provider-redirector=ಮತ್ತೊಂದು ಗುರುತಿನ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಿ \ No newline at end of file diff --git a/keycloak-jboss/theme/base/login/messages/messages_tam.properties b/keycloak-jboss/theme/base/login/messages/messages_tam.properties new file mode 100644 index 00000000..526688b0 --- /dev/null +++ b/keycloak-jboss/theme/base/login/messages/messages_tam.properties @@ -0,0 +1,375 @@ +# encoding: utf-8 +doLogIn=உள்நுழைக +doRegister=பதிவு +doCancel=ரத்துசெய் +doSubmit=சமர்ப்பி +doBack=பின் +doYes=ஆம் +doNo=இல்லை +doContinue=தொடரவும் +doIgnore=புறக்கணிக்கவும் +doAccept=ஏற்றுக்கொள் +doDecline=சரிவு +doForgotPassword=கடவுச்சொல் மறந்துவிட்டதா? +doClickHere=இங்கே கிளிக் செய்க +doImpersonate=ஆள்மாறாட்டம் +doTryAgain=மீண்டும் முயற்சிக்கவும் +doTryAnotherWay=வேறு வழியில் முயற்சிக்கவும் +kerberosNotConfigured=கெர்பரோஸ் கட்டமைக்கப்படவில்லை +kerberosNotConfiguredTitle=கெர்பரோஸ் கட்டமைக்கப்படவில்லை +bypassKerberosDetail=ஒன்று நீங்கள் கெர்பரோஸால் உள்நுழைந்திருக்கவில்லை அல்லது உங்கள் உலாவி கெர்பரோஸ் உள்நுழைவுக்கு அமைக்கப்படவில்லை. பிற வழிகளில் உள்நுழைவதைத் தொடரவும் என்பதைக் கிளிக் செய்க +kerberosNotSetUp=கெர்பரோஸ் அமைக்கப்படவில்லை. நீங்கள் உள்நுழைய முடியாது.. +registerTitle=பதிவு +loginTitle={0} to இல் உள்நுழைக +loginTitleHtml={0} +impersonateTitle={0} ஆள்மாறாட்டம் பயனர் +impersonateTitleHtml= {0} ஆள்மாறாட்டம் பயனர் +realmChoice=சாம்ராஜ்யம் +unknownUser=தெரியாத பயனர் +loginTotpTitle=மொபைல் அங்கீகார அமைப்பு +loginProfileTitle=கணக்குத் தகவலைப் புதுப்பிக்கவும் +loginTimeout=உங்கள் உள்நுழைவு முயற்சி முடிந்தது. உள்நுழைவு தொடக்கத்திலிருந்தே தொடங்கும். +oauthGrantTitle={0} to க்கு அணுகலை வழங்குக +oauthGrantTitleHtml={0} +errorTitle=மன்னிக்கவும் ... +errorTitleHtml=நாங்கள் மன்னிக்கவும் ... +emailVerifyTitle=மின்னஞ்சல் சரிபார்ப்பு +emailForgotTitle=உங்கள் கடவுச்சொல்லை மறந்துவிட்டீர்களா? +updatePasswordTitle=கடவுச்சொல்லைப் புதுப்பிக்கவும் +codeSuccessTitle=வெற்றிக் குறியீடு +codeErrorTitle=பிழை குறியீடு \: {0} +displayUnsupported=கோரப்பட்ட காட்சி வகை ஆதரிக்கப்படவில்லை +browserRequired=உள்நுழைய உலாவி தேவை +browserContinue=உள்நுழைவை முடிக்க உலாவி தேவை +browserContinuePrompt=உலாவியைத் திறந்து உள்நுழைவைத் தொடரவா? [y / n]: +browserContinueAnswer=y + + +termsTitle=விதிமுறைகள் மற்றும் நிபந்தனைகள் +termsText=

வரையறுக்க வேண்டிய விதிமுறைகள் மற்றும் நிபந்தனைகள் +termsPlainText=வரையறுக்க வேண்டிய விதிமுறைகள் மற்றும் நிபந்தனைகள். + +recaptchaFailed=தவறான Recaptcha +recaptchaNotConfigured=Recaptcha தேவை, ஆனால் உள்ளமைக்கப்படவில்லை +consentDenied=ஒப்புதல் மறுக்கப்பட்டது. + +noAccount=புதிய பயனரா? +username=பயனர்பெயர் +usernameOrEmail=பயனர்பெயர் அல்லது மின்னஞ்சல் +firstName=முதல் பெயர் +givenName=கொடுக்கப்பட்ட பெயர் +fullName=முழு பெயர் +lastName=கடைசி பெயர் +familyName=குடும்ப பெயர் +email=மின்னஞ்சல் +password=கடவுச்சொல் +passwordConfirm=கடவுச்சொல்லை உறுதிப்படுத்தவும் +passwordNew=புதிய கடவுச்சொல் +passwordNewConfirm=புதிய கடவுச்சொல் உறுதிப்படுத்தல் +rememberMe=என்னை நினைவில் வையுங்கள் +authenticatorCode=ஒரு முறை குறியீடு +address=முகவரி +street=தெரு +locality=நகரம் அல்லது இடம் +region=மாநிலம், மாகாணம் அல்லது பிராந்தியம் +postal_code=ஜிப் அல்லது அஞ்சல் குறியீடு +country=நாடு +emailVerified=மின்னஞ்சல் சரிபார்க்கப்பட்டது +gssDelegationCredential=ஜிஎஸ்எஸ் பிரதிநிதிகள் நற்சான்றிதழ் + +profileScopeConsentText=பயனர் சுயவிவரம் +emailScopeConsentText=மின்னஞ்சல் முகவரி +addressScopeConsentText=முகவரி +phoneScopeConsentText=தொலைபேசி எண் +offlineAccessScopeConsentText=ஆஃப்லைன் அணுகல் +samlRoleListScopeConsentText=எனது பாத்திரங்கள் +rolesScopeConsentText=பயனர் பாத்திரங்கள் + +restartLoginTooltip=உள்நுழைவை மறுதொடக்கம் செய்யுங்கள் + +loginTotpIntro=இந்த கணக்கை அணுக நீங்கள் ஒரு முறை கடவுச்சொல் ஜெனரேட்டரை அமைக்க வேண்டும் +loginTotpStep1=உங்கள் மொபைலில் பின்வரும் பயன்பாடுகளில் ஒன்றை நிறுவவும்: +loginTotpStep2=பயன்பாட்டைத் திறந்து பார்கோடு ஸ்கேன் செய்யுங்கள்: +loginTotpStep3=பயன்பாடு வழங்கிய ஒரு முறை குறியீட்டை உள்ளிட்டு, அமைப்பை முடிக்க சமர்ப்பி என்பதைக் கிளிக் செய்க. +loginTotpStep3DeviceName=உங்கள் OTP சாதனங்களை நிர்வகிக்க உதவும் சாதன பெயரை வழங்கவும். +loginTotpManualStep2=பயன்பாட்டைத் திறந்து விசையை உள்ளிடவும்: +loginTotpManualStep3=பயன்பாடு அவற்றை அமைக்க அனுமதித்தால் பின்வரும் உள்ளமைவு மதிப்புகளைப் பயன்படுத்தவும்: +loginTotpUnableToScan=ஸ்கேன் செய்ய முடியவில்லையா? +loginTotpScanBarcode=பார்கோடு ஸ்கேன் செய்யவா? +loginCredential=நற்சான்றிதழ் +loginOtpOneTime=ஒரு முறை குறியீடு +loginTotpType=வகை +loginTotpAlgorithm=அல்காரிதம் +loginTotpDigits=இலக்கங்கள் +loginTotpInterval=இடைவெளி +loginTotpCounter=எதிர் +loginTotpDeviceName=சாதனத்தின் பெயர் + +loginTotp.totp=நேரத்தை அடிப்படையாகக் கொண்டது +loginTotp.hotp=எதிர் அடிப்படையிலான + +loginChooseAuthenticator=உள்நுழைவு முறையைத் தேர்ந்தெடுக்கவும் + +oauthGrantRequest=இந்த அணுகல் சலுகைகளை வழங்குகிறீர்களா? +inResource=இல் + +emailVerifyInstruction1=உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வழிமுறைகளுடன் ஒரு மின்னஞ்சல் உங்களுக்கு அனுப்பப்பட்டுள்ளது. +emailVerifyInstruction2=உங்கள் மின்னஞ்சலில் சரிபார்ப்புக் குறியீட்டைப் பெறவில்லையா? +emailVerifyInstruction3=மின்னஞ்சலை மீண்டும் அனுப்ப. + +emailLinkIdpTitle=இணைப்பு {0} +emailLinkIdp1=உங்கள் {2} கணக்குடன் {0} கணக்கு {1 link ஐ இணைப்பதற்கான வழிமுறைகளைக் கொண்ட மின்னஞ்சல் உங்களுக்கு அனுப்பப்பட்டுள்ளது. +emailLinkIdp2=உங்கள் மின்னஞ்சலில் சரிபார்ப்புக் குறியீட்டைப் பெறவில்லையா? +emailLinkIdp3=மின்னஞ்சலை மீண்டும் அனுப்ப. +emailLinkIdp4=நீங்கள் ஏற்கனவே வெவ்வேறு உலாவியில் மின்னஞ்சலை சரிபார்த்திருந்தால் +emailLinkIdp5=தொடர. + +backToLogin=& laquo; உள்நுழைவுக்குத் திரும்பு + +emailInstruction=உங்கள் பயனர்பெயர் அல்லது மின்னஞ்சல் முகவரியை உள்ளிடுக, புதிய கடவுச்சொல்லை எவ்வாறு உருவாக்குவது என்பது குறித்த வழிமுறைகளை நாங்கள் உங்களுக்கு அனுப்புவோம். + +copyCodeInstruction=தயவுசெய்து இந்த குறியீட்டை நகலெடுத்து உங்கள் பயன்பாட்டில் ஒட்டவும்: + +pageExpiredTitle=பக்கம் காலாவதியானது +pageExpiredMsg1=உள்நுழைவு செயல்முறையை மறுதொடக்கம் செய்ய +pageExpiredMsg2=உள்நுழைவு செயல்முறையைத் தொடர + +personalInfo=தனிப்பட்ட தகவல்: +role_admin=நிர்வாகம் +role_realm-admin=சாம்ராஜ்ய நிர்வாகம் +role_create-realm=சாம்ராஜ்யத்தை உருவாக்கு +role_create-client=கிளையண்டை உருவாக்கவும் +role_view-realm=சாம்ராஜ்யத்தைக் காண்க +role_view-users=பயனர்களைக் காண்க +role_view-applications=பயன்பாடுகளைக் காண்க +role_view-clients=வாடிக்கையாளர்களைக் காண்க +role_view-events=நிகழ்வுகளைக் காண்க +role_view-identity-providers=அடையாள வழங்குநர்களைக் காண்க +role_manage-realm=சாம்ராஜ்யத்தை நிர்வகிக்கவும் +role_manage-users=பயனர்களை நிர்வகிக்கவும் +role_manage-applications=பயன்பாடுகளை நிர்வகிக்கவும் +role_manage-identity-providers=அடையாள வழங்குநர்களை நிர்வகிக்கவும் +role_manage-clients=வாடிக்கையாளர்களை நிர்வகிக்கவும் +role_manage-events=நிகழ்வுகளை நிர்வகிக்கவும் +role_view-profile=சுயவிவரத்தைக் காண்க +role_manage-account=கணக்கை நிர்வகிக்கவும் +role_manage-account-links=கணக்கை நிர்வகிக்கவும் +role_read-token=டோக்கனைப் படியுங்கள் +role_offline-access=ஆஃப்லைன் அணுகல் +client_account=கணக்கு +client_account-console=கணக்கு பணியகம் +client_security-admin-console=பாதுகாப்பு நிர்வாக கன்சோல் +client_admin-cli=நிர்வாகம் CLI +client_realm-management=சாம்ராஜ்ய மேலாண்மை +client_broker=தரகர் + +requiredFields=தேவையான புலங்கள் + +invalidUserMessage=தவறான பயனர்பெயர் அல்லது கடவுச்சொல். +invalidUsernameMessage=தவறான பயனர்பெயர். +invalidUsernameOrEmailMessage=தவறான பயனர்பெயர் அல்லது மின்னஞ்சல். +invalidPasswordMessage=தவறான கடவுச்சொல். +invalidEmailMessage=தவறான மின்னஞ்சல் முகவரி. +accountDisabledMessage=கணக்கு முடக்கப்பட்டுள்ளது, உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளுங்கள். +accountTemporarilyDisabledMessage=கணக்கு தற்காலிகமாக முடக்கப்பட்டுள்ளது; உங்கள் நிர்வாகியைத் தொடர்பு கொள்ளவும் அல்லது பின்னர் மீண்டும் முயற்சிக்கவும். +expiredCodeMessage=உள்நுழைவு நேரம் முடிந்தது. மீண்டும் உள்நுழைக. +expiredActionMessage=செயல் காலாவதியானது. இப்போது உள்நுழைவுடன் தொடரவும். +expiredActionTokenNoSessionMessage=செயல் காலாவதியானது. +expiredActionTokenSessionExistsMessage=செயல் காலாவதியானது. மீண்டும் தொடங்கவும். + +missingFirstNameMessage=தயவுசெய்து முதல் பெயரைக் குறிப்பிடவும். +missingLastNameMessage=தயவுசெய்து கடைசி பெயரைக் குறிப்பிடவும். +missingEmailMessage=தயவுசெய்து மின்னஞ்சலைக் குறிப்பிடவும். +missingUsernameMessage=தயவுசெய்து பயனர்பெயரைக் குறிப்பிடவும். +missingPasswordMessage=தயவுசெய்து கடவுச்சொல்லைக் குறிப்பிடவும். +missingTotpMessage=அங்கீகாரக் குறியீட்டைக் குறிப்பிடவும். +missingTotpDeviceNameMessage=சாதனத்தின் பெயரைக் குறிப்பிடவும். +notMatchPasswordMessage=கடவுச்சொற்கள் பொருந்தவில்லை. + +invalidPasswordExistingMessage=ஏற்கனவே உள்ள கடவுச்சொல் தவறானது. +invalidPasswordBlacklistedMessage=தவறான கடவுச்சொல்: கடவுச்சொல் தடுப்புப்பட்டியலில் உள்ளது. +invalidPasswordConfirmMessage=கடவுச்சொல் உறுதிப்படுத்தல் பொருந்தவில்லை. +invalidTotpMessage=தவறான அங்கீகார குறியீடு. + +usernameExistsMessage=பயனர்பெயர் ஏற்கனவே உள்ளது. +emailExistsMessage=மின்னஞ்சல் ஏற்கனவே உள்ளது. + +federatedIdentityExistsMessage= {0} {1} with உடன் பயனர் ஏற்கனவே உள்ளது. கணக்கை இணைக்க கணக்கு நிர்வாகத்தில் உள்நுழைக. + +confirmLinkIdpTitle=கணக்கு ஏற்கனவே உள்ளது +federatedIdentityConfirmLinkMessage={0} {1} with உடன் பயனர் ஏற்கனவே உள்ளது. நீங்கள் எவ்வாறு தொடர விரும்புகிறீர்கள்? +federatedIdentityConfirmReauthenticateMessage=உங்கள் கணக்கை உடன் இணைக்க அங்கீகரிக்கவும்{0} +nestedFirstBrokerFlowMessage=known {0} பயனர் {1} known எந்தவொரு அறியப்பட்ட பயனருடனும் இணைக்கப்படவில்லை. +confirmLinkIdpReviewProfile=மதிப்பாய்வு சுயவிவரம் +confirmLinkIdpContinue=இருக்கும் கணக்கில் சேர்க்கவும் + +configureTotpMessage=உங்கள் கணக்கைச் செயல்படுத்த மொபைல் அங்கீகாரத்தை அமைக்க வேண்டும். +updateProfileMessage=உங்கள் கணக்கைச் செயல்படுத்த உங்கள் பயனர் சுயவிவரத்தைப் புதுப்பிக்க வேண்டும். +updatePasswordMessage=உங்கள் கணக்கை செயல்படுத்த உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். +resetPasswordMessage=உங்கள் கடவுச்சொல்லை மாற்ற வேண்டும். +verifyEmailMessage=உங்கள் கணக்கைச் செயல்படுத்த உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வேண்டும். +linkIdpMessage=உங்கள் கணக்கை {0 with உடன் இணைக்க உங்கள் மின்னஞ்சல் முகவரியை சரிபார்க்க வேண்டும். + +emailSentMessage=மேலதிக வழிமுறைகளுடன் விரைவில் ஒரு மின்னஞ்சலைப் பெற வேண்டும். +emailSendErrorMessage=மின்னஞ்சல் அனுப்புவதில் தோல்வி, தயவுசெய்து பின்னர் மீண்டும் முயற்சிக்கவும். + +accountUpdatedMessage=உங்கள் கணக்கு புதுப்பிக்கப்பட்டது. +accountPasswordUpdatedMessage=உங்கள் கடவுச்சொல் புதுப்பிக்கப்பட்டது. + +delegationCompleteHeader=உள்நுழைவு வெற்றிகரமாக +delegationCompleteMessage=நீங்கள் இந்த உலாவி சாளரத்தை மூடிவிட்டு உங்கள் கன்சோல் பயன்பாட்டிற்குச் செல்லலாம். +delegationFailedHeader=உள்நுழைவு தோல்வியுற்றது +delegationFailedMessage=நீங்கள் இந்த உலாவி சாளரத்தை மூடிவிட்டு உங்கள் கன்சோல் பயன்பாட்டிற்குச் சென்று மீண்டும் உள்நுழைய முயற்சி செய்யலாம். + +noAccessMessage=அணுகல் இல்லை + +invalidPasswordMinLengthMessage=தவறான கடவுச்சொல்: குறைந்தபட்ச நீளம் {0}. +invalidPasswordMinDigitsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} எண் இலக்கங்களைக் கொண்டிருக்க வேண்டும். +invalidPasswordMinLowerCaseCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} சிறிய எழுத்துக்குறிகளைக் கொண்டிருக்க வேண்டும். +invalidPasswordMinUpperCaseCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} மேல் வழக்கு எழுத்துக்களைக் கொண்டிருக்க வேண்டும். +invalidPasswordMinSpecialCharsMessage=தவறான கடவுச்சொல்: குறைந்தது {0} சிறப்பு எழுத்துக்களைக் கொண்டிருக்க வேண்டும். +invalidPasswordNotUsernameMessage=தவறான கடவுச்சொல்: பயனர்பெயருக்கு சமமாக இருக்கக்கூடாது. +invalidPasswordRegexPatternMessage=தவறான கடவுச்சொல்: ரீஜெக்ஸ் முறை (களை) பொருத்தத் தவறிவிட்டது. +invalidPasswordHistoryMessage=தவறான கடவுச்சொல்: கடைசி {0} கடவுச்சொற்களுக்கு சமமாக இருக்கக்கூடாது. +invalidPasswordGenericMessage=தவறான கடவுச்சொல்: புதிய கடவுச்சொல் கடவுச்சொல் கொள்கைகளுடன் பொருந்தவில்லை. + +failedToProcessResponseMessage=பதிலைச் செயலாக்குவதில் தோல்வி +httpsRequiredMessage=HTTPS தேவை +realmNotEnabledMessage=சாம்ராஜ்யம் இயக்கப்படவில்லை +invalidRequestMessage=தவறான கோரிக்கை +failedLogout=வெளியேறுதல் தோல்வியுற்றது +unknownLoginRequesterMessage=அறியப்படாத உள்நுழைவு கோரிக்கை +loginRequesterNotEnabledMessage=உள்நுழைவு கோரிக்கை இயக்கப்படவில்லை +bearerOnlyMessage=உலாவி உள்நுழைவைத் தொடங்க தாங்கி மட்டும் பயன்பாடுகள் அனுமதிக்கப்படவில்லை +standardFlowDisabledMessage=கொடுக்கப்பட்ட மறுமொழி_வகை மூலம் உலாவி உள்நுழைவைத் தொடங்க கிளையன்ட் அனுமதிக்கப்படுவதில்லை. வாடிக்கையாளருக்கு நிலையான ஓட்டம் முடக்கப்பட்டுள்ளது. +implicitFlowDisabledMessage=கொடுக்கப்பட்ட மறுமொழி_வகை மூலம் உலாவி உள்நுழைவைத் தொடங்க கிளையன்ட் அனுமதிக்கப்படுவதில்லை. கிளையண்ட்டுக்கு மறைமுக ஓட்டம் முடக்கப்பட்டுள்ளது. +invalidRedirectUriMessage=தவறான வழிமாற்று யூரி +unsupportedNameIdFormatMessage=ஆதரிக்கப்படாத NameIDFormat +invalidRequesterMessage=தவறான கோரிக்கை +registrationNotAllowedMessage=பதிவு செய்ய அனுமதிக்கப்படவில்லை +resetCredentialNotAllowedMessage=நற்சான்றிதழை மீட்டமைக்க அனுமதிக்கப்படவில்லை + +permissionNotApprovedMessage=அனுமதி அங்கீகரிக்கப்படவில்லை. +noRelayStateInResponseMessage=அடையாள வழங்குநரின் பதிலில் ரிலே நிலை இல்லை. +insufficientPermissionMessage=அடையாளங்களை இணைக்க போதுமான அனுமதி இல்லை. +couldNotProceedWithAuthenticationRequestMessage=அடையாள வழங்குநரிடம் அங்கீகார கோரிக்கையுடன் தொடர முடியவில்லை. +couldNotObtainTokenMessage=அடையாள வழங்குநரிடமிருந்து டோக்கனைப் பெற முடியவில்லை. +unexpectedErrorRetrievingTokenMessage=அடையாள வழங்குநரிடமிருந்து டோக்கனை மீட்டெடுக்கும்போது எதிர்பாராத பிழை. +unexpectedErrorHandlingResponseMessage=அடையாள வழங்குநரிடமிருந்து பதிலைக் கையாளும் போது எதிர்பாராத பிழை. +identityProviderAuthenticationFailedMessage=அங்கீகாரம் தோல்வியுற்றது. அடையாள வழங்குநருடன் அங்கீகரிக்க முடியவில்லை. +couldNotSendAuthenticationRequestMessage= அடையாள வழங்குநருக்கு அங்கீகார கோரிக்கையை அனுப்ப முடியவில்லை. +unexpectedErrorHandlingRequestMessage=அடையாள வழங்குநரிடம் அங்கீகார கோரிக்கையை கையாளும் போது எதிர்பாராத பிழை. +invalidAccessCodeMessage=தவறான அணுகல் குறியீடு. +sessionNotActiveMessage=அமர்வு செயலில் இல்லை. +invalidCodeMessage=பிழை ஏற்பட்டது, தயவுசெய்து உங்கள் விண்ணப்பத்தின் மூலம் மீண்டும் உள்நுழைக. +identityProviderUnexpectedErrorMessage=அடையாள வழங்குநருடன் அங்கீகரிக்கும் போது எதிர்பாராத பிழை +identityProviderNotFoundMessage=அடையாளங்காட்டியுடன் அடையாள வழங்குநரைக் கண்டுபிடிக்க முடியவில்லை. +identityProviderLinkSuccess=உங்கள் மின்னஞ்சலை வெற்றிகரமாக சரிபார்க்கிறீர்கள். தயவுசெய்து உங்கள் அசல் உலாவிக்குச் சென்று உள்நுழைவுடன் தொடரவும். +staleCodeMessage=இந்த பக்கம் இனி செல்லுபடியாகாது, தயவுசெய்து உங்கள் பயன்பாட்டிற்குச் சென்று மீண்டும் உள்நுழைக +realmSupportsNoCredentialsMessage=எந்த நற்சான்றிதழ் வகையையும் சாம்ராஜ்யம் ஆதரிக்கவில்லை. +credentialSetupRequired=உள்நுழைய முடியாது, நற்சான்றிதழ் அமைப்பு தேவை. +identityProviderNotUniqueMessage=பல அடையாள வழங்குநர்களை மெய்ப்பாடு ஆதரிக்கிறது. எந்த அடையாள வழங்குநரை அங்கீகரிக்க பயன்படுத்த வேண்டும் என்பதை தீர்மானிக்க முடியவில்லை. +emailVerifiedMessage=உங்கள் மின்னஞ்சல் முகவரி சரிபார்க்கப்பட்டது. +staleEmailVerificationLink=நீங்கள் கிளிக் செய்த இணைப்பு பழைய பழமையான இணைப்பு மற்றும் இனி செல்லுபடியாகாது. உங்கள் மின்னஞ்சலை நீங்கள் ஏற்கனவே சரிபார்த்திருக்கலாம். +identityProviderAlreadyLinkedMessage={0} by வழங்கிய கூட்டாட்சி அடையாளம் ஏற்கனவே மற்றொரு பயனருடன் இணைக்கப்பட்டுள்ளது. +confirmAccountLinking=அடையாள வழங்குநரின் {1} account கணக்கை your 1 your உங்கள் கணக்கோடு இணைப்பதை உறுதிப்படுத்தவும். +confirmEmailAddressVerification=மின்னஞ்சல் முகவரியின் செல்லுபடியை உறுதிப்படுத்தவும் {0}. +confirmExecutionOfActions=பின்வரும் செயலை (களை) செய்யவும் + +locale_ca=Catal\u00E0 +locale_de=Deutsch +locale_eng=English +locale_es=Espa\u00F1ol +locale_fra=Fran\u00E7ais +locale_it=Italiano +locale_ja=\u65E5\u672C\u8A9E +locale_nl=Nederlands +locale_no=Norsk +locale_pl=Polish +locale_pt_BR=Portugu\u00EAs (Brasil) +locale_pt-BR=Portugu\u00EAs (Brasil) +locale_ru=\u0420\u0443\u0441\u0441\u043A\u0438\u0439 +locale_lt=Lietuvi\u0173 +locale_zh-CN=\u4E2D\u6587\u7B80\u4F53 +locale_sk=Sloven\u010Dina +locale_sv=Svenska +locale_ara=Arabic +locale_tam=தமிழ் +locale_kan=ಕನ್ನಡ +locale_hin=हिंदी + +backToApplication=& laquo; பயன்பாட்டிற்குத் திரும்பு +missingParameterMessage=காணாமல் போன அளவுருக்கள் \: {0} +clientNotFoundMessage=வாடிக்கையாளர் கிடைக்கவில்லை. +clientDisabledMessage=வாடிக்கையாளர் முடக்கப்பட்டுள்ளது. +invalidParameterMessage=தவறான அளவுரு \: {0} +alreadyLoggedIn= நீங்கள் ஏற்கனவே உள்நுழைந்துள்ளீர்கள். +differentUserAuthenticated=இந்த அமர்வில் நீங்கள் ஏற்கனவே வெவ்வேறு பயனராக '' {0} '' அங்கீகரிக்கப்பட்டுள்ளீர்கள். முதலில் வெளியேறவும். +brokerLinkingSessionExpired=கோரப்பட்ட தரகர் கணக்கு இணைத்தல், ஆனால் தற்போதைய அமர்வு இனி செல்லுபடியாகாது. +proceedWithAction=& raquo; தொடர இங்கே கிளிக் செய்க + +requiredAction.CONFIGURE_TOTP= OTP ஐ உள்ளமைக்கவும் +requiredAction.terms_and_conditions=விதிமுறைகள் மற்றும் நிபந்தனைகள் +requiredAction.UPDATE_PASSWORD=கடவுச்சொல்லைப் புதுப்பிக்கவும் +requiredAction.UPDATE_PROFILE=சுயவிவரத்தைப் புதுப்பிக்கவும் +requiredAction.VERIFY_EMAIL=மின்னஞ்சலை சரிபார்க்கவும் + +doX509Login=நீங்கள் as ஆக உள்நுழைவீர்கள்: +clientCertificate=X509 கிளையன்ட் சான்றிதழ் \: +noCertificate=[சான்றிதழ் இல்லை] + + +pageNotFound=பக்கம் காணப்படவில்லை +internalServerError=உள் சேவையக பிழை ஏற்பட்டது + +console-username=பயனர்பெயர்: +console-password=கடவுச்சொல்: +console-otp=ஒரு முறை கடவுச்சொல்: +console-new-password=புதிய கடவுச்சொல்: +console-confirm-password=கடவுச்சொல்லை உறுதிப்படுத்தவும்: +console-update-password=உங்கள் கடவுச்சொல்லின் புதுப்பிப்பு தேவை. +console-verify-email=உங்கள் மின்னஞ்சல் முகவரியை நீங்கள் சரிபார்க்க வேண்டும். சரிபார்ப்புக் குறியீட்டைக் கொண்ட மின்னஞ்சலை {0 to க்கு அனுப்பினோம். கீழே உள்ளீட்டில் இந்த குறியீட்டை உள்ளிடவும். +console-email-code=மின்னஞ்சல் குறியீடு: +console-accept-terms=விதிமுறைகளை ஏற்கவா? [y/n]: +console-accept=y + +# Openshift messages +openshift.scope.user_info=பயனர் தகவல் +openshift.scope.user_check-access=பயனர் அணுகல் தகவல் +openshift.scope.user_full=முழு அணுகல் +openshift.scope.list-projects=திட்டங்களை பட்டியலிடுங்கள் + +# SAML authentication +saml.post-form.title=அங்கீகார வழிமாற்று +saml.post-form.message=திருப்பி விடுகிறது, தயவுசெய்து காத்திருங்கள். +saml.post-form.js-disabled=ஜாவாஸ்கிரிப்ட் முடக்கப்பட்டுள்ளது. அதை இயக்க நாங்கள் கடுமையாக பரிந்துரைக்கிறோம். தொடர கீழே உள்ள பொத்தானைக் கிளிக் செய்க. + +#authenticators +otp-display-name=அங்கீகார பயன்பாடு +otp-help-text=அங்கீகார பயன்பாட்டிலிருந்து சரிபார்ப்புக் குறியீட்டை உள்ளிடவும். +password-display-name=கடவுச்சொல் +password-help-text=உங்கள் கடவுச்சொல்லை உள்ளிட்டு உள்நுழைக. +auth-username-form-display-name=பயனர்பெயர் +auth-username-form-help-text=உங்கள் பயனர்பெயரை உள்ளிட்டு உள்நுழையத் தொடங்குங்கள் +auth-username-password-form-display-name=பயனர்பெயர் மற்றும் கடவுச்சொல் +auth-username-password-form-help-text=உங்கள் பயனர்பெயர் மற்றும் கடவுச்சொல்லை உள்ளிட்டு உள்நுழைக. + +# WebAuthn +webauthn-display-name=பாதுகாப்பு விசை +webauthn-help-text=உள்நுழைய உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்தவும். +webauthn-passwordless-display-name=பாதுகாப்பு விசை +webauthn-passwordless-help-text=கடவுச்சொல் இல்லாத உள்நுழைவுக்கு உங்கள் பாதுகாப்பு விசையைப் பயன்படுத்தவும். +webauthn-login-title=பாதுகாப்பு விசை உள்நுழைவு +webauthn-registration-title=பாதுகாப்பு விசை பதிவு +webauthn-available-authenticators=கிடைக்கக்கூடிய அங்கீகாரங்கள் + +# WebAuthn Error +webauthn-error-title=பாதுகாப்பு விசை பிழை +webauthn-error-registration=உங்கள் பாதுகாப்பு விசையை பதிவு செய்வதில் தோல்வி. +webauthn-error-api-get=பாதுகாப்பு விசையால் அங்கீகரிக்க முடியவில்லை. +webauthn-error-different-user=முதல் அங்கீகரிக்கப்பட்ட பயனர் பாதுகாப்பு விசையால் அங்கீகரிக்கப்பட்டவர் அல்ல. +webauthn-error-auth-verification=பாதுகாப்பு விசை அங்கீகார முடிவு தவறானது. +webauthn-error-register-verification=பாதுகாப்பு விசை பதிவு முடிவு தவறானது. +webauthn-error-user-not-found=பாதுகாப்பு விசையால் அங்கீகரிக்கப்பட்ட அறியப்படாத பயனர். + +identity-provider-redirector=மற்றொரு அடையாள வழங்குநருடன் இணைக்கவும் \ No newline at end of file diff --git a/keycloak-jboss/theme/base/login/register.ftl b/keycloak-jboss/theme/base/login/register.ftl new file mode 100644 index 00000000..25b5c9cd --- /dev/null +++ b/keycloak-jboss/theme/base/login/register.ftl @@ -0,0 +1,152 @@ +<#import "template.ftl" as layout> +<@layout.registrationLayout; section> + <#if section = "header"> + ${msg("registerTitle")} + <#elseif section = "form"> +

+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + <#if !realm.registrationEmailAsUsername> +
+
+ +
+
+ +
+
+ + + <#if passwordRequired??> +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + + <#if recaptchaRequired??> +
+
+
+
+
+ + + + + + diff --git a/keycloak-jboss/theme/base/login/theme.properties b/keycloak-jboss/theme/base/login/theme.properties new file mode 100644 index 00000000..1f7d337b --- /dev/null +++ b/keycloak-jboss/theme/base/login/theme.properties @@ -0,0 +1 @@ +locales=ca,de,eng,es,fra,it,ja,lt,nl,no,pl,pt-BR,ru,sk,sv,tr,zh-CN,ara,hin,kan,tam diff --git a/keycloak-jboss/theme/mosip/account/resources/css/account.css b/keycloak-jboss/theme/mosip/account/resources/css/account.css new file mode 100644 index 00000000..3878e43a --- /dev/null +++ b/keycloak-jboss/theme/mosip/account/resources/css/account.css @@ -0,0 +1,277 @@ +html { + height: 100%; +} + +body { + background-color: #F9F9F9; + margin: 0; + padding: 0; + height: 100%; +} + +header .navbar { + margin-bottom: 0; + min-height: inherit; +} + +.header .container { + position: relative; +} + +.navbar-title { + background-image: url('../img/logo.png'); + height: 25px; + background-repeat: no-repeat; + width: 123px; + margin: 3px 10px 5px; + text-indent: -99999px; +} + +.navbar-pf .navbar-utility { + right: 20px; + top: -34px; + font-size: 12px; +} + +.navbar-pf .navbar-utility > li > a { + color: #fff !important; + padding-bottom: 12px; + padding-top: 11px; + border-left: medium none; +} + +.container { + height: 100%; +} + +.content-area { + background-color: #fff; + border-color: #CECECE; + border-style: solid; + border-width: 0 1px; + height: 100%; + padding: 0 30px; +} + +.margin-bottom { + margin-bottom: 10px; +} + +/* Sidebar */ + +.bs-sidebar { + background-color: #f9f9f9; + padding-top: 44px; + padding-right: 0; + padding-left: 0; + z-index: 20; +} +.bs-sidebar ul { + list-style: none; + padding-left: 12px; +} + +.bs-sidebar ul li { + margin-bottom: 0.5em; + margin-left: -1em; +} +.bs-sidebar ul li a { + font-size: 14px; + padding-left: 25px; + color: #4d5258; + line-height: 28px; + display: block; + border-width: 1px 0 1px 1px; + border-style: solid; + border-color: #f9f9f9; +} +.bs-sidebar ul li a:hover, +.bs-sidebar ul li a:focus { + text-decoration: none; + color: #777777; + border-right: 2px solid #aaa; +} +.bs-sidebar ul li.active a { + background-color: #c7e5f0; + border-color: #56bae0; + font-weight: bold; + background-image: url(../img/icon-sidebar-active.png); + background-repeat: no-repeat; + background-position: right center; +} + +.bs-sidebar ul li.active a:hover { + border-right: none; +} + + +.content-area h2 { + font-family: "Open Sans", sans-serif; + font-weight: 100; + font-size: 24px; + margin-bottom: 25px; + margin-top: 25px; +} + +.subtitle { + text-align: right; + margin-top: 30px; + color: #909090; +} + +.required { + color: #CB2915; +} + + +.alert { + margin-top: 30px; + margin-bottom: 0; +} + +.feedback-aligner .alert { + background-position: 1.27273em center; + background-repeat: no-repeat; + border-radius: 2px; + border-width: 1px; + color: #4D5258; + display: inline-block; + font-size: 1.1em; + line-height: 1.4em; + margin: 0; + padding: 0.909091em 3.63636em; + position: relative; + text-align: left; +} +.alert.alert-success { + background-color: #E4F1E1; + border-color: #4B9E39; +} +.alert.alert-error { + background-color: #F8E7E7; + border-color: #B91415; +} +.alert.alert-warning { + background-color: #FEF1E9; + border-color: #F17528; +} +.alert.alert-info { + background-color: #E4F3FA; + border-color: #5994B2; +} + +.form-horizontal { + border-top: 1px solid #E9E8E8; + padding-top: 23px; +} + +.form-horizontal .control-label { + color: #909090; + line-height: 1.4em; + padding-top: 5px; + position: relative; + text-align: right; + width: 100%; +} + +.form-group { + position: relative; +} + +.control-label + .required { + position: absolute; + right: -2px; + top: 0; +} + +#kc-form-buttons { + text-align: right; + margin-top: 10px; +} + +#kc-form-buttons .btn-primary { + float: right; + margin-left: 8px; +} + +/* Authenticator page */ + +ol { + padding-left: 40px; +} + +ol li { + font-size: 13px; + margin-bottom: 10px; + position: relative; +} + +ol li img { + margin-top: 15px; + margin-bottom: 5px; + border: 1px solid #eee; +} + +hr + .form-horizontal { + border: none; + padding-top: 0; +} + +.kc-dropdown{ + position: relative; +} +.kc-dropdown > a{ + display:block; + padding: 11px 10px 12px; + line-height: 12px; + font-size: 12px; + color: #fff !important; + text-decoration: none; +} +.kc-dropdown > a::after{ + content: "\2c5"; + margin-left: 4px; +} +.kc-dropdown:hover > a{ + background-color: rgba(0,0,0,0.2); +} +.kc-dropdown ul li a{ + padding: 1px 11px; + font-size: 12px; + color: #000 !important; + border: 1px solid #fff; + text-decoration: none; + display:block; + line-height: 20px; +} +.kc-dropdown ul li a:hover{ + color: #4d5258; + background-color: #d4edfa; + border-color: #b3d3e7; +} +.kc-dropdown ul{ + position: absolute; + z-index: 2000; + list-style:none; + display:none; + padding: 5px 0px; + margin: 0px; + background-color: #fff !important; + border: 1px solid #b6b6b6; + border-radius: 1px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; + min-width: 100px; +} +.kc-dropdown:hover ul{ + display:block; +} + + +#kc-totp-secret-key { + border: 1px solid #eee; + font-size: 16px; + padding: 10px; + margin: 50px 0; +} \ No newline at end of file diff --git a/keycloak-jboss/theme/mosip/account/resources/img/favicon.ico b/keycloak-jboss/theme/mosip/account/resources/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..48188dedaaed851f39dcf435d3bde8e0dce753fd GIT binary patch literal 627 zcmV-(0*w8MP)fnm`u?`7EDZT zU@#004h&*6qDT$3A+1HARIlxQw0Gw~Fqjw}@R{Bx@00f{&kMVRw3Fz%ejPaV7yTE* zFfRVFfUfKNfww^PA5AYAhLPDOVn^Z@5Uq#8eCj{K^1uiH-%|sWPn^Z+JGia8uj_ip zZxduPnQOLfKTs5fNvoYXN5LH&;bDG;iSDDcboJ0G%bfWzLoC#S@B5!sRW1H1Fh4(U zCK8G8Z0;+U=JG_6dl~BMWvaKyqfNox4TZyDm6NS?PHPsf>mtkY)(X?p)044SEDSKQ zTqY7~#q8?iUXO?Cx}0ybNC=-sv&nO(ja);Zsw$GSbv}_!r^h5o;>pJq=GIKi)BxwS zIvtLQX_~mM%k55!1cRzr-Bk6$hn3YADC!p(StiU*sn$CQ!;;MuB0(GzS&ySNfE*{22sK>&cF zD98ZA!^0c7Ty9jX6mNc<6~^+fSY63eDwURie5q8*?sVcL zaG@TFvod&`Xu~G?W|nd+MRD*L$@~KG!V|6H_V+Po~-c73FxkIEGZ*N=jIun2<7~^e}_RcjiI`=UK zVCeYHtShu&-DyXLq!)E7W+-p1Ilz&A@c@&Xh}=}&gd+kA7qR+CC9YLuAP#kTzP zOOabP0l+XkKxNbyD literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/account/resources/img/keycloak-logo.png b/keycloak-jboss/theme/mosip/account/resources/img/keycloak-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..955574855d493cc248e112b7d755a95d641613f8 GIT binary patch literal 5213 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 span { + -moz-box-sizing: border-box; + color: white; + float: left; + font-size: 11px; + font-family: "Open Sans", sans-serif; + font-weight: bold; + height: 24px; + line-height: 24px; + padding: 0; + width: 50%; +} +.onoffswitch .onoffswitch-switch { + background-image: linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -o-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -moz-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -webkit-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -ms-linear-gradient(top, #fafafa 0%, #ededed 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fafafa), color-stop(1, 0, #ededed)); + border: 1px solid #aaa; + border-radius: 2px; + bottom: 0; + margin: 0; + position: absolute; + right: 39px; + top: 0; + transition: all 0.3s ease-in 0s; + -webkit-transition: all 0.3s ease-in 0s; + width: 23px; +} +.onoffswitch .onoffswitch-inner .onoffswitch-active { + background-image: linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -o-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -moz-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -webkit-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -ms-linear-gradient(top, #00a9ec 0%, #009bd3 100%); + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #00a9ec), color-stop(1, 0, #009bd3)); + color: #FFFFFF; + padding-left: 10px; +} +.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-active, +.onoffswitch-checkbox:disabled + .onoffswitch-label .onoffswitch-inner .onoffswitch-inactive { + background-image: none; + background-color: #e5e5e5; + color: #9d9fa1; +} +.onoffswitch .onoffswitch-inner .onoffswitch-inactive { + background: linear-gradient(#fefefe, #e8e8e8) repeat scroll 0 0 transparent; + color: #4d5258; + padding-right: 10px; + text-align: right; +} +.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner { + margin-left: 0; +} +.onoffswitch .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch { + right: 0; +} + + +/*********** Select 2 ***********/ + +.select2-container { + width: 100%; +} + +.select2-container-multi .select2-choices .select2-search-field { + height: 26px; +} + +/*********** html select ********/ +.overflow-select { + overflow: auto; +} + + +/*********** New Menu ***********/ + + +.sidebar-pf-left{ + background: #292e34; +} + +.sidebar-pf .nav-pills > li a i, .sidebar-pf .nav-pills > li a span{ + color: #72767b; + display: inline-block; + margin-right: 10px; +} +.sidebar-pf .nav-pills > li > a{ + color: #dbdada; + padding: 0px 20px 0 30px!important; + line-height: 30px; + border-left-width: 12px; + border-left-style: solid; + border-left-color: #292e34; + margin-left: -6px; +} + +.sidebar-pf .nav-pills > li > a:hover{ + background: #393f44; + border-color:#292e34; + border-left-color: #393f44; + color: #fff; +} + +.sidebar-pf .nav-pills > li > a:after{ + display: none!important; +} + + +.sidebar-pf .nav-pills > li.active > a { + color: #fff; + background: #393f44!important; + border-bottom: 1px solid #000!important; + border-top: 1px solid #000!important; + border-left-color: #39a5dc!important; +} + +.sidebar-pf .nav-pills > li.active a i, .sidebar-pf .nav-pills > li.active a span{ + color: #39a5dc; +} + +/*********** Realm selector ***********/ + +.realm-selector{ + color: #fff; + margin: 0 -20px; + position: relative; +} + +.realm-dropmenu{ + display: none; + cursor: pointer; + position: absolute; + top: 60px; + left: 0; + right: 0; + z-index: 999; + background: #fff; +} + +.realm-selector:hover .realm-dropmenu{ + display: block; +} + +.realm-add{ + padding: 10px; +} + +.realm-selector h2{ + font-size: 16px; + line-height: 60px; + padding: 0 20px; + margin: 0; + border-bottom: 1px solid #d5d5d6; +} + +.realm-selector h2 i{ + display: inline-block; + float: right; + line-height: 60px; +} + + +.realm-selector ul{ + padding-left: 0; + margin: 0; + list-style: none; + max-height: 200px; + overflow-y:auto; +} + + +.realm-selector ul li a{ + line-height: 60px; + padding: 0 20px; + border-bottom: 1px solid #d5d5d6; + line-height: 39px; + display: block; + font-size: 14px; +} + + +/*********** Overwrites header defaults ***********/ + +.navbar-pf{ + border-top: none!important; +} + +.navbar-pf .navbar-brand { + padding: 0; + height: 56px; + line-height: 56px; + background-position: center center; + background-image: url('../img/keyclok-logo.png'); + background-size: 148px 30px; + background-repeat: no-repeat; + width: 148px; +} + +.navbar-pf .navbar-utility .dropdown-toggle { + padding: 23px !important; +} + +.clickable { + cursor: pointer; +} + +h1 i { + color: #999999; + font-size: 18px; + margin-left: 10px; +} + +/* Action cell */ +.kc-action-cell { + background-color: #eeeeee; + background-image: linear-gradient(to bottom, #fafafa 0%, #ededed 100%); + background-repeat: repeat-x; + + text-align: center; + vertical-align: middle; + + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + cursor:pointer; +} + +.kc-action-cell:hover { + background-color: #eeeeee; + background-image: none; +} + +.kc-sorter span { + margin-left: 10px; +} + + +/* Time selector */ + +.time-selector input { + display: inline-block; + width: 120px; + padding-right: 0; + margin-right: 0; +} + +.time-selector select { + display: inline-block; + width: 80px; + margin-left: 0; + padding-left: 0; +} + +.ace_editor { + height: 600px; + width: 100%; +} + +.kc-button-input-file input { + float: left; + width: 73%; +} + +.kc-button-input-file label { + float: left; + margin-left: 2%; + width: 25%; +} + +table.kc-authz-table-expanded { + margin-top: 0px !important; +} + +.no-gutter > [class*='col-'] { + padding-right:0!important; + padding-left:0!important; +} + +.password-conceal { + font-family: 'text-security-disc'; + font-size: 14px; +} + +/* Deactivation styles for user-group membership tree models */ + +div[tree-model] li .deactivate { + color: #4a5053; + opacity: 0.4; +} + +div[tree-model] li .deactivate_selected { + background-color: #dcdcdc; + font-weight: bold; + padding: 1px 5px; +} + +/* search highlighting */ + +div[tree-model] li .highlight { + background-color: #aaddff; +} + +/* Manage credentials */ +table.credentials-table { + margin-top: 0; + margin-bottom: 20px; +} + +table.credentials-table td.kc-action-cell { + vertical-align: middle; +} + +table.credentials-table input[type='text'] { + width: 100%; +} + +td.credential-label-cell { + padding: 5px !important; +} + +td.credential-data-cell { + padding: 0 !important; +} + +td.credential-data-cell a { + margin-left: 5px; + line-height: 2.5em; + cursor: pointer; +} + +td.credential-action-cell { + padding: 0px !important; +} + +td.credential-action-cell div.kc-action-cell { + width: 100%; + height: 36px; + line-height: 34px; +} + +td.credential-action-cell.expanded div.kc-action-cell { + border-bottom: 1px solid #d1d1d1; +} + +table.credential-data-table { + margin-top: 0; +} + +table.credential-data-table tr:first-child td { + border-top: 0; +} + +table.credential-data-table td:first-child { + width: 150px; +} + +table.credential-data-table td.key { + text-align: right; + font-weight: bold; +} + diff --git a/keycloak-jboss/theme/mosip/admin/resources/img/favicon.ico b/keycloak-jboss/theme/mosip/admin/resources/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..48188dedaaed851f39dcf435d3bde8e0dce753fd GIT binary patch literal 627 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 akN*dX+`h$pZtd{^0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/keycloak-jboss/theme/mosip/admin/resources/img/select-arrow.png b/keycloak-jboss/theme/mosip/admin/resources/img/select-arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..a865a6fa7324e054cffa6e1878d69438780b20c7 GIT binary patch literal 1154 zcmbVMTWHfz7>p*_>aXo9GTd$y`I14I@;lVM5JhweKRY3LHQC7fY1b^;WQwQUZl zZ_DPjwq`A+Q}I<~jVEFP6CjoJ%#!7boBlvw?V=p`?Z&9uZobt9Ob)oP#nEs*8W&c;ICuXx!@E2M)bdlwvIE#@G8ws*Pl;dI?8%xx(sU$BXLTpf}aEyknRX9Ex zim)s%ggGwB*G7`bSSXr`29=P4X)D;YTqMb3NA3NLQ&>ArT2 zA9uH-Ywx;_@dpP62I76EH_hHudfZ-m_3_D@=eypgs=j~y@N$1<+s2d9fz493b7t>b zdi$;G;Cc4Oy<=aF_s6}ZOI9R~$+;sl=AP@Cwm_P2^Y!Ofnm`u?`7EDZT zU@#004h&*6qDT$3A+1HARIlxQw0Gw~Fqjw}@R{Bx@00f{&kMVRw3Fz%ejPaV7yTE* zFfRVFfUfKNfww^PA5AYAhLPDOVn^Z@5Uq#8eCj{K^1uiH-%|sWPn^Z+JGia8uj_ip zZxduPnQOLfKTs5fNvoYXN5LH&;bDG;iSDDcboJ0G%bfWzLoC#S@B5!sRW1H1Fh4(U zCK8G8Z0;+U=JG_6dl~BMWvaKyqfNox4TZyDm6NS?PHPsf>mtkY)(X?p)044SEDSKQ zTqY7~#q8?iUXO?Cx}0ybNC=-sv&nO(ja);Zsw$GSbv}_!r^h5o;>pJq=GIKi)BxwS zIvtLQX_~mM%k55!1cRzr-Bk6$hn3YADC!p(StiU*sn$CQ!;;MuB0(GzS&ySNfE*{22sK>&cF zD98ZA!^0c7Ty9jX6mNc<6~^+fSY63eDwURie5q8*?sVcL zaG@TFvod&`Xu~G?W|nd+MRD*L$@~KG!VpbFH`>7=NJimT8HPR1b>!7GRq%%D)H?|Wo% zC@Pq9$n!u*^5*>k`A#3+kZfF(`zJ152&b=J2><{9!0hZbO_;oR8NR%F9kLkE@5Z(} z|9X+Rqj^|(^f2UQ`B&qbstQ}zSHs@7Mx_7%0O*T*Sywa1;J+C|`oj73Q8;qyTvEs3fk{(-JWjQ|4!;N?Hk9Wu}T8~06?E)T~0nO z$|9aN^E2gq`rLgk&kqde>9h9ceYG2J7l(CKD-8eu0DaQs4ti*V_8>1|L40001@p8^a34>6V-IeVqb00000NkvXXu0mjf D@HyfE literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/login/resources/img/feedback-error-sign.png b/keycloak-jboss/theme/mosip/login/resources/img/feedback-error-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd500445d7249ddd1b1dea7dc79d5e2f75cf223 GIT binary patch literal 343 zcmV-d0jU0oP)Rb^f-HfiA|a#ZS&BN>m{U!Bf9XBlP=AUsPhep z0;u>nQCxb~G6c;4tOM)aDVebC2LF?__!*$Y%|S5$e;ZcIdR+o#XrlC>L#@3RFZO+y z4ac0_$8S?_3L#)o1cV>wsb|~_2qr}-{Xy0sk1ddFrS2NjYBy!#lv@hhf%T~P1a2ls zg9cR!$Y8{U0euD81vt(&PyxuVl0?xy+oT=qfZ( zU<;qzo;L~X{8Dl*OuQ;g6C?jcvTY4MH)UgY@3N+I%Y&B-aM#Gmz4*K9-@h9B>+j#Q z@1I{-{^;BJ=zrF!cK!}Pr!g=bh|HcT>Z=m}wDHmbyC0nDaV#gVm&uycGotW zpv;r|b9e9Fzj)!!_FHF``Wx|qb*+1{*5LE=)%xG0rlsBtdT?-dwR{mlor@ArQ!T)1>sQ|BRGRy6pUXk5Eq%Jj zt#hDSUl#1`1Hp4rtdp{v4HrVu6{1-oD!M}vd literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/login/resources/img/feedback-success-sign.png b/keycloak-jboss/theme/mosip/login/resources/img/feedback-success-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..640bd71cab7bdfc7a8adcf28ffaf6db736a1c008 GIT binary patch literal 410 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2comSQK*5Dp-y;YjHK@;M7UB8!3Q zuY)k7lg8`{prB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&3=E9oo-U3d z7QI&|@AYC16lmSQ(|nzi6W2vA0hQiX{shsj9%4*QVx6m7=T11}S0g4pTOrBJ(L2zj zqqUbmAu&;Tnwis)`FE;yFXbH4TM_-V#F%}bS9C7N)nccy^_%s?ydQOE$UA=bQASGdP zUS5*^?Y}eFBd=Y%8?p303zx;a-hVOO%tz8T)jmnDmV3_E#n4nO@i}MX#=5_=rbOm! z*!s=OFZw-8%CQyiuZC^?Jc-4l;#4*gQu&X%Q~loCIB2_ BsrLW? literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/login/resources/img/feedback-warning-arrow-down.png b/keycloak-jboss/theme/mosip/login/resources/img/feedback-warning-arrow-down.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2d9d2aeb1c1461767988a042aae50492d454bc GIT binary patch literal 513 zcmV+c0{;DpP)pbFH`>7=NJimT8HPR1b>!7GRq%%D)H?|Wo% zC@Pq9$n!u*^5*>k`A#3+kZfF(`zJ152&b=J2><{9!0hZbO_;oR8NR%F9kLkE@5Z(} z|9X+Rqj^|(^f2UQ`B&qbstQ}zSHs@7Mx_7%0O*T*Sywa1;J+C|`oj73Q8;qyTvEs3fk{(-JWjQ|4!;N?Hk9Wu}T8~06?E)T~0nO z$|9aN^E2gq`rLgk&kqde>9h9ceYG2J7l(CKD-8eu0DaQs4ti*V_8>1|L40001@p8^a34>6V-IeVqb00000NkvXXu0mjf D@HyfE literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/login/resources/img/feedback-warning-sign.png b/keycloak-jboss/theme/mosip/login/resources/img/feedback-warning-sign.png new file mode 100644 index 0000000000000000000000000000000000000000..f9392a356fd3b383997c1ef289b48d02be96c351 GIT binary patch literal 646 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 literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/login/resources/img/keycloak-logo-text.png b/keycloak-jboss/theme/mosip/login/resources/img/keycloak-logo-text.png new file mode 100644 index 0000000000000000000000000000000000000000..63f3b9f87deb2dee6172d44fbad7177064245101 GIT binary patch literal 19994 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 literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/login/resources/img/mosiplogo.png b/keycloak-jboss/theme/mosip/login/resources/img/mosiplogo.png new file mode 100644 index 0000000000000000000000000000000000000000..321ba3df51e313a491639e7d6fd7af1b7488e9b5 GIT binary patch literal 11347 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 + +  + + + Welcome to ${productNameFull} + + + + + + + + <#if properties.styles?has_content> + <#list properties.styles?split(' ') as style> + + + + + + + + + diff --git a/keycloak-jboss/theme/mosip/welcome/resources/admin-console.png b/keycloak-jboss/theme/mosip/welcome/resources/admin-console.png new file mode 100644 index 0000000000000000000000000000000000000000..ac734972ff042a5afcc95ab6e2c0303a22f71b2e GIT binary patch literal 712 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 literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/welcome/resources/bg.png b/keycloak-jboss/theme/mosip/welcome/resources/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..b722a001b320de8a297a800267f24499f017036c GIT binary patch literal 72796 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�uUMdUXaHskh$;TuNe>sE5A1;RU9ye9>rOq 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 D>3@or literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/welcome/resources/css/welcome.css b/keycloak-jboss/theme/mosip/welcome/resources/css/welcome.css new file mode 100644 index 00000000..c6a679a2 --- /dev/null +++ b/keycloak-jboss/theme/mosip/welcome/resources/css/welcome.css @@ -0,0 +1,140 @@ +body { + background: #fff url(../bg.png) no-repeat center bottom fixed; + background-size: cover; +} +.welcome-header { + margin-top: 10px; + margin-bottom: 50px; + margin-left: -10px; +} +.welcome-header img { + width: 150px; + margin-bottom: 40px; +} +.welcome-message { + margin-top: 20px; +} +.h-l { + min-height: 370px; + padding: 10px 20px 10px; + overflow: hidden; +} +.h-l h3 { + margin-bottom: 10px; +} +.h-m { + height: 110px; + padding-top: 23px; +} +.card-pf img { + width: 22px; + margin-right: 10px; + vertical-align: bottom; +} +img.doc-img { + width: auto; + height: 22px; +} +.link { + font-size: 16px; + vertical-align: baseline; + margin-left: 5px; +} +h3 { + font-weight: 550; +} +h3 a:link, +h3 a:visited { + color: #333; + font-weight: 550; +} +h3 a:hover, +h3 a:hover .link { + text-decoration: none; + color: #00659c; +} +.h-l h3 a img { + height: 30px; + width: auto; +} + +.description { + margin-top: 30px; +} + +.card-pf { + border-top: 1px solid rgba(3, 3, 3, 0.1); + box-shadow: 0 1px 1px rgba(3, 3, 3, 0.275); +} + +.welcome-form label, +.welcome-form input { + display: block; + width: 100%; +} + +.welcome-form label { + color: #828486; + font-weight: normal; + margin-top: 18px; +} +.welcome-form input { + border: 0; + border-bottom: solid 1px #cbcbcb; +} +.welcome-form input:focus { + border-bottom: solid 1px #5e99c6; + outline-width: 0; +} +.welcome-form button { + margin-top: 10px; +} +.error { + color: #c00; + border-color: #c00; + padding: 5px 10px; +} +.success { + color: #3f9c35; + border-color: #3f9c35; + padding: 5px 10px; +} +.welcome-form + .welcome-primary-link, +.welcome-message + .welcome-primary-link { + display: none; +} + +.footer img { + float: right; + width: 150px; + margin-top: 30px; +} + +@media (max-width: 768px) { + .welcome-header { + margin-top: 10px; + margin-bottom: 20px; + } + .welcome-header img { + margin-bottom: 20px; + } + h3 { + margin-top: 10px; + } + .h-l, + .h-m { + height: auto; + min-height: auto; + padding: 5px 10px; + } + .h-l img { + display: inline; + margin-bottom: auto; + } + .description { + display: none; + } + .footer img { + margin-top: 10px; + } +} diff --git a/keycloak-jboss/theme/mosip/welcome/resources/favicon.ico b/keycloak-jboss/theme/mosip/welcome/resources/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..48188dedaaed851f39dcf435d3bde8e0dce753fd GIT binary patch literal 627 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 E08=aAq5uE@ literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/welcome/resources/logo.png b/keycloak-jboss/theme/mosip/welcome/resources/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..134440b16ebf5c23935f14502c08903a530d7829 GIT binary patch literal 7539 zcmX9@2{=^W`&Y^uWvMW-?6B9F&rJ0RBW7^W%nwOU!7#Kt%4b;`uRaIBNdX+gmJd%@>`{+?fbWCh% zSy}MINAdCTXmnyt&Fj>(bbtQ<3T5o&%a@NIKkn}*q0tHT_4ul)>Ow4*q1D{d(oY%) zk9gYN-od#4_(^zRP%su-6c7-ENlGp*DJjGj5eUSxGThs@ZRO?VFc^%1(AM7JeD5A( z%(#YzhHGnUD=VuQ8>OVCFeL6pTF?*^h!_9U|7U3 zJR{@Pf5?m}1D3J29*^(q?`N!KI3Xh9X+Mb+8TpK%GdMWJ&}Wzv85tQ8657|-7Z&!I z!IQxxBs3I>@@0sgJ$r^gAQ*%0o*o-p+rh!X|G@w2NhDH4M8wF*D5JHuwvLR9Ff3(= zn3`8oQ&XAHRpaC1s-%s%xjBYKj9nP|C=}|^qeo~oy1l&}i9{|fElp2P&&p5Fjii?Z+3OX2RqdD+Nt#|c!!-8NNoe>nyUZ>&{s&~hwadLimX3nFgjWwp^x~q5C$a2QmqHOD8 z>A+a;{Bqv#Ol_vCC=zZN< zXSP2qE+{T`fw6%BH^mn6vSPHf_IBUI`0s9xzX2U=v?#Chwl=7gH?hxL?0@fVeOjCy zr!-*mqr(mlcGup3Tcp^%J#x3weqD;c<=)oX#KN$96C2wPCMLl`V?7<4Q0iA|y-BYn zKk57K&F3;fI}+q2dpXpF&Rc_~FI@)g;+y$1e1TicN&Vd3(T}6{xF?o$0y~z&MLrz% z@<?BUeTHr}n8v1K7JX`nht0lTyhPx+p039zkJ)8+ zy;%RW)D$k?)2cm{P5e5_Jt(6y(`JLuPMQnQe#Gs2L|gmuTh~>GIpA>4NI9o9rMriQ z?(Vz04e9xtr_*?N9mVw|bg%we+C9=kA18r+J675w0qEJ%470ES*`6;)_mWB(+vOA({OO%Z1i*IO9_c%b-2q$+dy}b`;+Rjn_VL zH6Agj4t|^W+wJJIyU^ag^X8fo+z%Y?LT8Q@iq6qz`q>&mN%m^YK2J*Ehz-cg(3 zIfV~+^)uSKyV5|xh&D~i`(7EtHo8+JR3w*!x!oY&ZMR}H(k2OLWj$~~gId*JE%A{OB2BB55NTl3n?%_yk`+SnBya(`~0R}9h;^E0*m zbYY7dVrge(?Rb^d33HJ3dxe`&nAuC&=JTM0)IkYPFDW))<+EPWQntG8t)0qRxb>oz zcM8`He+6u=Wt>fmvlq#MlB&rs2g-uAH*(3_>5UhzJ<^L#i1pSK-tlyEd`HZ(Vt=EU z?6glk>%JRb84FP#^w`tM!Gusxp_!|`yG!NC~B!B)D|!L!)gjaNzf@>jq)< z;kv*RvvvchD-Kh^GVebl2JU5G^`l&)d{Z#h5;%<54bBKFa%|XcV9K}^{OU$lG*zlzl<65ZFkp&tJc=7tZDrR+}DDn4nQXs5ys+Kvh2Mqi+67UN#^oR z5JUami2XH|RI*VZJm6W(&Fc-(sY z<1wY>=F^dp?2)nF{wCk2JcgNX0f?2>Phz)+yj)U`H$8Bd%=AB>>F;r{=Nc|fDUqv`x*$j*d z2R1h`ccJlWzG`*IRE`0De9@YUpuOLVBn>R`d-H)oeEux>GP}^me)Up!G0OE4+8C`(zx7@cw>yD$zQNT zS>C%Gx%?8j0ot(L=# zPnA$K8W#F40Mi;_RE)=h4|6X-zr?H`@jm@`m<4g?GX(BH<;u_g(E}{4Ix2SBa(j-! zM|5gG(}j6EbG%$m;o1Kz#NH^@(?T^97F?NQ<~9#6Wx*n>0iNJ=`LbLbk28$^)8WgA zjK|%MWt9?x)-fg8yIvSX8}znvu9oPO0Tn`3eZPopX)*k6yBaYNqQxU=D&2O^NCo^+ zpjZWTI$i5!*{Og3E8I@}7I1BvQFbP???K6lN#wEBpb;?Czy-JUtJ z0mh9xDsE?O?=S!{SC9(`$#vLyI#C~L47WaOn6WE+{rm6--O*$)TmTT!ht2D?&6mFX zlu=lnjAaF}yjXKl4QzBr-zkWd zxs%F{+Da`aBJ0wnBtTaa+adg>}w~_JOE>b`J-c@aZ~ouqnWSYbS`bSAOF5DEv%<* zoBN)XKVv|!Y&17)Dt**IO7aAJ%CRG%hX-zV^+Sd?)>ie|=an1p_rA*WNPv?G&C>d5` zNqt4jmuW*DBboxYSSrL$7bmJv~nuiVb z*@Y+InSP3bJTJZwcQnG1q|9qQNzNuVQOM#!gGz(8VBV_K=X<>AVxzp=5cN-T`VUc5 zwPLB#d*y>hEE4BG-O~E|C_P`SVJohoRmK4GnjPdK!4jmZDtUsikYC!PO3Ukt+fvN- z5l!@|y*w4|mYj%`A(pSAb9|PV!abmhS-Oa?>S}Ayzo$f@j}vAf@S|k@s|ws2l5X(H zp!>7eyt`f0WGv>-E6wG(YrAt5XpN-Pui_1xF5(ItraAhnLyPFgOkPzzlMRK$yf`jF zV&0Ne_E{7&t?sFHs;{4YuxP@=V~o<**YA(Q-kvtHIYo~+0bLqs`?c1-HTtA8r^z`X zGUHE*3o7e|k@msgwQH(d#}FE}1Rx%=-sy6jS?|EEjW#>J>eSBuSzdL(0voN=lr;o? zUQ0=U_;L}t6Lm+~aLS5-bDysE+Vp%WbnYTL7H9f(F9uSDQyKu6ChE5~{LUG$d|GZ* zIjf5!R3VE+j}3K3{aD>qvsZp+pXj}2zqtJEcI-#y<*K=s_}vICkvEbA$ItIrhD-TA z%<|&&IUvl35R?5WP7Ta9%PLrsr|@ivob-nMC%8QusZ&NIr*XEjJ71IRGy`!3~ z=FuBDhtZ-VXfE+Mt87#Ld~f#qmphJtS~Rl{7SqOLmoxZ73^_`*jIXG7cpDwHvxx`O zfVZnvuxdL{`$+RdpQ|gsPgO>%r(`iA^>`6R+gCwQY()KouK&~V3_s=U&!5+_!)&kS z23F7DDa~ZztG?Regl_k=tFI6`bHUEwJ-cbP%(>822vrOf_zpKzfnm1mV=)+_@|$jg znx+CcuZ9qNLe2$O&2OBVy%P&3&fduPiHV(uv_vZnAnfj1t|R#FS9$G9J&@^oO`{T4 zv0Te^CnglqvSWj=@f6jpe!0Bv$}j?jwzHJYI*SJE$Ep6UK$(=M7DD9SX&-IpKg9z+ z^!10|E&ZNGykCKv)xZNd<0WgJ10gBOeA>7(z*VoH-^aZqZytQ>ARwTK-XU8E!S8oL zAF4nVn#b`P;GfE2fqF#)MqtRh_RINhPh9yFlKAbvlr}S*XxB39AQ&XQf}Bb-k^b?6 zdjh8@i<-MSPFf9}-9$_ga)|Qxbe4yOI6O6MHBlbvOBvqp0Dl(hkr+{KRi#Bgf1LDz zJk|{ptwG()UmfW=2fn_5;x$fJm-aw?8-jrm*HJ<-P+1ie6?qx;fs51ayb1U;aL(P= ztt;?<$@3$CQ5y?5J*9vTt4T_x>vO7CgXlLU&DSqZei84k4tT}N`|=#C*HoIBP+v=5 z1*YU?We7FMp1@gpj{N;X*aSITx3jpP!V`k3TzrfRnm>!_BsuEc+NrgZ&1o>s8)|Y~V})F z(vJrQ`F6~_jV@EwbRaLh=fOG*Xf;h7Kl?zt2-ui2p78+Mib@^luOv;}RZpjT)_7zM zWeu&|l%!bfyk+V7-8_)4hybP9o&%MomnbdQJg0hI)wy1+tF9q)Kd*`*(8eY(-=3n( zt>_+l`}4=oY&xalNJcSLTx~pMhucrOt72nWoH^e}wjZ2fHn>b<Hty9Q537rA#8bHcBk1Ss~zs zJC~2$nivgJ zqDG)eot)CE&4W;T(%HbfM4oYKV!@lb!tZd&s25a1EMm&==b9PL&1K?`3MCQk@xe?Z z`39p1E;XM=%FHoyd=HYU|310fte6xn%e}0$4T0l++UPy zKY#vAMzWwd)~khG>To}cbdI5Nv6#viz2Ngi8E+@%#(~&-vl?5+o&npW_k2ltE{@E0 z`nskXxalm70Xq{7T*hf)_?z8VTda2`74Dw?h^gknO;bk8q>55wod4>fX%5 z_+1aRCYGgWA7)A{uq`t!6o9`%OrRpmyqE*(%B;N|nS&L>-7O)Mfxv}l&~cJsen+@c zj9MBXujJQfg@bWWHGbF;jqeTEtdUogrxdAbx)2H9uBS15aU6FppoIOfu!{ucK3KE* z1pQ8^b@0EML_Xk_YQi}s3N`n9o@XJJt8G3h?39wpA?u?bS(=(T+K0 z9yMOeIivKi?L2-d&j4)N^IkY2bkF7r`ktzMN3*qk4?-=@D&Jwc0ugn8oYXVJVwO&% zWmHhNo9lUiQfuT9Rg8wQU*F<|HTJ+Akv9o)O)w-M-m!@jEM zZS(R+3R`SK!`7)dr zop0s4;wDj4R4?k2x%huEKg=sxjf!8n8QZ-okVD%x`ORN?l^Q^ ziM&^Xfql;xyuva&SSN836|Ii&VwRyUNwtSqX5ECC$v0@c{Y-RxkRNzs;Cw6G%v7*O z*-JH6hhf75u2ZPF91oupwi+e$e{u3eKGlG$1e%Qo^`?*)GwJ0qX)hQ4rfMqNQb{uI zX!Y=NYq+ei9IArwo$+|#o!U=cH}*qB1KGC?0t#Y)=Lrr;&`4bfI$cEX<)oMOm3SVi zSAGEDIV-Vfb`)<4P}S+Uv>btN(|$UU7NG5Kz7eBatW7L;;g@Ml(hF@0vkNC+YLU#*ST$xcu9ItiYcwCKTMAOw8@q8ZYGq13C zXm9akoGO-O6O?%{<0tl)d~#POL_TCy@MVc$x1Ne`$4tg{>-Nqc>mKR%1X^jH{7F=o z`=L%`lBMSrLU+cFWDLd_BEqO`T^oncFGRr`J^udtY?UpLw#nw>sf!(aZu7HOV2i5%*qlOY2zCjIsxs&0~B&4#|%agIPk_RrQJb<1F;V;@3G)q?q*wr%0wvr&}?_WOf-;SFk6Iae@$(zwHsZT=Rm`w+(j9ru8!cm;bSzeA&B9R=-`sC2Cm!lsIbGCpY0N zs@*Mox&;ztZ6U*gny9XEXLR_i*#$uB^ScE5fcT)3Q#VEL){dHk@fXyeX}5ZXRPJ>= zuG)iD)Nxafe%hpt_&J>Jj2`p-FyOmMSGxB_cp=aLg$i1oRk_v2#oqmKsXh6Dlytkh zIiF9#Jy&7BKaKD1JyFh$NM0tp4jaqn_u<|8GVtF|z7TX{QBLbYHRam*81 zo7&puJdj}r<4+S^KJ4*c${2hk^6FY9b$Q-OcQ-C6Qy$JgK$6q$Oc${BBXt?x=X2dP zNTjDkITVNt94Mog#d}R_fyh27fLC2doh0Y$8unO(^#ZTtzLCO=-?iCr0qcFux~X5` ziS(P9<+6b~iS+Z43pIbWaN96!_zJViy9TZ6Y0Pf?V~6y$rtIWj5!WI*2jnip!yd~F z^vMBLhSt^p*hiHgUO$>NRDKb)`-LVlQl^X^D@8~Dtm|7gIruAW5THFWWqoze1s`o{ z-j=kZnB^~zTq+(>ADId>kSwcdLJ7T`Io8l*Ax+MUK{zrnKxN*3<`Z4&b$}3uSEk zew4{9_Y8{o+L_9b$jH$aN#siw7VFq3w}YSl1($<@E`{u@J{c(kP4_XE#xj|1* zXurnr{!FYHdi%_B{{kIc+<6N E08=aAq5uE@ literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/welcome/resources/mail.png b/keycloak-jboss/theme/mosip/welcome/resources/mail.png new file mode 100644 index 0000000000000000000000000000000000000000..3a63e7b855b579a170e559a232e386d561542cf3 GIT binary patch literal 1037 zcmV+o1oHcdP)T2Cy$)U9 zZdp7YFBPaeaOG=McRPR&D4pN~sH2jds;Vf5N+!aSigM17{Pc&g>$$jn=_QqXlS(GS zcvmB*wkQ;hVaoLV&NUwUrW?-X9x1zcq;2I|9QXq1!My$u{8tf9f$bh&qz3~42YtpV zzewvPg4y;?5sJn*0cP3qB1~8-5iA^y!MH{jJ(Pn!!^Ykzag3MhL$oh|Mf+h<_pTME zC*?SG--n&_Il_?`UiUsPs)oILe1S##Au$Eh?pR_H&js{WchR%~%a#|$b^2Z?B3O@1 z1VJUmY5{tyn^;y0S^bP_G%VXEtg(T%y7XYOS|JP?1q&`5jlsB1!?NZ5FFxt5?&R}e z0!laBnprAJ#X^|0N;HXu>{Qr3f!?}buy){}&!D%u;U%c>wqHhsy4SI~r&U_;r01eFv_S|!Fi8*(omy5Uw#54EsT(;tjLZ*@P&DJ2w*L2unB z_Nb1=8kpa7LrTb|tiS+ZP+kv%MuFODKFhl$`_aAqBp07%S6!e92ivjE1{fw35b&wA z^YAi#pj0fxvi1dfWFpqs#@=aOykmUw2P3T1n;(^9s$Z7zT)b=^EZ|dE7?WdCEg^dM z?$b`r-Ywb>i9R)n|5j;rvnZ?ic)2WMQZ2#!sGQgmX3egwybDERm@&KHq|ZU>sm2LK zTA%U;1_0`25eymyu_a{c9pe+JluxQ9SQwLMAwe49e^Oxw=xw zQ%v>CAQcPn-r{C?XW2d>p7D~4gfYWXUXUG2?sq1wl2ugF#XwsfmbJ>fLFFBc@y`6F zn|KsUj@oKI=11iz&wE9Yipk#ThFdYImf+*&5jGFb5RBa1NxSjRXL)g{pkTKT(#&oI zuW#VH4CmC7iViG!7o~h*p&pli$BHE$!5+bi73}Jodw(MZ32SCm#cw};0RV)2iZfu_ zgkP`9x@Ong0qm4mCVnm1w+0x;rT~~q1ZpJlo(B`9^k&W<$SS3jt?36p00000NkvXX Hu0mjf{@~(i literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/welcome/resources/user.png b/keycloak-jboss/theme/mosip/welcome/resources/user.png new file mode 100644 index 0000000000000000000000000000000000000000..0d61bb470927ad8c25aaed14dbd338b6f4a865fe GIT binary patch literal 2423 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 literal 0 HcmV?d00001 diff --git a/keycloak-jboss/theme/mosip/welcome/theme.properties b/keycloak-jboss/theme/mosip/welcome/theme.properties new file mode 100644 index 00000000..154ff327 --- /dev/null +++ b/keycloak-jboss/theme/mosip/welcome/theme.properties @@ -0,0 +1,6 @@ +import=common/keycloak + +styles=node_modules/patternfly/dist/css/patternfly.css node_modules/patternfly/dist/css/patternfly-additions.css css/welcome.css + +documentationUrl=https://www.keycloak.org/documentation.html +displayCommunityLinks=true \ No newline at end of file From fea18cbb3c6e6181bb61c386493e54da504b77c3 Mon Sep 17 00:00:00 2001 From: ckm007 Date: Sat, 16 Jul 2022 18:29:32 +0530 Subject: [PATCH 11/21] [MOSIP-22398] updated push triger --- .github/workflows/push_trigger.yml | 51 +++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/.github/workflows/push_trigger.yml b/.github/workflows/push_trigger.yml index 3e2c2ae6..579dae81 100644 --- a/.github/workflows/push_trigger.yml +++ b/.github/workflows/push_trigger.yml @@ -9,15 +9,16 @@ on: - 1.1.* - 1.2.* - release* + - MOSIP* jobs: - build-keycloak: + build-jboss-keycloak: runs-on: ubuntu-latest env: NAMESPACE: ${{ secrets. dev_namespace_docker_hub }} SERVICE_NAME: mosip-keycloak - SERVICE_LOCATION: keycloak + SERVICE_LOCATION: keycloak-jboss # Steps represent a sequence of tasks that will be executed as part of the job steps: @@ -50,7 +51,7 @@ jobs: # Change all uppercase to lowercase IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - VERSION=$BRANCH_NAME + VERSION=9.0.0 echo "push version $VERSION" echo IMAGE_ID=$IMAGE_ID echo VERSION=$VERSION @@ -96,7 +97,49 @@ jobs: # Change all uppercase to lowercase IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - VERSION=$BRANCH_NAME + VERSION=9.0.0 + echo "push version $VERSION" + echo IMAGE_ID=$IMAGE_ID + echo VERSION=$VERSION + docker tag $SERVICE_NAME $IMAGE_ID:$VERSION + docker push $IMAGE_ID:$VERSION + + build-artemis-keycloak: + + runs-on: ubuntu-latest + env: + NAMESPACE: ${{ secrets. dev_namespace_docker_hub }} + SERVICE_NAME: mosip-keycloak + SERVICE_LOCATION: keycloak-artemis + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + + - name: Setup branch and env + run: | + # Strip git ref prefix from version + echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV + echo "GPG_TTY=$(tty)" >> $GITHUB_ENV + - name: setup environment + run: | + # Strip git ref prefix from version + echo "BRANCH_NAME=$(echo ${{ github.ref }} | sed -e 's,.*/\(.*\),\1,')" >> $GITHUB_ENV + - name: Build image + run: | + cd "./${{env.SERVICE_LOCATION}}" + docker build . --file Dockerfile --tag ${{ env.SERVICE_NAME }} + - name: Log into registry + run: echo "${{ secrets.release_docker_hub }}" | docker login -u ${{ secrets.actor_docker_hub }} --password-stdin + + - name: Push image + run: | + IMAGE_ID=$NAMESPACE/$SERVICE_NAME + # Change all uppercase to lowercase + IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') + VERSION=16.1.1-debian-10-r85 echo "push version $VERSION" echo IMAGE_ID=$IMAGE_ID echo VERSION=$VERSION From da52aa3a55573416e94371253284993354a93eca Mon Sep 17 00:00:00 2001 From: syed-salman-technoforte Date: Mon, 18 Jul 2022 20:08:45 +0530 Subject: [PATCH 12/21] [ DSD-1246 ] added method to create mappers for keycloak client --- keycloak-init/keycloak_init.py | 42 +++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 165a1818..3f14806e 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -10,7 +10,7 @@ import yaml import traceback from keycloak import KeycloakAdmin -from keycloak.exceptions import raise_error_from_response, KeycloakError +from keycloak.exceptions import raise_error_from_response, KeycloakError, KeycloakGetError from keycloak.connection import ConnectionManager from keycloak.urls_patterns import URL_ADMIN_USER_REALM_ROLES @@ -95,6 +95,40 @@ def create_client(self, realm, client, secret, sa_roles=None): self.keycloak_admin.realm_name = 'master' # restore + def create_mapper(self, realm, client, mapper, skip_exists=False): + self.keycloak_admin.realm_name = realm # work around because otherwise client was getting created in master + client_id = self.keycloak_admin.get_client_id(client) + mapper_url = 'admin/realms/'+realm+'/clients/'+client_id+'/protocol-mappers/models' + #print(mapper_url) + payload = { + "protocol":"openid-connect", + "config": { + "id.token.claim":"true", + "access.token.claim":"true", + "userinfo.token.claim":"true", + "multivalued":"", + "aggregate.attrs":"", + "user.attribute":mapper['mapper_user_attribute'], + "claim.name":mapper['token_claim_name'], + "jsonType.label":"String" + }, + "name":mapper['mapper_name'], + "protocolMapper":"oidc-usermodel-attribute-mapper" + } + try: + print('\tCreating Mapper %s' % mapper['mapper_name']) + data_raw = self.keycloak_admin.connection.raw_post(mapper_url, data=json.dumps(payload)) + #print(data_raw) + return raise_error_from_response(data_raw, KeycloakGetError, skip_exists=skip_exists) + + except KeycloakError as e: + if e.response_code == 409: + print('\tMapper %s Exists already exists; SKIPPING;' % mapper['mapper_name']) + + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + def create_user(self, realm, uname, email, fname, lname, password, temp_flag): self.keycloak_admin.realm_name = realm payload = { @@ -185,6 +219,12 @@ def main(): print('Secret environment variable %s not found, generating' % secret_env_name) secret = secrets.token_urlsafe(16) r = ks.create_client(realm, client['name'], secret, client['saroles']) + + if 'mappers' in client: + mappers = client['mappers'] + print("Creating mappers for %s client " % client['name']) + for mapper in mappers: + r = ks.create_mapper(realm, client['name'], mapper) users = values[realm]['users'] for user in users: From 6afd47da145065d6bc0bb8e202a008b78617abdd Mon Sep 17 00:00:00 2001 From: syed-salman-technoforte Date: Mon, 18 Jul 2022 20:20:57 +0530 Subject: [PATCH 13/21] [ DSD-1246 ] removed commented print statement --- keycloak-init/keycloak_init.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 3f14806e..d531a6ff 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -99,7 +99,6 @@ def create_mapper(self, realm, client, mapper, skip_exists=False): self.keycloak_admin.realm_name = realm # work around because otherwise client was getting created in master client_id = self.keycloak_admin.get_client_id(client) mapper_url = 'admin/realms/'+realm+'/clients/'+client_id+'/protocol-mappers/models' - #print(mapper_url) payload = { "protocol":"openid-connect", "config": { @@ -118,7 +117,6 @@ def create_mapper(self, realm, client, mapper, skip_exists=False): try: print('\tCreating Mapper %s' % mapper['mapper_name']) data_raw = self.keycloak_admin.connection.raw_post(mapper_url, data=json.dumps(payload)) - #print(data_raw) return raise_error_from_response(data_raw, KeycloakGetError, skip_exists=skip_exists) except KeycloakError as e: From 169add31b5d9d7d3b87c9b83695b7092a3a6faf1 Mon Sep 17 00:00:00 2001 From: Keshav Mishra Date: Tue, 19 Jul 2022 08:54:31 +0530 Subject: [PATCH 14/21] [MOSIP-20028] added action for tagging --- .github/workflows/tag.yaml | 43 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/tag.yaml diff --git a/.github/workflows/tag.yaml b/.github/workflows/tag.yaml new file mode 100644 index 00000000..e9bba0e6 --- /dev/null +++ b/.github/workflows/tag.yaml @@ -0,0 +1,43 @@ +name: Tagging of repos + +env: + tag: v1.2.3 + +on: + workflow_dispatch: + inputs: + tag: + description: 'Tag to be published' + required: true + default: 'v1.2.3' + type: string + body: + description: 'Release body message' + required: true + default: 'Changes in this Release' + type: string + pre-release: + description: 'Pre-release? True/False' + required: true + default: False + type: string + +jobs: + build: + name: Create Release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Create Release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ github.event.inputs.tag }} + release_name: ${{ github.event.inputs.tag }} + body: | + ${{ github.event.inputs.body }} + draft: false + prerelease: ${{fromJSON(github.event.inputs.pre-release)}} From 94898ff15a2b546422ffeef67f032ea63863da99 Mon Sep 17 00:00:00 2001 From: syed-salman-technoforte Date: Fri, 22 Jul 2022 21:19:32 +0530 Subject: [PATCH 15/21] [ MOSIP-23097 ] added methods in keycloak_init.py to delete-realms, delete-clients, delete-realm-roles, remove-service-account-roles --- keycloak-init/keycloak_init.py | 154 ++++++++++++++++++++++++++++----- 1 file changed, 131 insertions(+), 23 deletions(-) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index d531a6ff..42782332 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -38,22 +38,95 @@ def create_realm(self, realm, frontend_url=''): self.keycloak_admin.create_realm(payload, skip_exists=False) except KeycloakError as e: if e.response_code == 409: - print('Exists, updating %s' % realm) + print('\tExists, updating %s' % realm) self.keycloak_admin.update_realm(realm, payload) except: raise return 0 + def delete_realm(self, realm, skip_exists=False): + self.keycloak_admin.realm_name = realm # work around because otherwise client was getting created in master + url = 'admin/realms/'+realm + payload = { + } + try: + print('\tDeleting realm %s' % realm) + data_raw = self.keycloak_admin.connection.raw_delete(url, data=json.dumps(payload)) + return raise_error_from_response(data_raw, KeycloakGetError, skip_exists=skip_exists) + + except KeycloakError as e: + if e.response_code == 404: + print('\tRealm %s does not exists; SKIPPING;' % realm) + + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + def delete_client(self, realm, client, skip_exists=False): + self.keycloak_admin.realm_name = realm # work around because otherwise client was getting created in master + try: + print('\tDeleting client %s' % client) + client_id = self.keycloak_admin.get_client_id(client) + data_raw = self.keycloak_admin.delete_client(client_id) + + except KeycloakError as e: + if e.response_code == 404: + print('\tClient %s does not exists; SKIPPING;' % client) + + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + # del_sa_roles: remove roles from service account user + def remove_sa_roles(self, realm, client, del_sa_roles=None): + self.keycloak_admin.realm_name = realm + try: + roles = [] # Get full role reprentation of all roles + for role in del_sa_roles: + print("\t\tRole : %s" % role) + role_rep = self.keycloak_admin.get_realm_role(role) + roles.append(role_rep) + client_id = self.keycloak_admin.get_client_id(client) + user = self.keycloak_admin.get_client_service_account_user(client_id) + params_path = {"realm-name": self.keycloak_admin.realm_name, "id": user["id"]} + self.keycloak_admin.raw_delete(URL_ADMIN_USER_REALM_ROLES.format(**params_path), data=json.dumps(roles)) + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + self.keycloak_admin.realm_name = 'master' # restore + + def delete_realm_role(self, realm, role, skip_exists=False): + self.keycloak_admin.realm_name = realm + try: + print("\tRole : %s" % role) + role_rep = self.keycloak_admin.get_realm_role(role) + URL_ADMIN_REALM_ROLE = 'admin/realms/{realm-name}/roles-by-id/{id}' + payload = { + } + params_path = {"realm-name": self.keycloak_admin.realm_name, "id": role_rep["id"]} + data_raw = self.keycloak_admin.raw_delete(URL_ADMIN_REALM_ROLE.format(**params_path), data=json.dumps(payload)) + return raise_error_from_response(data_raw, KeycloakGetError, skip_exists=skip_exists) + + except KeycloakError as e: + if e.response_code == 404: + print('\tRole %s does not exists; SKIPPING;' % role) + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + + self.keycloak_admin.realm_name = 'master' # restore + def create_role(self, realm, role): - print('Creating role %s for realm %s' % (role, realm)) + print('\tCreating role %s for realm %s' % (role, realm)) self.keycloak_admin.realm_name = realm # work around because otherwise role was getting created in master self.keycloak_admin.create_realm_role({'name' : role, 'clientRole' : False}, skip_exists=True) self.keycloak_admin.realm_name = 'master' # restore return 0 # sa_roles: service account roles - def create_client(self, realm, client, secret, sa_roles=None): + def create_client(self, realm, client, secret, sa_roles=None): self.keycloak_admin.realm_name = realm # work around because otherwise client was getting created in master payload = { "clientId" : client, @@ -65,11 +138,11 @@ def create_client(self, realm, client, secret, sa_roles=None): "authorizationServicesEnabled": True } try: - print('Creating client %s' % client) + print('\tCreating client %s' % client) self.keycloak_admin.create_client(payload, skip_exists=False) # If exists, update. So don't skip except KeycloakError as e: if e.response_code == 409: - print('Exists, updating %s' % client) + print('\tExists, updating %s' % client) client_id = self.keycloak_admin.get_client_id(client) self.keycloak_admin.update_client(client_id, payload) except: @@ -164,23 +237,23 @@ def assign_user_roles(self, realm, username, roles): raise self.keycloak_admin.realm_name = 'master' # restore - -def args_parse(): + +def args_parse(): parser = argparse.ArgumentParser() - parser.add_argument('server_url', type=str, help='Full url to point to the server for auth: Eg. https://iam.xyz.com/auth/. Note: slash is important') + parser.add_argument('server_url', type=str, help='Full url to point to the server for auth: Eg. https://iam.xyz.com/auth/. Note: slash is important') parser.add_argument('user', type=str, help='Admin user') parser.add_argument('password', type=str, help='Admin password') parser.add_argument('input_yaml', type=str, help='File containing input for roles and clients in YAML format') parser.add_argument('--disable_ssl_verify', help='Disable ssl cert verification while connecting to server', action='store_true') parser.add_argument('--frontend_url', help='Frontend URL', dest='frontend_url', action='store', default='') - + args = parser.parse_args() return args def main(): args = args_parse() - server_url = args.server_url + server_url = args.server_url user = args.user password = args.password input_yaml = args.input_yaml @@ -191,40 +264,75 @@ def main(): fp = open(input_yaml, 'rt') values = yaml.load(fp, Loader=yaml.FullLoader) - - server_url = server_url + '/auth/' # Full url to access api + + server_url = server_url + '/auth/' # Full url to access api try: - print('Create realms ') print(server_url) ks = KeycloakSession('master', server_url, user, password, ssl_verify) for realm in values: + if realm == "del_realms": + print("Delete realms : ") + for r in values[realm]: + ks.delete_realm(r) + break + + print('Create realms :') + for realm in values: + if realm == "del_realms": + continue + print('\tCreate realms : %s' % realm) r = ks.create_realm(realm, args.frontend_url) # {realm : [role]} for realm in values: - print('Create roles for realm %s' % realm) - roles = values[realm]['roles'] + roles = [] + if 'roles' in values[realm]: + print('Create roles for realm %s' % realm) + roles = values[realm]['roles'] for role in roles: r = ks.create_role(realm, role) - # Expect secrets passed via env variables. - clients = values[realm]['clients'] + del_roles = [] + if 'del_roles' in values[realm]: + print('Delete roles for realm %s' % realm) + del_roles = values[realm]['del_roles'] + for role in del_roles: + r = ks.delete_realm_role(realm, role) + del_clients = [] + if 'del_clients' in values[realm]: + print("Deleting clients for realm %s" % realm) + del_clients = values[realm]['del_clients'] + for client in del_clients: + r = ks.delete_client(realm, client) + + # Expect secrets passed via env variables. + clients = [] + if 'clients' in values[realm]: + print('Create clients for realm %s' % realm) + clients = values[realm]['clients'] for client in clients: secret_env_name = '%s_secret' % client['name'] secret_env_name = secret_env_name.replace('-', '_') # Compatible with environment variables - secret = os.environ.get(secret_env_name) + secret = os.environ.get(secret_env_name) if secret is None: # Env variable not found - print('Secret environment variable %s not found, generating' % secret_env_name) + print('\tSecret environment variable %s not found, generating' % secret_env_name) secret = secrets.token_urlsafe(16) - r = ks.create_client(realm, client['name'], secret, client['saroles']) + + if 'saroles' in client: + r = ks.create_client(realm, client['name'], secret, client['saroles']) + + if 'del_saroles' in client: + print("\tRemoving roles from service account user for client %s" % client['name']) + r = ks.remove_sa_roles(realm, client['name'], client['del_saroles']) if 'mappers' in client: mappers = client['mappers'] - print("Creating mappers for %s client " % client['name']) + print("\tCreating mappers for %s client " % client['name']) for mapper in mappers: r = ks.create_mapper(realm, client['name'], mapper) - - users = values[realm]['users'] + users = [] + if 'users' in values[realm]: + users = values[realm]['users'] for user in users: print(f'''Creating user {user['username']}''') r = ks.create_user(realm, user['username'], user['email'], user['firstName'], user['lastName'], user['password'], user['temporary']) From 64be31ca845eb628fd65e60a0e9551a31b6c25a8 Mon Sep 17 00:00:00 2001 From: syed-salman-technoforte Date: Fri, 22 Jul 2022 21:52:17 +0530 Subject: [PATCH 16/21] [ MOSIP-23097 ] Beautified --- keycloak-init/keycloak_init.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 42782332..53899680 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -188,13 +188,13 @@ def create_mapper(self, realm, client, mapper, skip_exists=False): "protocolMapper":"oidc-usermodel-attribute-mapper" } try: - print('\tCreating Mapper %s' % mapper['mapper_name']) + print('\t\tCreating Mapper %s' % mapper['mapper_name']) data_raw = self.keycloak_admin.connection.raw_post(mapper_url, data=json.dumps(payload)) return raise_error_from_response(data_raw, KeycloakGetError, skip_exists=skip_exists) except KeycloakError as e: if e.response_code == 409: - print('\tMapper %s Exists already exists; SKIPPING;' % mapper['mapper_name']) + print('\t\tMapper %s Exists already exists; SKIPPING;' % mapper['mapper_name']) except: self.keycloak_admin.realm_name = 'master' # restore From fd5600e8dc99df69aca9f3686ccc5336e035d4a0 Mon Sep 17 00:00:00 2001 From: syed-salman-technoforte Date: Thu, 4 Aug 2022 10:46:03 +0530 Subject: [PATCH 17/21] [ MOSIP-23206 ] added method to assign client roles for service account client user --- keycloak-init/keycloak_init.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index 53899680..a25eb24e 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -238,6 +238,26 @@ def assign_user_roles(self, realm, username, roles): self.keycloak_admin.realm_name = 'master' # restore + def assign_sa_client_roles(self, realm, client, sa_client, sa_client_roles=None): + self.keycloak_admin.realm_name = realm + try: + client_id = self.keycloak_admin.get_client_id(client) + user = self.keycloak_admin.get_client_service_account_user(client_id) + sa_client_id = self.keycloak_admin.get_client_id(sa_client) + sa_client_role_list = [] # Get full role representation of all roles + + for sa_client_role in sa_client_roles: + print('\t\t\tAdding Client Role :: "%s" to =====> client user :: "%s"' %(sa_client_role, user['username'])) + sa_client_role_list.append(self.keycloak_admin.get_client_role(sa_client_id, sa_client_role)) + + URL = 'admin/realms/{realm-name}/users/{user}/role-mappings/clients/{sa-client-id}' + params_path = {"realm-name": self.keycloak_admin.realm_name, "user": user["id"], "sa-client-id": sa_client_id} + data_raw = self.keycloak_admin.connection.raw_post(URL.format(**params_path), data=json.dumps(sa_client_role_list)) + return raise_error_from_response(data_raw, KeycloakGetError) + except: + self.keycloak_admin.realm_name = 'master' # restore + raise + def args_parse(): parser = argparse.ArgumentParser() parser.add_argument('server_url', type=str, help='Full url to point to the server for auth: Eg. https://iam.xyz.com/auth/. Note: slash is important') @@ -330,6 +350,16 @@ def main(): print("\tCreating mappers for %s client " % client['name']) for mapper in mappers: r = ks.create_mapper(realm, client['name'], mapper) + + if 'sa_client_roles' in client: + sa_client_roles = client['sa_client_roles'] + print('\tAssigning service account client roles for %s client ' % client['name']) + for cid_roles in sa_client_roles: + sa_client = list(cid_roles)[0] + sa_client_role_list = cid_roles[sa_client] + print('\t\tService account client name :: "%s"' % list(cid_roles)[0]) + r = ks.assign_sa_client_roles(realm, client['name'], sa_client, sa_client_role_list) + users = [] if 'users' in values[realm]: users = values[realm]['users'] From a4edb4c2a88951f8fc1b5ee0785355a63239f62b Mon Sep 17 00:00:00 2001 From: Keshav Mishra Date: Tue, 23 Aug 2022 18:54:50 +0530 Subject: [PATCH 18/21] Update push_trigger.yml --- .github/workflows/push_trigger.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/push_trigger.yml b/.github/workflows/push_trigger.yml index 579dae81..f0db66b7 100644 --- a/.github/workflows/push_trigger.yml +++ b/.github/workflows/push_trigger.yml @@ -97,7 +97,7 @@ jobs: # Change all uppercase to lowercase IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]') - VERSION=9.0.0 + VERSION=$BRANCH_NAME echo "push version $VERSION" echo IMAGE_ID=$IMAGE_ID echo VERSION=$VERSION From 04a43992a7f1954c93da7ded4a9cb801b9b7d1e0 Mon Sep 17 00:00:00 2001 From: Puneet Joshi Date: Wed, 24 Aug 2022 09:10:24 +0530 Subject: [PATCH 19/21] [MOSIP-23664] Exit value bug fixed. Example input.yaml added. --- keycloak-init/README.md | 2 +- keycloak-init/input.yaml | 364 +++++++++++++++++++++++++++++++++ keycloak-init/keycloak_init.py | 25 +-- 3 files changed, 376 insertions(+), 15 deletions(-) create mode 100644 keycloak-init/input.yaml diff --git a/keycloak-init/README.md b/keycloak-init/README.md index 794ce529..805a5599 100644 --- a/keycloak-init/README.md +++ b/keycloak-init/README.md @@ -6,7 +6,7 @@ After Keycloak is installed, it needs to be populated with base data that is nee ## Prerequisites * Keycloak server must be running and available via a url like `https://iam.xyz.net`. -* Updated `input.yaml` file +* Updated `input.yaml` file (an example is given here). * Install utilities * Install python3 virtual environment and activate the same as per the link https://packaging.python.org/guides/installing-using-pip-and-virtual-environments/ diff --git a/keycloak-init/input.yaml b/keycloak-init/input.yaml new file mode 100644 index 00000000..32e4d674 --- /dev/null +++ b/keycloak-init/input.yaml @@ -0,0 +1,364 @@ +mosip: # realm + roles: + - Default + - ABIS_PARTNER + - SDK_PARTNER + - AUTH + - AUTH_PARTNER + - BIOMETRIC_READ + - CENTRAL_ADMIN + - CENTRAL_APPROVER + - CREATE_SHARE + - CREDENTIAL_ISSUANCE + - CREDENTIAL_PARTNER + - CREDENTIAL_REQUEST + - DATA_READ + - DEVICE_PROVIDER + - DOCUMENT_READ + - FTM_PROVIDER + - GLOBAL_ADMIN + - ID_AUTHENTICATION + - ID_REPOSITORY + - INDIVIDUAL + - KEY_MAKER + - MASTERDATA_ADMIN + - METADATA_READ + - MISP + - MISP_PARTNER + - offline_access + - ONLINE_VERIFICATION_PARTNER + - PARTNER + - PARTNER_ADMIN + - PARTNERMANAGER + - PMS_ADMIN + - PMS_USER + - POLICYMANAGER + - PREREG + - PRE_REGISTRATION + - PRE_REGISTRATION_ADMIN + - PRINT_PARTNER + - PUBLISH_ACTIVATE_ID_ALL_INDIVIDUAL + - PUBLISH_ANONYMOUS_PROFILE_GENERAL + - PUBLISH_APIKEY_APPROVED_GENERAL + - PUBLISH_APIKEY_UPDATED_GENERAL + - PUBLISH_AUTHENTICATION_TRANSACTION_STATUS_GENERAL + - PUBLISH_AUTH_TYPE_STATUS_UPDATE_ACK_GENERAL + - PUBLISH_AUTH_TYPE_STATUS_UPDATE_ALL_INDIVIDUAL + - PUBLISH_CA_CERTIFICATE_UPLOADED_GENERAL + - PUBLISH_CREDENTIAL_ISSUED_ALL_INDIVIDUAL + - PUBLISH_CREDENTIAL_STATUS_UPDATE_GENERAL + - PUBLISH_DEACTIVATE_ID_ALL_INDIVIDUAL + - PUBLISH_IDA_FRAUD_ANALYTICS_GENERAL + - PUBLISH_MASTERDATA_IDAUTHENTICATION_TEMPLATES_GENERAL + - PUBLISH_MASTERDATA_TITLES_GENERAL + - PUBLISH_MISP_LICENSE_GENERATED_GENERAL + - PUBLISH_MISP_LICENSE_UPDATED_GENERAL + - PUBLISH_MOSIP_HOTLIST_GENERAL + - PUBLISH_PARTNER_UPDATED_GENERAL + - PUBLISH_POLICY_UPDATED_GENERAL + - PUBLISH_REGISTRATION_PROCESSOR_WORKFLOW_COMPLETED_EVENT_GENERAL + - PUBLISH_REGISTRATION_PROCESSOR_WORKFLOW_PAUSED_FOR_ADDITIONAL_INFO_EVENT_GENERAL + - PUBLISH_REMOVE_ID_ALL_INDIVIDUAL + - PUBLISH_VID_CRED_STATUS_UPDATE_GENERAL + - REGISTRATION_ADMIN + - REGISTRATION_OFFICER + - REGISTRATION_OPERATOR + - REGISTRATION_PROCESSOR + - REGISTRATION_SUPERVISOR + - RESIDENT + - SUBSCRIBE_ACTIVATE_ID_INDIVIDUAL + - SUBSCRIBE_APIKEY_APPROVED_GENERAL + - SUBSCRIBE_APIKEY_UPDATED_GENERAL + - SUBSCRIBE_AUTH_TYPE_STATUS_UPDATE_ACK_GENERAL + - SUBSCRIBE_AUTH_TYPE_STATUS_UPDATE_INDIVIDUAL + - SUBSCRIBE_CA_CERTIFICATE_UPLOADED_GENERAL + - SUBSCRIBE_CREDENTIAL_ISSUED_INDIVIDUAL + - SUBSCRIBE_CREDENTIAL_STATUS_UPDATE_GENERAL + - SUBSCRIBE_DEACTIVATE_ID_INDIVIDUAL + - SUBSCRIBE_MASTERDATA_IDAUTHENTICATION_TEMPLATES_GENERAL + - SUBSCRIBE_MASTERDATA_TITLES_GENERAL + - SUBSCRIBE_MISP_LICENSE_GENERATED_GENERAL + - SUBSCRIBE_MISP_LICENSE_UPDATED_GENERAL + - SUBSCRIBE_MOSIP_HOTLIST_GENERAL + - SUBSCRIBE_PARTNER_UPDATED_GENERAL + - SUBSCRIBE_POLICY_UPDATED_GENERAL + - SUBSCRIBE_REMOVE_ID_INDIVIDUAL + - SUBSCRIBE_VID_CRED_STATUS_UPDATE_GENERAL + - uma_authorization + - ZONAL_ADMIN + - ZONAL_APPROVER + - HOTLIST_ADMIN + - SUBSCRIBE_REGISTRATION_PROCESSOR_WORKFLOW_COMPLETED_EVENT_GENERAL + - SUBSCRIBE_REGISTRATION_PROCESSOR_WORKFLOW_PAUSED_FOR_ADDITIONAL_INFO_EVENT_GENERAL + clients: + - name: mosip-abis-client + mappers: [] + saroles: [] + + - name: mosip-admin-client + mappers: [] + saroles: + - MASTERDATA_ADMIN + - GLOBAL_ADMIN + - PUBLISH_MASTERDATA_IDAUTHENTICATION_TEMPLATES_GENERAL + - offline_access + - PUBLISH_MOSIP_HOTLIST_GENERAL + - uma_authorization + - PUBLISH_MASTERDATA_TITLES_GENERAL + + - name: mosip-admin-services-client + mappers: [] + saroles: [] + + - name: mosip-auth-client + mappers: [] + saroles: + - AUTH + + - name: mosip-crereq-client + mappers: [] + saroles: + - CREDENTIAL_ISSUANCE + - CREDENTIAL_REQUEST + - SUBSCRIBE_CREDENTIAL_STATUS_UPDATE_GENERAL + - offline_access + - uma_authorization + + - name: mosip-creser-client + mappers: [] + saroles: + - CREDENTIAL_ISSUANCE + - REGISTRATION_PROCESSOR + - POLICYMANAGER + - CREATE_SHARE + - offline_access + - PUBLISH_CREDENTIAL_ISSUED_ALL_INDIVIDUAL + - uma_authorization + - name: mosip-creser-idpass-client + mappers: [] + saroles: + - REGISTRATION_PROCESSOR + - DATA_READ + - DOCUMENT_READ + - BIOMETRIC_READ + - METADATA_READ + - CREATE_SHARE + - CREDENTIAL_REQUEST + + - name: mosip-datsha-client + mappers: [] + saroles: + - CREATE_SHARE + - REGISTRATION_PROCESSOR + - POLICYMANAGER + + - name: mosip-ida-client + mappers: [] + saroles: + - CREDENTIAL_REQUEST + - GLOBAL_ADMIN + - ID_AUTHENTICATION + - PARTNERMANAGER # Added only for cert upload using postman during install. Not required otherwise. + + - name: mosip-misp-client + mappers: [] + saroles: [] + + - name: mosip-partner-client + mappers: + - mapper_name: phoneNumber + mapper_user_attribute: phoneNumber + token_claim_name: phoneNumber + - mapper_name: organizationName + mapper_user_attribute: organizationName + token_claim_name: organizationName + - mapper_name: partnerType + mapper_user_attribute: partnerType + token_claim_name: partnerType + - mapper_name: addressTest + mapper_user_attribute: address + token_claim_name: addressTest + saroles: + - REGISTRATION_PROCESSOR + - CREATE_SHARE + - PMS_USER + - PMS_ADMIN + - PARTNER_ADMIN + - SUBSCRIBE_CA_CERTIFICATE_UPLOADED_GENERAL + - PUBLISH_MISP_LICENSE_UPDATED_GENERAL + - PUBLISH_PARTNER_UPDATED_GENERAL + - PUBLISH_MISP_LICENSE_GENERATED_GENERAL + - PUBLISH_APIKEY_APPROVED_GENERAL + - PUBLISH_APIKEY_UPDATED_GENERAL + - PUBLISH_CA_CERTIFICATE_UPLOADED_GENERAL + - PUBLISH_POLICY_UPDATED_GENERAL + + - name: mosip-partnermanager-client + mappers: [] + saroles: + - PARTNERMANAGER + - KEY_MAKER + + - name: mosip-pms-client + mappers: [] + saroles: + - PARTNER_ADMIN + + - name: mosip-policymanager-client + mappers: [] + saroles: [] + + - name: mosip-reg-client + mappers: [] + saroles: + - GLOBAL_ADMIN + - REGISTRATION_ADMIN + - REGISTRATION_OFFICER + - REGISTRATION_OPERATOR + - REGISTRATION_SUPERVISOR + + - name: mosip-regproc-client + mappers: [] + saroles: + - REGISTRATION_PROCESSOR + - DATA_READ + - DOCUMENT_READ + - BIOMETRIC_READ + - METADATA_READ + - CREATE_SHARE + - CREDENTIAL_REQUEST + + - name: mpartner-default-mobile + mappers: [] + saroles: + - CREDENTIAL_PARTNER + - SUBSCRIBE_REGISTRATION_PROCESSOR_WORKFLOW_COMPLETED_EVENT_GENERAL + - SUBSCRIBE_REGISTRATION_PROCESSOR_WORKFLOW_PAUSED_FOR_ADDITIONAL_INFO_EVENT_GENERAL + - PUBLISH_REGISTRATION_PROCESSOR_WORKFLOW_COMPLETED_EVENT_GENERAL + - PUBLISH_CREDENTIAL_STATUS_UPDATE_GENERAL + - PUBLISH_REGISTRATION_PROCESSOR_WORKFLOW_PAUSED_FOR_ADDITIONAL_INFO_EVENT_GENERAL + - SUBSCRIBE_CREDENTIAL_ISSUED_INDIVIDUAL + + - name: mosip-resident-client + mappers: [] + saroles: + - RESIDENT + - PARTNER_ADMIN + - CREDENTIAL_REQUEST + - offline_access + - uma_authorization + + - name: mosip-prereg-client + mappers: [] + saroles: + - PREREG + - REGISTRATION_PROCESSOR + - PRE_REGISTRATION_ADMIN + + - name: mosip-creser-idpass-client + mappers: [] + saroles: + - REGISTRATION_PROCESSOR + - DATA_READ + - DOCUMENT_READ + - BIOMETRIC_READ + - METADATA_READ + - CREATE_SHARE + - CREDENTIAL_REQUEST + + - name: mosip-syncdata-client + mappers: [] + saroles: + - REGISTRATION_ADMIN + - GLOBAL_ADMIN + - SUBSCRIBE_CA_CERTIFICATE_UPLOADED_GENERAL + - REGISTRATION_SUPERVISOR + - REGISTRATION_OFFICER + + - name: mpartner-default-auth + mappers: + - mapper_name: langCode + mapper_user_attribute: langCode + token_claim_name: langCode + saroles: + - SUBSCRIBE_AUTH_TYPE_STATUS_UPDATE_INDIVIDUAL + - SUBSCRIBE_POLICY_UPDATED_GENERAL + - SUBSCRIBE_MISP_LICENSE_GENERATED_GENERAL + - CREDENTIAL_REQUEST + - SUBSCRIBE_MOSIP_HOTLIST_GENERAL + - PUBLISH_ANONYMOUS_PROFILE_GENERAL + - SUBSCRIBE_ACTIVATE_ID_INDIVIDUAL + - SUBSCRIBE_REMOVE_ID_INDIVIDUAL + - SUBSCRIBE_MASTERDATA_TITLES_GENERAL + - SUBSCRIBE_CREDENTIAL_ISSUED_INDIVIDUAL + - SUBSCRIBE_MISP_LICENSE_UPDATED_GENERAL + - ID_AUTHENTICATION + - PUBLISH_CREDENTIAL_STATUS_UPDATE_GENERAL + - SUBSCRIBE_AUTH_TYPE_STATUS_UPDATE_ACK_GENERAL + - SUBSCRIBE_PARTNER_UPDATED_GENERAL + - offline_access + - SUBSCRIBE_APIKEY_APPROVED_GENERAL + - PUBLISH_AUTH_TYPE_STATUS_UPDATE_ACK_GENERAL + - SUBSCRIBE_MASTERDATA_IDAUTHENTICATION_TEMPLATES_GENERAL + - uma_authorization + - SUBSCRIBE_APIKEY_UPDATED_GENERAL + - SUBSCRIBE_DEACTIVATE_ID_INDIVIDUAL + - SUBSCRIBE_CA_CERTIFICATE_UPLOADED_GENERAL + - PUBLISH_AUTHENTICATION_TRANSACTION_STATUS_GENERAL + - PUBLISH_IDA_FRAUD_ANALYTICS_GENERAL + + - name: mosip-idrepo-client + mappers: [] + saroles: + - PUBLISH_DEACTIVATE_ID_ALL_INDIVIDUAL + - SUBSCRIBE_VID_CRED_STATUS_UPDATE_GENERAL + - ID_REPOSITORY + - PUBLISH_ACTIVATE_ID_ALL_INDIVIDUAL + - offline_access + - PUBLISH_REMOVE_ID_ALL_INDIVIDUAL + - PUBLISH_AUTHENTICATION_TRANSACTION_STATUS_GENERAL + - uma_authorization + - PUBLISH_VID_CRED_STATUS_UPDATE_GENERAL + - PUBLISH_AUTH_TYPE_STATUS_UPDATE_ALL_INDIVIDUAL + + - name: mpartner-default-print + mappers: [] + saroles: + - SUBSCRIBE_CREDENTIAL_ISSUED_INDIVIDUAL + - PUBLISH_CREDENTIAL_STATUS_UPDATE_GENERAL + - CREATE_SHARE + - PRINT_PARTNER + + - name: mosip-hotlist-client + saroles: + - HOTLIST_ADMIN + - uma_authorization + - offline_access + - PUBLISH_MOSIP_HOTLIST_GENERAL + + # Used only for initial deployment purposes. Maybe deleted from installation later. + - name: mosip-deployment-client + saroles: + - ID_AUTHENTICATION + - GLOBAL_ADMIN # TODO: do we need this? + - PARTNER_ADMIN + - uma_authorization + - offline_access + + - name: mosip-testrig-client + saroles: + - ID_AUTHENTICATION + - GLOBAL_ADMIN # TODO: do we need this? + - PARTNER_ADMIN + - REGISTRATION_PROCESSOR + - CREATE_SHARE + - PMS_ADMIN + - PMS_USER + - uma_authorization + - offline_access + sa_client_roles: + - realm-management: ## realm-management client id + - view-users # realm-management client roles + - view-clients + - view-realm + - manage-users diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index a25eb24e..d69487ef 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -43,8 +43,6 @@ def create_realm(self, realm, frontend_url=''): except: raise - return 0 - def delete_realm(self, realm, skip_exists=False): self.keycloak_admin.realm_name = realm # work around because otherwise client was getting created in master url = 'admin/realms/'+realm @@ -123,7 +121,6 @@ def create_role(self, realm, role): self.keycloak_admin.realm_name = realm # work around because otherwise role was getting created in master self.keycloak_admin.create_realm_role({'name' : role, 'clientRole' : False}, skip_exists=True) self.keycloak_admin.realm_name = 'master' # restore - return 0 # sa_roles: service account roles def create_client(self, realm, client, secret, sa_roles=None): @@ -302,7 +299,7 @@ def main(): if realm == "del_realms": continue print('\tCreate realms : %s' % realm) - r = ks.create_realm(realm, args.frontend_url) # {realm : [role]} + ks.create_realm(realm, args.frontend_url) # {realm : [role]} for realm in values: roles = [] @@ -310,20 +307,20 @@ def main(): print('Create roles for realm %s' % realm) roles = values[realm]['roles'] for role in roles: - r = ks.create_role(realm, role) + ks.create_role(realm, role) del_roles = [] if 'del_roles' in values[realm]: print('Delete roles for realm %s' % realm) del_roles = values[realm]['del_roles'] for role in del_roles: - r = ks.delete_realm_role(realm, role) + ks.delete_realm_role(realm, role) del_clients = [] if 'del_clients' in values[realm]: print("Deleting clients for realm %s" % realm) del_clients = values[realm]['del_clients'] for client in del_clients: - r = ks.delete_client(realm, client) + ks.delete_client(realm, client) # Expect secrets passed via env variables. clients = [] @@ -339,17 +336,17 @@ def main(): secret = secrets.token_urlsafe(16) if 'saroles' in client: - r = ks.create_client(realm, client['name'], secret, client['saroles']) + ks.create_client(realm, client['name'], secret, client['saroles']) if 'del_saroles' in client: print("\tRemoving roles from service account user for client %s" % client['name']) - r = ks.remove_sa_roles(realm, client['name'], client['del_saroles']) + ks.remove_sa_roles(realm, client['name'], client['del_saroles']) if 'mappers' in client: mappers = client['mappers'] print("\tCreating mappers for %s client " % client['name']) for mapper in mappers: - r = ks.create_mapper(realm, client['name'], mapper) + ks.create_mapper(realm, client['name'], mapper) if 'sa_client_roles' in client: sa_client_roles = client['sa_client_roles'] @@ -358,21 +355,21 @@ def main(): sa_client = list(cid_roles)[0] sa_client_role_list = cid_roles[sa_client] print('\t\tService account client name :: "%s"' % list(cid_roles)[0]) - r = ks.assign_sa_client_roles(realm, client['name'], sa_client, sa_client_role_list) + ks.assign_sa_client_roles(realm, client['name'], sa_client, sa_client_role_list) users = [] if 'users' in values[realm]: users = values[realm]['users'] for user in users: print(f'''Creating user {user['username']}''') - r = ks.create_user(realm, user['username'], user['email'], user['firstName'], user['lastName'], user['password'], user['temporary']) - r = ks.assign_user_roles(realm, user['username'], user['realmRoles']) + ks.create_user(realm, user['username'], user['email'], user['firstName'], user['lastName'], user['password'], user['temporary']) + ks.assign_user_roles(realm, user['username'], user['realmRoles']) except: formatted_lines = traceback.format_exc() print(formatted_lines) sys.exit(1) - sys.exit(r) + sys.exit(0) if __name__=="__main__": main() From 9d225a97e60729fc62a6445669a956787030648d Mon Sep 17 00:00:00 2001 From: Mahesh-Binayak <76687012+Mahesh-Binayak@users.noreply.github.com> Date: Wed, 21 Sep 2022 13:55:51 +0530 Subject: [PATCH 20/21] Update keycloak_init.py [MOSIP-23098]Updated the keycloak-init to facilitate brute force protection and Password policy. --- keycloak-init/keycloak_init.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/keycloak-init/keycloak_init.py b/keycloak-init/keycloak_init.py index a25eb24e..6c36b711 100755 --- a/keycloak-init/keycloak_init.py +++ b/keycloak-init/keycloak_init.py @@ -32,6 +32,15 @@ def create_realm(self, realm, frontend_url=''): "accessTokenLifespanForImplicitFlow": 900, "actionTokenGeneratedByAdminLifespan": 43200, "actionTokenGeneratedByUserLifespan": 300, + "passwordPolicy":"length(8)", + "bruteForceProtected":True, + "permanentLockout":False, + "maxFailureWaitSeconds":900, + "minimumQuickLoginWaitSeconds":60, + "waitIncrementSeconds":300, + "quickLoginCheckMilliSeconds":1000, + "maxDeltaTimeSeconds":600, + "failureFactor":5, "attributes": {"frontendUrl": frontend_url} } try: From 40187ff84969434ee0b00006abc9cd163f5235d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 06:23:35 +0000 Subject: [PATCH 21/21] Bump certifi from 2021.5.30 to 2022.12.7 in /keycloak-init Bumps [certifi](https://github.com/certifi/python-certifi) from 2021.5.30 to 2022.12.7. - [Release notes](https://github.com/certifi/python-certifi/releases) - [Commits](https://github.com/certifi/python-certifi/compare/2021.05.30...2022.12.07) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- keycloak-init/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keycloak-init/requirements.txt b/keycloak-init/requirements.txt index 1384aa6e..5910c263 100644 --- a/keycloak-init/requirements.txt +++ b/keycloak-init/requirements.txt @@ -1,4 +1,4 @@ -certifi==2021.5.30 +certifi==2022.12.7 chardet==4.0.0 ecdsa==0.17.0 idna==2.10
+
+
+
+ ${productName} +

Welcome to ${productNameFull}

+
+
+ +
+
+

Documentation

+
+ + User Guide, Admin REST API and Javadocs + +
+
+
+
+ <#if properties.displayCommunityLinks = "true"> + + + + +
+
+ +
+
+
-
-
-
- ${productName} -

Welcome to ${productNameFull}

-
-
- -
-
-

Documentation

-
- - User Guide, Admin REST API and Javadocs - -
-
-
-
- <#if properties.displayCommunityLinks = "true"> - - - - -
-
- -
-
-