KEYCLOAK-7751 Auth welcome page

This commit is contained in:
June Zhang 2018-07-19 15:09:08 +08:00 committed by Stian Thorgersen
parent 5fe1905e4b
commit 237318dfd3
32 changed files with 272 additions and 552 deletions

View file

@ -18,6 +18,7 @@ package org.keycloak.services.resources;
import org.jboss.logging.Logger;
import org.keycloak.common.ClientConnection;
import org.keycloak.common.Version;
import org.keycloak.common.util.Base64Url;
import org.keycloak.common.util.MimeTypeUtil;
import org.keycloak.models.BrowserSecurityHeaders;
@ -25,6 +26,7 @@ import org.keycloak.models.KeycloakSession;
import org.keycloak.models.utils.KeycloakModelUtils;
import org.keycloak.services.ForbiddenException;
import org.keycloak.services.ServicesLogger;
import org.keycloak.services.Urls;
import org.keycloak.services.managers.ApplianceBootstrap;
import org.keycloak.services.util.CacheControlUtil;
import org.keycloak.services.util.CookieHelper;
@ -171,8 +173,19 @@ public class WelcomeResource {
private Response createWelcomePage(String successMessage, String errorMessage) {
try {
Map<String, Object> map = new HashMap<>();
map.put("bootstrap", bootstrap);
Theme theme = getTheme();
Map<String, Object> map = new HashMap<>();
map.put("productName", Version.NAME);
map.put("properties", theme.getProperties());
URI uri = Urls.themeRoot(session.getContext().getUri().getBaseUri());
String resourcesPath = uri.getPath() + "/" + theme.getType().toString().toLowerCase() +"/" + theme.getName();
map.put("resourcesPath", resourcesPath);
map.put("bootstrap", bootstrap);
if (bootstrap) {
boolean isLocal = isLocal();
map.put("localUser", isLocal);
@ -189,7 +202,7 @@ public class WelcomeResource {
map.put("errorMessage", errorMessage);
}
FreeMarkerUtil freeMarkerUtil = new FreeMarkerUtil();
String result = freeMarkerUtil.processTemplate(map, "index.ftl", getTheme());
String result = freeMarkerUtil.processTemplate(map, "index.ftl", theme);
ResponseBuilder rb = Response.status(errorMessage == null ? Status.OK : Status.BAD_REQUEST)
.entity(result)

View file

@ -1,135 +0,0 @@
<!--
~ JBoss, Home of Professional Open Source.
~ Copyright (c) 2011, Red Hat, Inc., and individual contributors
~ as indicated by the @author tags. See the copyright.txt file in the
~ distribution for a full listing of individual contributors.
~
~ This is free software; you can redistribute it and/or modify it
~ under the terms of the GNU Lesser General Public License as
~ published by the Free Software Foundation; either version 2.1 of
~ the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this software; if not, write to the Free
~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Red Hat Single Sign-On</title>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="noindex, nofollow">
<link rel="shortcut icon" href="welcome-content/favicon.ico" type="image/x-icon">
<link rel="StyleSheet" href="welcome-content/keycloak.css" type="text/css">
<style>
label {
display: inline-block;
width: 200px;
text-align: right;
margin-right: 10px;
}
button {
margin-left: 215px;
}
form {
background-color: #eee;
border: 1px solid #666;
padding-bottom: 1em;
}
.error {
color: #a30000;
}
</style>
</head>
<body>
<div id="container" style="position: absolute; left: 0px; top: 0px; right: 0px; bottom: 0px;">
<!-- header -->
<div class="header-panel">
<div class="header-line">&nbsp;</div>
<div class="header-top">
<div class="prod-title">
<img class="prod-img" alt="Red Hat&reg; Single Sign-On" src="welcome-content/brand.svg"/>
</div>
</div>
<div class="header-bottom">&nbsp;</div>
</div>
<!-- main content -->
<div id="content">
<div class="section">
<h1>Welcome to Red Hat Single Sign-On</h1>
<h3>Your Red Hat Single Sign-On is running.</h3>
<#if successMessage?has_content>
<p>${successMessage}</p>
<#elseif errorMessage?has_content>
<p class="error">${errorMessage}</p>
<#elseif bootstrap>
<#if localUser>
<p>Please create an initial admin user to get started.</p>
<#else>
<p>
You need local access to create the initial admin user. Open <a href="http://localhost:8080/auth">http://localhost:8080/auth</a>
or use the add-user-keycloak script.
</p>
</#if>
</#if>
<#if bootstrap && localUser>
<form method="post">
<p>
<label for="username">Username</label>
<input id="username" name="username" />
</p>
<p>
<label for="password">Password</label>
<input id="password" name="password" type="password" />
</p>
<p>
<label for="passwordConfirmation">Password confirmation</label>
<input id="passwordConfirmation" name="passwordConfirmation" type="password" />
</p>
<input id="stateChecker" name="stateChecker" type="hidden" value="${stateChecker}" />
<button id="create-button" type="submit">Create</button>
</form>
</#if>
<p>
<a href="admin/">Administration Console</a> |
<a href="https://access.redhat.com/documentation/en/red-hat-single-sign-on/">Documentation</a>
</p>
</div>
</div>
<div id="footer">&nbsp;</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View file

@ -1,101 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 223.4 12.5" style="enable-background:new 0 0 223.4 12.5;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
</style>
<g>
<g>
<g>
<path class="st0" d="M6.5,12.3l-2-4H3.2v4H0V0.3h5.3c0.7,0,1.3,0.1,1.9,0.2c0.6,0.1,1.1,0.4,1.5,0.7c0.4,0.3,0.7,0.7,0.9,1.2
C9.9,2.9,10,3.5,10,4.2c0,0.9-0.2,1.6-0.6,2.2C9,7,8.5,7.4,7.8,7.7l2.4,4.6H6.5z M6.4,3.4C6.1,3.1,5.8,3,5.2,3h-2v2.6h2
c0.5,0,0.9-0.1,1.2-0.3c0.2-0.2,0.3-0.6,0.3-1C6.7,3.9,6.6,3.6,6.4,3.4z"/>
</g>
<g>
<path class="st0" d="M12.2,12.3V0.3h9.1v2.8h-5.9v1.6H19v2.7h-3.5v2h6v2.8H12.2z"/>
</g>
<g>
<path class="st0" d="M33.5,9.1c-0.3,0.8-0.7,1.4-1.2,1.9c-0.5,0.5-1.2,0.8-2,1c-0.8,0.2-1.7,0.3-2.8,0.3h-3.9V0.3h4.2
c0.9,0,1.8,0.1,2.5,0.3c0.8,0.2,1.4,0.5,1.9,1c0.5,0.5,0.9,1.1,1.2,1.8c0.3,0.7,0.4,1.7,0.4,2.8C33.9,7.3,33.8,8.3,33.5,9.1z
M30.4,4.9c-0.1-0.4-0.3-0.7-0.5-1c-0.2-0.2-0.5-0.4-0.9-0.6c-0.4-0.1-0.8-0.2-1.3-0.2h-0.8v6.3h0.7c0.5,0,1-0.1,1.3-0.2
c0.4-0.1,0.7-0.3,0.9-0.5c0.2-0.2,0.4-0.6,0.5-1c0.1-0.4,0.2-0.9,0.2-1.5C30.5,5.7,30.5,5.3,30.4,4.9z"/>
</g>
<g>
<path class="st0" d="M48,12.3V7.6h-3.7v4.7h-3.4V0.3h3.4v4.4H48V0.3h3.4v11.9H48z"/>
</g>
<g>
<path class="st0" d="M61.5,12.3l-0.6-2.1h-3.6l-0.6,2.1h-3.5l4.3-11.9h3.3l4.3,11.9H61.5z M59.8,6.7c-0.1-0.4-0.2-0.7-0.3-1
c-0.1-0.3-0.2-0.5-0.2-0.8c-0.1-0.2-0.1-0.4-0.2-0.6c0-0.2-0.1-0.4-0.1-0.6C59,4,59,4.2,58.9,4.4c0,0.2-0.1,0.4-0.2,0.6
c-0.1,0.2-0.1,0.5-0.2,0.8c-0.1,0.3-0.2,0.6-0.3,1l-0.2,0.8h2L59.8,6.7z"/>
</g>
<g>
<path class="st0" d="M71.3,3.2v9.1H68V3.2h-3.3V0.3h10v2.9H71.3z"/>
</g>
</g>
<g>
<path class="st0" d="M78.6,2c-0.1,0.1-0.1,0.3-0.3,0.4c-0.1,0.1-0.2,0.2-0.4,0.3c-0.1,0.1-0.3,0.1-0.5,0.1c-0.2,0-0.3,0-0.5-0.1
c-0.1-0.1-0.3-0.1-0.4-0.3c-0.1-0.1-0.2-0.2-0.3-0.4c-0.1-0.1-0.1-0.3-0.1-0.5c0-0.2,0-0.3,0.1-0.5c0.1-0.1,0.1-0.3,0.3-0.4
c0.1-0.1,0.2-0.2,0.4-0.3c0.1-0.1,0.3-0.1,0.5-0.1c0.2,0,0.3,0,0.5,0.1c0.1,0.1,0.3,0.1,0.4,0.3c0.1,0.1,0.2,0.2,0.3,0.4
c0.1,0.1,0.1,0.3,0.1,0.5C78.7,1.7,78.6,1.8,78.6,2z M78.4,1.1c-0.1-0.1-0.1-0.2-0.2-0.3c-0.1-0.1-0.2-0.2-0.3-0.2
c-0.1-0.1-0.3-0.1-0.4-0.1c-0.1,0-0.3,0-0.4,0.1c-0.1,0.1-0.2,0.1-0.3,0.2c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.1,0.4
c0,0.1,0,0.3,0.1,0.4s0.1,0.2,0.2,0.3c0.1,0.1,0.2,0.2,0.3,0.2c0.1,0,0.3,0.1,0.4,0.1c0.1,0,0.3,0,0.4-0.1
c0.1-0.1,0.2-0.1,0.3-0.2c0.1-0.1,0.2-0.2,0.2-0.3c0.1-0.1,0.1-0.3,0.1-0.4C78.5,1.4,78.4,1.2,78.4,1.1z M77.9,1.5
c-0.1,0.1-0.1,0.1-0.2,0.1L78,2.1h-0.3l-0.3-0.5h-0.3v0.5H77V0.8h0.6c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.1,0.1C77.9,1,77.9,1,78,1
c0,0,0,0.1,0,0.2C78,1.3,78,1.4,77.9,1.5z M77.7,1.1c0,0-0.1,0-0.1,0h-0.3v0.4h0.3c0.1,0,0.1,0,0.1,0c0,0,0.1-0.1,0.1-0.1
C77.8,1.2,77.8,1.1,77.7,1.1z"/>
</g>
<g>
<path class="st0" d="M91.4,10.2c-0.2,0.5-0.5,0.9-0.9,1.2S89.6,12,89,12.2c-0.6,0.2-1.3,0.3-2.1,0.3c-1,0-1.9-0.2-2.8-0.6
c-0.8-0.4-1.5-0.9-1.9-1.6l1.7-1.6c0.4,0.5,0.9,0.8,1.4,1.1s1.1,0.3,1.7,0.3c0.7,0,1.3-0.1,1.6-0.3s0.5-0.5,0.5-1
c0-0.2,0-0.4-0.1-0.5C89,8.1,88.8,8,88.6,7.9c-0.2-0.1-0.5-0.2-0.8-0.4c-0.4-0.1-0.8-0.2-1.4-0.4c-0.6-0.1-1.1-0.3-1.5-0.4
C84.4,6.5,84,6.3,83.7,6c-0.3-0.3-0.6-0.6-0.8-1c-0.2-0.4-0.3-0.9-0.3-1.5c0-0.6,0.1-1,0.3-1.5c0.2-0.4,0.5-0.8,0.9-1.1
c0.4-0.3,0.8-0.5,1.4-0.7C85.8,0.1,86.4,0,87,0c0.9,0,1.8,0.2,2.5,0.5c0.7,0.3,1.3,0.8,1.9,1.4l-1.7,1.7c-0.4-0.4-0.8-0.7-1.3-0.9
s-0.9-0.3-1.5-0.3c-0.3,0-0.6,0-0.8,0.1c-0.2,0.1-0.4,0.1-0.5,0.2s-0.2,0.2-0.3,0.3c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.2,0,0.4,0.1,0.5
c0.1,0.1,0.2,0.2,0.4,0.4c0.2,0.1,0.4,0.2,0.7,0.3c0.3,0.1,0.7,0.2,1.2,0.3c0.5,0.1,1,0.2,1.4,0.4c0.5,0.2,0.9,0.4,1.3,0.6
C90.7,6.2,91,6.6,91.3,7c0.2,0.4,0.4,1,0.4,1.6C91.6,9.2,91.5,9.7,91.4,10.2z"/>
<path class="st0" d="M94.4,12.3V0.2h2.4v12.1H94.4z"/>
<path class="st0" d="M107.7,12.3l-4.4-6.6c-0.1-0.2-0.3-0.5-0.5-0.7c-0.2-0.3-0.3-0.5-0.4-0.6c0,0.1,0,0.3,0,0.5
c0,0.2,0,0.5,0,0.7c0,0.3,0,0.5,0,0.8c0,0.3,0,0.5,0,0.6v5.3h-2.4V0.2h2.3l4.3,6.4c0.1,0.2,0.3,0.5,0.5,0.7
c0.2,0.3,0.3,0.5,0.4,0.6c0-0.1,0-0.3,0-0.5c0-0.2,0-0.5,0-0.7c0-0.3,0-0.5,0-0.8c0-0.3,0-0.5,0-0.6V0.2h2.4v12.1H107.7z"/>
<path class="st0" d="M122.1,9.7c-0.2,0.6-0.6,1.1-1,1.5c-0.4,0.4-0.9,0.7-1.5,0.9c-0.6,0.2-1.2,0.3-1.9,0.3
c-0.8,0-1.5-0.1-2.2-0.4c-0.6-0.3-1.2-0.7-1.7-1.3c-0.5-0.5-0.8-1.2-1.1-2c-0.3-0.8-0.4-1.6-0.4-2.6c0-0.9,0.1-1.8,0.4-2.5
c0.3-0.8,0.6-1.4,1.1-2s1-1,1.7-1.3c0.7-0.3,1.4-0.5,2.2-0.5c0.6,0,1.2,0.1,1.6,0.2c0.5,0.1,0.9,0.3,1.3,0.6s0.7,0.6,1,1
c0.3,0.4,0.5,0.8,0.7,1.3L120,4c-0.1-0.2-0.2-0.4-0.4-0.6s-0.3-0.4-0.5-0.5c-0.2-0.1-0.4-0.2-0.6-0.3c-0.2-0.1-0.5-0.1-0.8-0.1
c-0.4,0-0.9,0.1-1.2,0.3c-0.4,0.2-0.7,0.5-0.9,0.8s-0.4,0.7-0.6,1.2c-0.1,0.5-0.2,1-0.2,1.5c0,0.6,0.1,1.1,0.2,1.5
c0.1,0.5,0.3,0.9,0.6,1.2c0.2,0.3,0.5,0.6,0.9,0.8c0.4,0.2,0.8,0.3,1.2,0.3c0.4,0,0.8,0,1.1-0.1c0.3-0.1,0.5-0.2,0.7-0.4
c0.2-0.2,0.3-0.4,0.4-0.6s0.2-0.5,0.2-0.7h-1.9V6h4.3v1.6C122.4,8.4,122.3,9.1,122.1,9.7z"/>
<path class="st0" d="M125,12.3V0.2h2.4v9.7h6.1v2.4H125z"/>
<path class="st0" d="M135.7,12.3V0.2h8.4v2.4h-6v2.1h3.5V7h-3.5v2.9h6.2v2.4H135.7z"/>
<path class="st0" d="M160.5,10.2c-0.2,0.5-0.5,0.9-0.9,1.2s-0.9,0.6-1.5,0.8c-0.6,0.2-1.3,0.3-2.1,0.3c-1,0-1.9-0.2-2.8-0.6
s-1.5-0.9-1.9-1.6l1.7-1.6c0.4,0.5,0.9,0.8,1.4,1.1s1.1,0.3,1.7,0.3c0.7,0,1.3-0.1,1.6-0.3c0.3-0.2,0.5-0.5,0.5-1
c0-0.2,0-0.4-0.1-0.5c-0.1-0.1-0.2-0.3-0.4-0.4c-0.2-0.1-0.5-0.2-0.8-0.4c-0.4-0.1-0.8-0.2-1.4-0.4C155,7,154.5,6.9,154,6.7
c-0.5-0.2-0.9-0.4-1.2-0.7c-0.3-0.3-0.6-0.6-0.8-1c-0.2-0.4-0.3-0.9-0.3-1.5c0-0.6,0.1-1,0.3-1.5c0.2-0.4,0.5-0.8,0.9-1.1
c0.4-0.3,0.8-0.5,1.4-0.7c0.5-0.2,1.1-0.2,1.7-0.2c0.9,0,1.8,0.2,2.5,0.5c0.7,0.3,1.3,0.8,1.9,1.4l-1.7,1.7
c-0.4-0.4-0.8-0.7-1.3-0.9s-0.9-0.3-1.5-0.3c-0.3,0-0.6,0-0.8,0.1c-0.2,0.1-0.4,0.1-0.5,0.2s-0.2,0.2-0.3,0.3
c-0.1,0.1-0.1,0.3-0.1,0.4c0,0.2,0,0.4,0.1,0.5c0.1,0.1,0.2,0.2,0.4,0.4c0.2,0.1,0.4,0.2,0.7,0.3c0.3,0.1,0.7,0.2,1.2,0.3
c0.5,0.1,1,0.2,1.4,0.4c0.5,0.2,0.9,0.4,1.3,0.6c0.4,0.3,0.7,0.6,0.9,1.1c0.2,0.4,0.4,1,0.4,1.6C160.8,9.2,160.7,9.7,160.5,10.2z"
/>
<path class="st0" d="M163.5,12.3V0.2h2.4v12.1H163.5z"/>
<path class="st0" d="M178.3,9.7c-0.2,0.6-0.6,1.1-1,1.5c-0.4,0.4-0.9,0.7-1.5,0.9c-0.6,0.2-1.2,0.3-1.9,0.3
c-0.8,0-1.5-0.1-2.2-0.4s-1.2-0.7-1.7-1.3c-0.5-0.5-0.8-1.2-1.1-2c-0.3-0.8-0.4-1.6-0.4-2.6c0-0.9,0.1-1.8,0.4-2.5
c0.3-0.8,0.6-1.4,1.1-2s1-1,1.7-1.3c0.7-0.3,1.4-0.5,2.2-0.5c0.6,0,1.2,0.1,1.6,0.2c0.5,0.1,0.9,0.3,1.3,0.6c0.4,0.3,0.7,0.6,1,1
s0.5,0.8,0.7,1.3L176.2,4c-0.1-0.2-0.2-0.4-0.4-0.6c-0.1-0.2-0.3-0.4-0.5-0.5c-0.2-0.1-0.4-0.2-0.6-0.3c-0.2-0.1-0.5-0.1-0.8-0.1
c-0.4,0-0.9,0.1-1.2,0.3c-0.4,0.2-0.7,0.5-0.9,0.8c-0.2,0.3-0.4,0.7-0.6,1.2c-0.1,0.5-0.2,1-0.2,1.5c0,0.6,0.1,1.1,0.2,1.5
c0.1,0.5,0.3,0.9,0.6,1.2c0.2,0.3,0.5,0.6,0.9,0.8c0.4,0.2,0.8,0.3,1.2,0.3c0.4,0,0.8,0,1.1-0.1c0.3-0.1,0.5-0.2,0.7-0.4
c0.2-0.2,0.3-0.4,0.4-0.6s0.2-0.5,0.2-0.7h-1.9V6h4.3v1.6C178.7,8.4,178.6,9.1,178.3,9.7z"/>
<path class="st0" d="M188.9,12.3l-4.4-6.6c-0.2-0.2-0.3-0.5-0.5-0.7c-0.2-0.3-0.3-0.5-0.4-0.6c0,0.1,0,0.3,0,0.5
c0,0.2,0,0.5,0,0.7c0,0.3,0,0.5,0,0.8c0,0.3,0,0.5,0,0.6v5.3h-2.4V0.2h2.3l4.3,6.4c0.1,0.2,0.3,0.5,0.5,0.7
c0.2,0.3,0.3,0.5,0.4,0.6c0-0.1,0-0.3,0-0.5c0-0.2,0-0.5,0-0.7c0-0.3,0-0.5,0-0.8c0-0.3,0-0.5,0-0.6V0.2h2.4v12.1H188.9z"/>
<path class="st0" d="M193.6,7.2V4.8h5v2.4H193.6z"/>
<path class="st0" d="M210.7,8.8c-0.3,0.8-0.6,1.4-1.1,2c-0.5,0.5-1,0.9-1.7,1.2c-0.7,0.3-1.4,0.4-2.2,0.4c-0.8,0-1.5-0.1-2.2-0.4
s-1.2-0.7-1.7-1.2c-0.5-0.5-0.8-1.2-1.1-2c-0.3-0.8-0.4-1.6-0.4-2.6s0.1-1.9,0.4-2.6c0.3-0.8,0.6-1.4,1.1-2c0.5-0.5,1-0.9,1.7-1.2
c0.7-0.3,1.4-0.4,2.2-0.4c0.8,0,1.5,0.1,2.1,0.4s1.2,0.7,1.7,1.2c0.5,0.5,0.8,1.2,1.1,2c0.3,0.8,0.4,1.6,0.4,2.6
S211,8.1,210.7,8.8z M207.9,3.4c-0.5-0.7-1.2-1-2.1-1s-1.5,0.3-2,1S203,5,203,6.2c0,1.2,0.3,2.2,0.8,2.8c0.5,0.7,1.2,1,2.1,1
s1.5-0.3,2-1s0.8-1.6,0.8-2.8S208.4,4.1,207.9,3.4z"/>
<path class="st0" d="M221.2,12.3l-4.4-6.6c-0.2-0.2-0.3-0.5-0.5-0.7c-0.2-0.3-0.3-0.5-0.4-0.6c0,0.1,0,0.3,0,0.5
c0,0.2,0,0.5,0,0.7c0,0.3,0,0.5,0,0.8c0,0.3,0,0.5,0,0.6v5.3h-2.4V0.2h2.3l4.3,6.4c0.1,0.2,0.3,0.5,0.5,0.7
c0.2,0.3,0.3,0.5,0.4,0.6c0-0.1,0-0.3,0-0.5c0-0.2,0-0.5,0-0.7c0-0.3,0-0.5,0-0.8c0-0.3,0-0.5,0-0.6V0.2h2.4v12.1H221.2z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.2 KiB

View file

@ -0,0 +1,12 @@
body {
background-image: url(../bg.png),url(../bg-login.png);
background-repeat: no-repeat,no-repeat;
background-position: right bottom, left top;
background-size: auto, auto;
background-color: #1a1a1a;
height: 100%;
}
.welcome-header {
color: #fff;
}

View file

@ -1,172 +0,0 @@
/*
~ JBoss, Home of Professional Open Source.
~ Copyright (c) 2011, Red Hat, Inc., and individual contributors
~ as indicated by the @author tags. See the copyright.txt file in the
~ distribution for a full listing of individual contributors.
~
~ This is free software; you can redistribute it and/or modify it
~ under the terms of the GNU Lesser General Public License as
~ published by the Free Software Foundation; either version 2.1 of
~ the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this software; if not, write to the Free
~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 300;
src: local('Open Sans Light'), local('OpenSans-Light'), url(OpenSans-Light.ttf) format('truetype');
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans'), local('OpenSans'), url(OpenSans-Regular.ttf) format('truetype');
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url(OpenSans-Semibold.ttf) format('truetype');
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 700;
src: local('Open Sans Bold'), local('OpenSans-Bold'), url(OpenSans-Bold.ttf) format('truetype');
}
body {
background-color: #ECECEC;
color: #4E5255;
font: 12px/1.4 "Open Sans","Lucida Sans Unicode","Lucida Grande",sans-serif;
margin: 0;
}
#container {
background: none repeat scroll 0 0 #FFFFFF;
border-left: 1px solid #CECECE;
border-right: 1px solid #CECECE;
box-shadow: 6px 6px 6px #E3E3E3, -6px 6px 6px #E3E3E3, 6px -6px 6px #E3E3E3, -6px -6px 6px #E3E3E3;
margin: 0 auto;
min-width: 1003px;
width: 1003px;
}
#content {
background-color: #ffffff;
margin-top: 4px;
height: 100%;
}
#content sub{
font-size: 12px;
}
#footer {
background-color: #F1F1F1;
border-top: 1px solid #CFCFCF;
height: 42px;
min-height: 42px;
width: 100%;
position: absolute;
bottom: 0;
}
.section {
margin-left: 170px;
margin-right: 170px;
padding-top: 20px;
}
a {
color: #009ADA;
outline: none;
}
a:hover {
text-decoration: underline;
}
a:active {
outline: none;
}
a:link {
outline: none;
}
H1 {
color: #656565;
font-size: 20px;
font-weight: 300 !important;
padding-bottom: 8px;
}
H2 {
color: #656565;
font-size: 14px;
font-weight: 300 !important;
}
sub {
color: #a3a7aa;
}
.prod-title {
position: relative;
top: 50%;
transform: translateY(-50%);
height: 11px;
}
.prod-img {
height: 100%;
}
.WarnBlock {
color: #000000;
padding: 15px;
background-color: #FFD272;
-moz-border-radius: 4px;
border-radius: 4px;
}
.header-top {
background-color: #383F45;
border-bottom: 1px solid #53565B;
height:32px;
max-height:32px;
padding-left:15px;
}
.header-bottom {
background-color: #46494E;
border-bottom: 1px solid #272A2F;
height:43px;
max-height:43px;
}
.header-line {
background-color: #C82E2E;
border-bottom: 1px solid #272A2F;
max-height:3px;
height:3px;
}
.header-panel {
height: 80px;
min-height: 80px;
width: 100%;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

View file

@ -0,0 +1,7 @@
parent=keycloak
import=common/rh-sso
styles=node_modules/rcue/dist/css/rcue.min.css node_modules/rcue/dist/css/rcue-additions.min.css css/welcome.css css/welcome-rhsso.css
documentationUrl=https://access.redhat.com/documentation/en/red-hat-single-sign-on/
displayCommunityLinks=false

View file

@ -20,94 +20,113 @@
~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
<html>
<head>
<title>Welcome to Keycloak</title>
<title>Welcome to ${productName}</title>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="robots" content="noindex, nofollow">
<link rel="shortcut icon" href="welcome-content/favicon.ico" type="image/x-icon">
<link rel="StyleSheet" href="welcome-content/keycloak.css" type="text/css">
<style>
label {
display: inline-block;
width: 200px;
text-align: right;
margin-right: 10px;
}
button {
margin-left: 215px;
}
form {
background-color: #eee;
border: 1px solid #666;
padding-bottom: 1em;
}
.error {
color: #a30000;
}
</style>
<#if properties.styles?has_content>
<#list properties.styles?split(' ') as style>
<link href="${resourcesPath}/${style}" rel="stylesheet" />
</#list>
</#if>
</head>
<body>
<div class="wrapper">
<div class="content">
<div class="logo">
<img src="welcome-content/keycloak_logo.png" alt="Keycloak" border="0" />
</div>
<h1>Welcome to Keycloak</h1>
<#if successMessage?has_content>
<p>${successMessage}</p>
<#elseif errorMessage?has_content>
<p class="error">${errorMessage}</p>
<#elseif bootstrap>
<#if localUser>
<p>Please create an initial admin user to get started.</p>
<#else>
<p>
You need local access to create the initial admin user. Open <a href="http://localhost:8080/auth">http://localhost:8080/auth</a>
or use the add-user-keycloak script.
</p>
<div class="container-fluid">
<div class="row">
<div class="col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-8 col-lg-offset-2">
<div class="welcome-header">
<img src="${resourcesPath}/logo.png" alt="${productName}" border="0" />
<h1>Welcome to <strong>${productName}</strong></h1>
</div>
<div class="row">
<div class="col-xs-12 col-sm-4">
<div class="card-pf h-l">
<#if successMessage?has_content>
<p class="alert success">${successMessage}</p>
<#elseif errorMessage?has_content>
<p class="alert error">${errorMessage}</p>
<h3><img src="welcome-content/user.png">Administration Console</h3>
<#elseif bootstrap>
<#if localUser>
<h3><img src="welcome-content/user.png">Administration Console</h3>
<p>Please create an initial admin user to get started.</p>
<#else>
<p class="welcome-message">
<img src="welcome-content/alert.png">You need local access to create the initial admin user. <br><br>Open <a href="http://localhost:8080/auth">http://localhost:8080/auth</a>
<br>or use the add-user-keycloak script.
</p>
</#if>
</#if>
<#if bootstrap && localUser>
<form method="post" class="welcome-form">
<p>
<label for="username">Username</label>
<input id="username" name="username" />
</p>
<p>
<label for="password">Password</label>
<input id="password" name="password" type="password" />
</p>
<p>
<label for="passwordConfirmation">Password confirmation</label>
<input id="passwordConfirmation" name="passwordConfirmation" type="password" />
</p>
<input id="stateChecker" name="stateChecker" type="hidden" value="${stateChecker}" />
<button id="create-button" type="submit" class="btn btn-primary">Create</button>
</form>
</#if>
<div class="welcome-primary-link">
<h3><a href="admin/"><img src="welcome-content/user.png">Administration Console <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
<div class="description">
Centrally manage all aspects of the KeyCloak server
</div>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="card-pf h-l">
<h3><a href="${properties.documentationUrl}"><img class="doc-img" src="welcome-content/admin-console.png">Documentation <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
<div class="description">
User Guide, Admin REST API and Javadocs
</div>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<#if properties.displayCommunityLinks = "true">
<div class="card-pf h-m">
<h3><a href="http://www.keycloak.org"><img src="welcome-content/keycloak-project.png">Keycloak Project <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
</div>
<div class="card-pf h-m">
<h3><a href="https://lists.jboss.org/mailman/listinfo/keycloak-user"><img src="welcome-content/mail.png">Mailing List <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
</div>
<div class="card-pf h-m">
<h3><a href="https://issues.jboss.org/browse/KEYCLOAK"><img src="welcome-content/bug.png">Report an issue <i class="fa fa-angle-right link" aria-hidden="true"></i></a></h3>
</div>
</#if>
<#if bootstrap && localUser>
<form method="post">
<p>
<label for="username">Username</label>
<input id="username" name="username" />
</p>
<p>
<label for="password">Password</label>
<input id="password" name="password" type="password" />
</p>
<p>
<label for="passwordConfirmation">Password confirmation</label>
<input id="passwordConfirmation" name="passwordConfirmation" type="password" />
</p>
<input id="stateChecker" name="stateChecker" type="hidden" value="${stateChecker}" />
<button id="create-button" type="submit">Create</button>
</form>
</div>
</div>
<div class='footer'>
<#if properties.displayCommunityLinks = "true">
<a href="http://www.jboss.org"><img src="welcome-content/jboss_community.png" alt="JBoss and JBoss Community"></a>
</#if>
<p><a href="http://www.keycloak.org/docs">Documentation</a> | <a href="admin/">Administration Console</a> </p>
<p><a href="http://www.keycloak.org">Keycloak Project</a> |
<a href="https://lists.jboss.org/mailman/listinfo/keycloak-user">Mailing List</a> |
<a href="https://issues.jboss.org/browse/KEYCLOAK">Report an issue</a></p>
<p class="logos"><a href="http://www.jboss.org"><img src="welcome-content/jboss_community.png" alt="JBoss and JBoss Community" width="254" height="31" border="0"></a></p>
</div>
</div>
</div>
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 712 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -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;
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1,69 +0,0 @@
/*
~ JBoss, Home of Professional Open Source.
~ Copyright (c) 2011, Red Hat, Inc., and individual contributors
~ as indicated by the @author tags. See the copyright.txt file in the
~ distribution for a full listing of individual contributors.
~
~ This is free software; you can redistribute it and/or modify it
~ under the terms of the GNU Lesser General Public License as
~ published by the Free Software Foundation; either version 2.1 of
~ the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this software; if not, write to the Free
~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
body {
/*background: url(bkg.gif) repeat-x;*/
color: #5B5B5B;
font-family: "Lucida Sans Unicode", "Lucida Grande", Geneva, Verdana, Arial, sans-serif;
margin-top: 100px;
text-align: center;
}
.wrapper {
margin-left: auto;
margin-right: auto;
width: 50em;
text-align: left;
}
a {
text-decoration: none;
color: #008aaa;
}
h1 {
padding-top: 20px;
color: #008aaa;
}
a:hover {
text-decoration: underline;
color: #33c6e9;
}
.content {
margin: 0;
padding: 0;
}
.dualbrand {
padding-top: 20px;
}
.wildfly {
float:left;
margin-left: 10px;
}
.logo{
margin-bottom: 10px;
}
.note {
font-size: 8pt;
color: #aaaaaa;
}
p.logos {
padding-top: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -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