Merge pull request #2052 from stianst/KEYCLOAK-1572

Keycloak 1572
This commit is contained in:
Stian Thorgersen 2016-01-19 10:44:16 +01:00
commit 56b9009225
12 changed files with 58 additions and 81 deletions

View file

@ -79,6 +79,23 @@
<section> <section>
<title>Version specific migration</title> <title>Version specific migration</title>
<section>
<title>Migrating to 1.9.0</title>
<simplesect>
<title>Deprecated OpenID Connect endpoints</title>
<para>
In 1.2 we deprecated a number of endpoints that where not consistent with the OpenID Connect
specifications, these have now been removed. This also applies to the validate token endpoints that
was replaced with the new introspect endpoint in 1.8.
</para>
</simplesect>
<simplesect>
<title>Updates to theme templates</title>
<para>
Feedback in template.ftl has been moved and format has changed slightly.
</para>
</simplesect>
</section>
<section> <section>
<title>Migrating to 1.8.0</title> <title>Migrating to 1.8.0</title>
<simplesect> <simplesect>

View file

@ -38,18 +38,6 @@
<div id="kc-header-wrapper" class="${properties.kcHeaderWrapperClass!}"><#nested "header"></div> <div id="kc-header-wrapper" class="${properties.kcHeaderWrapperClass!}"><#nested "header"></div>
</div> </div>
<#if displayMessage && message?has_content>
<div id="kc-feedback" class="feedback-${message.type} ${properties.kcFeedBackClass!}">
<div id="kc-feedback-wrapper">
<span class="kc-feedback-text">${message.summary}</span>
</div>
</div>
<#else>
<div id="kc-feedback-placeholder" class="${properties.kcFeedBackPlaceholderClass!}">
<div id="kc-feedback-placeholder-wrapper"></div>
</div>
</#if>
<#if realm.internationalizationEnabled> <#if realm.internationalizationEnabled>
<div id="kc-locale" class="${properties.kcLocaleClass!}"> <div id="kc-locale" class="${properties.kcLocaleClass!}">
<div id="kc-locale-wrapper" class="${properties.kcLocaleWrapperClass!}"> <div id="kc-locale-wrapper" class="${properties.kcLocaleWrapperClass!}">
@ -67,6 +55,18 @@
<div id="kc-content" class="${properties.kcContentClass!}"> <div id="kc-content" class="${properties.kcContentClass!}">
<div id="kc-content-wrapper" class="${properties.kcContentWrapperClass!}"> <div id="kc-content-wrapper" class="${properties.kcContentWrapperClass!}">
<#if displayMessage && message?has_content>
<div class="${properties.kcFeedbackAreaClass!}">
<div class="alert alert-${message.type}">
<#if message.type = 'success'><span class="${properties.kcFeedbackSuccessIcon}"></span></#if>
<#if message.type = 'warning'><span class="${properties.kcFeedbackWarningIcon}"></span></#if>
<#if message.type = 'error'><span class="${properties.kcFeedbackErrorIcon}"></span></#if>
<span class="kc-feedback-text">${message.summary}</span>
</div>
</div>
</#if>
<div id="kc-form" class="${properties.kcFormAreaClass!}"> <div id="kc-form" class="${properties.kcFormAreaClass!}">
<div id="kc-form-wrapper" class="${properties.kcFormAreaWrapperClass!}"> <div id="kc-form-wrapper" class="${properties.kcFormAreaWrapperClass!}">
<#nested "form"> <#nested "form">

View file

@ -3,6 +3,12 @@
background-size: 100% auto; background-size: 100% auto;
} }
.alert-error {
background-color: #ffffff;
border-color: #cc0000;
color: #333333;
}
.kc-dropdown{ .kc-dropdown{
position: relative; position: relative;
z-index: 9999; z-index: 9999;
@ -114,59 +120,10 @@
display: block; display: block;
} }
#kc-feedback-wrapper {
display: inline-block;
width: auto;
background-position: left bottom;
background-repeat: no-repeat;
padding-bottom: 10px;
}
#kc-feedback span {
display: block;
padding: 0.90909090909091em 3.63636363636364em;
border-style: solid;
border-width: 1px 1px 0px 1px;
background-repeat: no-repeat;
background-position: 1.27272727272727em center;
font-weight: normal;
line-height: 1.4em;
border-radius: 2px;
color: #4d5258;
margin-bottom: 0;
}
#kc-terms-text { #kc-terms-text {
margin-bottom: 20px; margin-bottom: 20px;
} }
.feedback-error #kc-feedback-wrapper {
background-image: url(../img/feedback-error-arrow-down.png);
}
.feedback-error span {
border-color: #b91415;
background-image: url(../img/feedback-error-sign.png);
background-color: #f8e7e7;
}
.feedback-success #kc-feedback-wrapper {
background-image: url(../img/feedback-success-arrow-down.png);
}
.feedback-success span {
border-color: #4b9e39;
background-image: url(../img/feedback-success-sign.png);
background-color: #e4f1e1;
}
.feedback-warning #kc-feedback-wrapper {
background-image: url(../img/feedback-warning-arrow-down.png);
}
.feedback-warning span {
border-color: #f17528;
background-image: url(../img/feedback-warning-sign.png);
background-color: #fef1e9;
}
#kc-registration { #kc-registration {
margin-bottom: 15px; margin-bottom: 15px;
} }
@ -283,6 +240,10 @@ ol#kc-totp-settings li:first-of-type {
top: 50px; top: 50px;
right: 50px; right: 50px;
} }
.login-pf .container {
padding-right: 80px;
}
} }
@media (max-width: 767px) { @media (max-width: 767px) {
@ -300,12 +261,6 @@ ol#kc-totp-settings li:first-of-type {
text-align: center; text-align: center;
} }
#kc-feedback {
padding-left: 15px;
padding-right: 15px;
float: none;
}
#kc-form { #kc-form {
float: none; float: none;
} }

View file

@ -12,12 +12,17 @@ kcContentClass=col-sm-12 col-md-12 col-lg-12 container
kcContentWrapperClass=row kcContentWrapperClass=row
kcHeaderClass=col-xs-12 col-sm-7 col-md-6 col-lg-5 kcHeaderClass=col-xs-12 col-sm-7 col-md-6 col-lg-5
kcFeedBackClass=col-xs-12 col-sm-4 col-md-5 col-lg-6 kcFeedbackAreaClass=col-md-12
kcFeedBackPlaceholderClass=col-xs-12 col-sm-4 col-md-5 col-lg-6
kcLocaleClass=col-xs-12 col-sm-1 kcLocaleClass=col-xs-12 col-sm-1
kcAlertIconClasserror=pficon pficon-error-circle-o
kcFormAreaClass=col-xs-12 col-sm-8 col-md-8 col-lg-7 login kcFormAreaClass=col-xs-12 col-sm-8 col-md-8 col-lg-7 login
kcFeedbackErrorIcon=pficon pficon-error-circle-o
kcFeedbackWarningIcon=pficon pficon-warning-triangle-o
kcFeedbackSuccessIcon=alert alert-success
kcFormClass=form-horizontal kcFormClass=form-horizontal
kcFormGroupClass=form-group kcFormGroupClass=form-group
kcFormGroupErrorClass=has-error kcFormGroupErrorClass=has-error

View file

@ -62,13 +62,13 @@ public class LoginPage extends AbstractPage {
@FindBy(linkText = "Username") @FindBy(linkText = "Username")
private WebElement recoverUsernameLink; private WebElement recoverUsernameLink;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement loginErrorMessage; private WebElement loginErrorMessage;
@FindBy(className = "feedback-warning") @FindBy(className = "alert-warning")
private WebElement loginWarningMessage; private WebElement loginWarningMessage;
@FindBy(className = "feedback-success") @FindBy(className = "alert-success")
private WebElement emailSuccessMessage; private WebElement emailSuccessMessage;

View file

@ -35,10 +35,10 @@ public class LoginPasswordResetPage extends AbstractPage {
@FindBy(css = "input[type=\"submit\"]") @FindBy(css = "input[type=\"submit\"]")
private WebElement submitButton; private WebElement submitButton;
@FindBy(className = "feedback-success") @FindBy(className = "alert-success")
private WebElement emailSuccessMessage; private WebElement emailSuccessMessage;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement emailErrorMessage; private WebElement emailErrorMessage;
@FindBy(partialLinkText = "Back to Login") @FindBy(partialLinkText = "Back to Login")

View file

@ -38,7 +38,7 @@ public class LoginPasswordUpdatePage extends AbstractPage {
@FindBy(css = "input[type=\"submit\"]") @FindBy(css = "input[type=\"submit\"]")
private WebElement submitButton; private WebElement submitButton;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement loginErrorMessage; private WebElement loginErrorMessage;
public void changePassword(String newPassword, String passwordConfirm) { public void changePassword(String newPassword, String passwordConfirm) {

View file

@ -35,7 +35,7 @@ public class LoginRecoverUsernamePage extends AbstractPage {
@FindBy(css = "input[type=\"submit\"]") @FindBy(css = "input[type=\"submit\"]")
private WebElement submitButton; private WebElement submitButton;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement emailErrorMessage; private WebElement emailErrorMessage;
public void recoverUsername(String email) { public void recoverUsername(String email) {

View file

@ -42,7 +42,7 @@ public class LoginTotpPage extends AbstractPage {
@FindBy(id = "kc-cancel") @FindBy(id = "kc-cancel")
private WebElement cancelButton; private WebElement cancelButton;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement loginErrorMessage; private WebElement loginErrorMessage;
public void login(String totp) { public void login(String totp) {

View file

@ -43,7 +43,7 @@ public class LoginUpdateProfilePage extends AbstractPage {
@FindBy(css = "input[type=\"submit\"]") @FindBy(css = "input[type=\"submit\"]")
private WebElement submitButton; private WebElement submitButton;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement loginErrorMessage; private WebElement loginErrorMessage;
public void update(String firstName, String lastName, String email) { public void update(String firstName, String lastName, String email) {

View file

@ -54,7 +54,7 @@ public class RegisterPage extends AbstractPage {
@FindBy(css = "input[type=\"submit\"]") @FindBy(css = "input[type=\"submit\"]")
private WebElement submitButton; private WebElement submitButton;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement loginErrorMessage; private WebElement loginErrorMessage;
public void register(String firstName, String lastName, String email, String username, String password, String passwordConfirm) { public void register(String firstName, String lastName, String email, String username, String password, String passwordConfirm) {

View file

@ -38,10 +38,10 @@ public class ValidatePassworrdEmailResetPage extends AbstractPage {
@FindBy(id="kc-cancel") @FindBy(id="kc-cancel")
private WebElement cancelButton; private WebElement cancelButton;
@FindBy(className = "feedback-success") @FindBy(className = "alert-success")
private WebElement emailSuccessMessage; private WebElement emailSuccessMessage;
@FindBy(className = "feedback-error") @FindBy(className = "alert-error")
private WebElement emailErrorMessage; private WebElement emailErrorMessage;
public void submitCode(String code) { public void submitCode(String code) {