Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Arch Linux
infrastructure
Commits
4b19686b
Commit
4b19686b
authored
Jun 15, 2021
by
Jelle van der Waa
🚧
Browse files
Merge branch 'keycloak-version-13' into 'master'
keycloak: Re-sync with version 13.0.0 changes See merge request
!374
parents
3959a709
1017a488
Pipeline
#8572
passed with stage
in 58 seconds
Changes
4
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
roles/keycloak/files/theme/archlinux/account/index.ftl
View file @
4b19686b
...
...
@@ -57,7 +57,7 @@
<#if referrer??>
var referrer = '$
{
referrer
}
';
var referrerName = '$
{
referrerName
}
';
var referrerUri = '$
{
referrer_uri
?
no_esc
}
'
;
var referrerUri = '$
{
referrer_uri
}
'.replace('&', '&')
;
</#if>
<#if msg??>
...
...
@@ -146,7 +146,7 @@
<
div
id="spinner_screen" style="display:block; height:100%">
<div style="width: 320px; height: 328px; text-align: center; position: absolute; top:0; bottom: 0; left: 0; right: 0; margin: auto;">
<#if properties.logo?has_content>
<img src="$
{
resourceUrl
}
$
{
properties
.logo
Dark
}
" alt="Logo" class="brand">
<img src="$
{
resourceUrl
}
$
{
properties
.logo
}
" alt="Logo" class="brand">
<#else>
<img src="$
{
resourceUrl
}
/public/archlinux-logo-dark.svg" alt="Logo" class="brand">
</#if>
...
...
roles/keycloak/files/theme/archlinux/login/login-config-totp.ftl
View file @
4b19686b
<#
import
"template.ftl" as layout>
<@
layout
.registrationLayout
display
Info=true displayRequiredFields=true
; section>
<@
layout
.registrationLayout
display
RequiredFields=false displayMessage=!messagesPerField.existsError('totp','userLabel')
; section>
<#if section = "header">
$
{
msg
(
"loginTotpTitle"
)}
<#elseif section = "form">
<div class="alert alert-warning">
<span class="$
{
properties
.kcFeedbackWarningIcon
}
"></span>
$
{
kcSanitize
(
msg
(
"totp-registration-warning"
))
?
no_esc
}
</div>
<ol id="kc-totp-settings">
<li>
<p>$
{
msg
(
"loginTotpStep1"
)}
</p>
<ul id="kc-totp-supported-apps">
<div style="margin-bottom: 10px; float: left; width: 40%">
<h4>Android</h4>
<ul style="margin-top: -5px;">
<li><a target="_blank" rel="noopener noreferrer" href="https://getaegis.app/">Aegis</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://github.com/andOTP/andOTP">andOTP</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://github.com/helloworld1/FreeOTPPlus">FreeOTP+</a></li>
</ul>
</div>
<div style="margin-bottom: 10px; float: left; width: 60%">
<h4>iOS</h4>
<ul style="margin-top: -5px;">
<li><a target="_blank" rel="noopener noreferrer" href="https://authy.com/">Authy</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://lastpass.com/auth/">LastPass Authenticator</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://cooperrs.de/otpauth.html ">OTP Auth</a></li>
</ul>
</div>
</ul>
</li>
<#if mode?? && mode = "manual">
<div class="alert alert-warning">
<span class="$
{
properties
.kcFeedbackWarningIcon
}
"></span>
$
{
kcSanitize
(
msg
(
"totp-registration-warning"
))
?
no_esc
}
</div>
<ol id="kc-totp-settings">
<li>
<p>$
{
msg
(
"loginTotpManualStep2"
)}
</p>
<p><span id="kc-totp-secret-key">$
{
totp
.totpSecretEncoded
}
</span></p>
<p><a href="$
{
totp
.qrUrl
}
" id="mode-barcode">$
{
msg
(
"loginTotpScanBarcode"
)}
</a></p>
<p>$
{
msg
(
"loginTotpStep1"
)}
</p>
<ul id="kc-totp-supported-apps">
<div style="margin-bottom: 10px; float: left; width: 40%">
<h4>Android</h4>
<ul style="margin-top: -5px;">
<li><a target="_blank" rel="noopener noreferrer" href="https://getaegis.app/">Aegis</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://github.com/andOTP/andOTP">andOTP</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://github.com/helloworld1/FreeOTPPlus">FreeOTP+</a></li>
</ul>
</div>
<div style="margin-bottom: 10px; float: left; width: 60%">
<h4>iOS</h4>
<ul style="margin-top: -5px;">
<li><a target="_blank" rel="noopener noreferrer" href="https://authy.com/">Authy</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://lastpass.com/auth/">LastPass Authenticator</a></li>
<li><a target="_blank" rel="noopener noreferrer" href="https://cooperrs.de/otpauth.html ">OTP Auth</a></li>
</ul>
</div>
</ul>
</li>
<li>
<p>$
{
msg
(
"loginTotpManualStep3"
)}
</p>
<p>
<#if mode?? && mode = "manual">
<li>
<p>$
{
msg
(
"loginTotpManualStep2"
)}
</p>
<p><span id="kc-totp-secret-key">$
{
totp
.totpSecretEncoded
}
</span></p>
<p><a href="$
{
totp
.qrUrl
}
" id="mode-barcode">$
{
msg
(
"loginTotpScanBarcode"
)}
</a></p>
</li>
<li>
<p>$
{
msg
(
"loginTotpManualStep3"
)}
</p>
<p>
<ul>
<li id="kc-totp-type">$
{
msg
(
"loginTotpType"
)}
: $
{
msg
(
"loginTotp."
+
totp
.policy.type
)}
</li>
<li id="kc-totp-algorithm">$
{
msg
(
"loginTotpAlgorithm"
)}
: $
{
totp
.policy.getAlgorithmKey
()}
</li>
...
...
@@ -54,58 +51,75 @@
<li id="kc-totp-counter">$
{
msg
(
"loginTotpCounter"
)}
: $
{
totp
.policy.initialCounter
}
</li>
</#if>
</ul>
</p>
</li>
<#else>
</p>
</li>
<#else>
<li>
<p>$
{
msg
(
"loginTotpStep2"
)}
</p>
<img id="kc-totp-secret-qr-code" src="data:image/png;base64, $
{
totp
.totpSecretQrCode
}
" alt="Figure: Barcode"><br/>
<p><a href="$
{
totp
.manualUrl
}
" id="mode-manual">$
{
msg
(
"loginTotpUnableToScan"
)}
</a></p>
</li>
</#if>
<li>
<p>$
{
msg
(
"loginTotpStep2"
)}
</p>
<img id="kc-totp-secret-qr-code" src="data:image/png;base64, $
{
totp
.totpSecretQrCode
}
" alt="Figure: Barcode"><br/>
<p><a href="$
{
totp
.manualUrl
}
" id="mode-manual">$
{
msg
(
"loginTotpUnableToScan"
)}
</a></p>
<p>$
{
msg
(
"loginTotpStep3"
)}
</p>
<p>$
{
msg
(
"loginTotpStep3DeviceName"
)}
</p>
</li>
</#if>
<li>
<p>$
{
msg
(
"loginTotpStep3"
)}
</p>
<p>$
{
msg
(
"loginTotpStep3DeviceName"
)}
</p>
</li>
</ol>
</ol>
<form action="$
{
url
.loginAction
}
" class="$
{
properties
.kcFormClass
!
}
" id="kc-totp-settings-form" method="post">
<div class="$
{
properties
.kcFormGroupClass
!
}
">
<div class="$
{
properties
.kcInputWrapperClass
!
}
">
<label for="totp" class="control-label">$
{
msg
(
"authenticatorCode"
)}
</label> <span class="required">
*
</span>
</div>
<div class="$
{
properties
.kcInputWrapperClass
!
}
">
<input type="text" id="totp" name="totp" autocomplete="off" class="$
{
properties
.kcInputClass
!
}
" />
</div>
<input type="hidden" id="totpSecret" name="totpSecret" value="$
{
totp
.totpSecret
}
" />
<#if mode??><input type="hidden" id="mode" name="mode" value="$
{
mode
}
"/></#if>
</div>
<form action="$
{
url
.loginAction
}
" class="$
{
properties
.kcFormClass
!
}
" id="kc-totp-settings-form" method="post">
<div class="$
{
properties
.kcFormGroupClass
!
}
">
<div class="$
{
properties
.kcInputWrapperClass
!
}
">
<label for="totp" class="control-label">$
{
msg
(
"authenticatorCode"
)}
</label> <span class="required">
*
</span>
</div>
<div class="$
{
properties
.kcInputWrapperClass
!
}
">
<input type="text" id="totp" name="totp" autocomplete="off" class="$
{
properties
.kcInputClass
!
}
"
aria-invalid="<#if messagesPerField.existsError('totp')>true</#if>"
/>
<#if messagesPerField.existsError('totp')>
<span id="input-error-otp-code" class="$
{
properties
.kcInputErrorMessageClass
!
}
" aria-live="polite">
$
{
kcSanitize
(
messagesPerField
.get
(
'
totp
'
))
?
no_esc
}
</span>
</#if>
<div
class="$
{
properties
.kcFormGroupClass
!
}
" $
{
messagesPerField
.printIfExists
(
'
userLabel
'
,
properties
.kcFormGroupErrorClass
!
)}
"
>
<div class="$
{
properties
.kcInputWrapperClass
!
}
"
>
<
label for="userLabel" class="control-label">$
{
msg
(
"loginTotpDeviceName"
)}
</label> <#if totp.otpCredentials?size gte 1><span class="required">
*
</span
></#if>
<
/
div>
<input type="hidden" id="totpSecret" name="totpSecret" value="$
{
totp
.totpSecret
}
" /
>
<
#if mode??><input type="hidden" id="mode" name="mode" value="$
{
mode
}
"/
></#if>
</div>
<div class="$
{
properties
.kcInputWrapperClass
!
}
">
<input type="text" class="form-control" id="userLabel" name="userLabel" autocomplete="off">
<div class="$
{
properties
.kcFormGroupClass
!
}
">
<div class="$
{
properties
.kcInputWrapperClass
!
}
">
<label for="userLabel" class="control-label">$
{
msg
(
"loginTotpDeviceName"
)}
</label> <#if totp.otpCredentials?size gte 1><span class="required">
*
</span></#if>
</div>
<div class="$
{
properties
.kcInputWrapperClass
!
}
">
<input type="text" class="$
{
properties
.kcInputClass
!
}
" id="userLabel" name="userLabel" autocomplete="off"
aria-invalid="<#if messagesPerField.existsError('userLabel')>true</#if>"
/>
<#if messagesPerField.existsError('userLabel')>
<span id="input-error-otp-label" class="$
{
properties
.kcInputErrorMessageClass
!
}
" aria-live="polite">
$
{
kcSanitize
(
messagesPerField
.get
(
'
userLabel
'
))
?
no_esc
}
</span>
</#if>
</div>
</div>
</div>
<#if isAppInitiatedAction??>
<input type="submit"
class="$
{
properties
.kcButtonClass
!
}
$
{
properties
.kcButtonPrimaryClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
"
id="saveTOTPBtn" value="$
{
msg
(
"doSubmit"
)}
"
/>
<button type="submit"
class="$
{
properties
.kcButtonClass
!
}
$
{
properties
.kcButtonDefaultClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
"
id="cancelTOTPBtn" name="cancel-aia" value="true" />$
{
msg
(
"doCancel"
)}
</button>
<#else>
<input type="submit"
class="$
{
properties
.kcButtonClass
!
}
$
{
properties
.kcButtonPrimaryClass
!
}
$
{
properties
.kcButtonBlockClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
"
id="saveTOTPBtn" value="$
{
msg
(
"doSubmit"
)}
"
/>
</#if>
</form>
<#if isAppInitiatedAction??>
<input type="submit"
class="$
{
properties
.kcButtonClass
!
}
$
{
properties
.kcButtonPrimaryClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
"
id="saveTOTPBtn" value="$
{
msg
(
"doSubmit"
)}
"
/>
<button type="submit"
class="$
{
properties
.kcButtonClass
!
}
$
{
properties
.kcButtonDefaultClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
"
id="cancelTOTPBtn" name="cancel-aia" value="true" />$
{
msg
(
"doCancel"
)}
</button>
<#else>
<input type="submit"
class="$
{
properties
.kcButtonClass
!
}
$
{
properties
.kcButtonPrimaryClass
!
}
$
{
properties
.kcButtonBlockClass
!
}
$
{
properties
.kcButtonLargeClass
!
}
"
id="saveTOTPBtn" value="$
{
msg
(
"doSubmit"
)}
"
/>
</#if>
</form>
</#if>
</@
layout
.registrationLayout
>
\ No newline at end of file
roles/keycloak/files/theme/archlinux/login/webauthn-register.ftl
View file @
4b19686b
...
...
@@ -26,6 +26,14 @@
<script type="text/javascript">
function registerSecurityKey()
{
//
C
heck
if
W
ebAuthn
is
supported
by
this
browser
if
(
!
window
.PublicKeyCredential
)
{
$
(
"#error"
)
.val
(
"${msg("
webauthn-unsupported-browser-text
")?no_esc}"
)
;
$
(
"#register"
)
.submit
()
;
return
;
}
//
mandatory
parameters
let
challenge
=
"${challenge}"
;
let
userid
=
"${userid}"
;
...
...
@@ -167,4 +175,4 @@
</#if>
</#if>
</@layout.registrationLayout>
</@layout.registrationLayout>
\ No newline at end of file
roles/keycloak/files/theme/archlinux/welcome/index.ftl
View file @
4b19686b
...
...
@@ -29,7 +29,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="noindex, nofollow">
<link rel="shortcut icon" href="$
{
resources
Common
Path
}
/img/favicon.ico" />
<link rel="shortcut icon" href="$
{
resourcesPath
}
/img/favicon.ico" />
<#if properties.stylesCommon?has_content>
<#list properties.stylesCommon?split(' ') as style>
...
...
@@ -127,7 +127,7 @@
</div>
</div>
<div class='footer'>
<#if properties.display
Footer
= "true">
<#if properties.display
CommunityLinks
= "true">
<a href="http://www.jboss.org"><img src="welcome-content/jboss_community.png" alt="JBoss and JBoss Community"></a>
</#if>
</div>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment