make easier for softlinks

This commit is contained in:
Bill Burke 2013-08-05 09:51:02 -04:00
parent 37348fce3a
commit 7dd876bcda
21 changed files with 92 additions and 858 deletions

View file

@ -1,592 +0,0 @@
/* General styles */
body {
font-family: "Open Sans", Helvetica, sans-serif;
font-size: 62.5%;
color: #2d2d2d;
}
.hiddenElement {display: none;}
li {list-style: none;}
.left {float: left;}
.right {float: right;}
/* Top */
#top {
background-color: #2393c8, transparent; /* SVG */
background-image: linear-gradient(rgba(0,0,0,0) 91%, rgba(0,0,0,0.1) 100%), url(img/banner-bg-lines.png), url(img/banner-bg-gradient.png), url(img/banner-bg.png) ;
background-image: -webkit-linear-gradient(rgba(0,0,0,0) 91%, rgba(0,0,0,0.1) 100%), url(img/banner-bg-lines.png), url(img/banner-bg-gradient.png), url(img/banner-bg.png) ;
background-image: -moz-linear-gradient(rgba(0,0,0,0) 91%, rgba(0,0,0,0.2) 100%), url(img/banner-bg-lines.png), url(img/banner-bg-gradient.png), url(img/banner-bg.png) ;
background-repeat: no-repeat, repeat-x, no-repeat, repeat;
background-position: left top, center center, center 16px, left top;
border-top: 5px solid rgba(0,0,0,0.4);
padding-top: 1em;
padding-bottom: 1.7em;
}
header nav .left {
margin-left: 47em;
}
header nav li {float: left;}
header nav li+li {margin-left: 3em;}
header nav a {
font-size: 1.6em;
color: #fff;
font-weight: 100;
margin-top: 0.6em;
display: block;
cursor: pointer;
}
header nav a:hover,
header nav a:focus {color: #fff;}
header li.active a {color: #f9eed0;}
header form {position: relative;}
header label {
position: absolute;
left: 0.6em;
top: 0.4em;
}
header #searchEvents {
border: none;
border-radius: 0.3125em;
font-size: 1.6em;
font-family: "Lucida Grande", Lucida, sans-serif;
margin-bottom: 2em;
padding: 0.4375em 0.4375em 0.4375em 2em;
height: 1.5em;
width: 11em;
box-shadow: inset 0 2px 5px rgba(0,0,0,0.2);
width: 14.4375em;
}
header #searchEvents:focus {
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset, 0 0 8px rgba(255, 255, 255, 0.75);
outline: 0 none;
}
input[type="search"] {color: #2D2D2D;}
header i.icon-search {
color: #b2afaf;
font-size: 1.6em;
line-height: 1.75em;
}
#banner h1 {
margin-top: 0.7em;
float: left;
}
h1 a {
display: inline-block;
text-indent: -99999em;
background: url(img/logo.png) no-repeat left top; /* SVG */
opacity: 0.95;
}
#banner h1 a {
width: 35.3em;
height: 14.3em;
}
#banner h2 {
color: #fff;
display: inline-block;
font-size: 3.2em;
font-weight: 100;
margin-left: 3.625em;
margin-top: 1.25em;
opacity: 0.5;
text-shadow: 0 0 2px rgba(0, 0, 0, 0.15);
}
#top.loggedIn {padding-bottom: 1.3em;}
.loggedIn nav .left {margin-left: 0;}
.loggedIn #searchEvents {
margin-bottom: 0;
}
.loggedIn h1 {
position: absolute;
top: 0.8em;
left: 50%;
margin-left: -9.65em;
}
.loggedIn h1 a {
width: 12.0625em;
height: 4.875em;
background-size: contain;
margin-top: 0;
}
.userName {
cursor: pointer;
}
.userName a img {
vertical-align: middle;
margin-right: 0.5em;
width: 1.25em;
}
/* Content - general */
.container {width: 120em;}
input[type="file"] {
height: 1.92857142857143em;
line-height: 1.92857142857143em;
}
div#loading {
background-color: rgba(255,255,255,0.5);
color: #868686;
font-size: 2em;
padding: 10px;
position: fixed;
left: 10px;
bottom: 10px;
}
div#error {
background-color: rgba(255,255,255,0.5);
color: #860000;
font-size: 2em;
padding: 10px;
position: fixed;
left: 10px;
bottom: 10px;
}
/*
.btn-primary {
background-image: linear-gradient(#64b1e2 0%, #19719a 100%);
border-color: #1c6f99;
background-color: #499bca;
}
.btn-primary:hover {
border-color: #136289;
background-color: #3180ac;
background-image: linear-gradient(#1e8dc3 0%, #19719a 100%);
}
*/
/* Home - page */
section {
clear: both;
padding-top: 3.6em;
}
#content hgroup {
background: url(img/heading-bg.png) repeat-x left 0.3em; /* Test with Retina */
width: 100%;
margin-bottom: 3em;
}
#content hgroup h3 {
font-size: 2.6em;
text-transform: uppercase;
color: #868686;
margin-left: 0.76923076923077em;
padding-left: 0.38461538461538em;
padding-right: 0.38461538461538em;
background-color: #fff;
float: left;
padding-top: 0.2em;
}
#events-filter {
float: right;
margin-right: 2em;
padding-left: 1em;
background-color: #fff;
}
#events-filter legend {display: none;}
#events-filter label {
font-size: 1.6em;
color: #868686;
}
#events-filter label,
#events-filter .selectors {display: inline-block;}
#events-filter .selectors {
margin-left: 1em;
margin-right: 1em;
position: relative;
}
#events-filter .selected {
font-size: 1.5em;
color: #2d2d2d;
background: linear-gradient(#fff, #ededed);
background: -moz-linear-gradient(#fff, #ededed);
background: -webkit-linear-gradient(#fff, #ededed);
border: 1px solid #d6d6d6;
border-radius: 0.33333333333333em;
padding-left: 0.8em;
padding-right: 2.93333333333333em;
line-height: 2.26666666666667em;
display: inline-block;
font-family: "Lucida Grande", Lucida, sans-serif;
}
#events-filter .selected:hover {
text-decoration: none;
}
#events-filter .selectors i {
position: absolute;
font-size: 1.6em;
right: 0.625em;
top: 10px;
color: #2d2d2d;
}
/* List of events */
div.event-wrapper {
float: left;
width: 48.333333333333%;
margin-bottom: 3.5em;
}
div.event-wrapper:nth-child(even) {
clear: left;
margin-right: 2.5%;
}
.event .left {
width: 37.241379310345%;
position: relative;
}
.event:nth-child(odd) .left {
margin-left: 1.724137931034%;
}
.event img {
width: 20em;
height: 15em;
}
span.date {
font-weight: bold;
font-size: 1.8em;
color: #696969;
display: inline-block;
line-height: 1.66666666666667em;
text-shadow: 0px 1px 0px #fff;
background-color: rgba(227,226,223,0.95);
padding-left: 1.11111111111111em;
padding-bottom: 0.16666666666667em;
min-width: 6em;
position: absolute;
z-index: 10;
}
span.dateShadow {
border-color: #b2b0ad transparent transparent transparent;
border-style: solid;
border-width: 3em;
position: absolute;
top: 3.3em;
}
.mask {
width: 20em;
height: 15em;
position: relative;
overflow: hidden;
top: 1.6em;
left: 1.5em;
border-left: 1px solid #fff;
}
span.locality {
background-color: rgba(0,0,0,0.7);
line-height: 1.66666666666667em;
font-size: 1.8em;
color: #fff;
padding-right: 0.55555555555556em;
padding-left: 1.11111111111111em;
display: block;
position: absolute;
top: 7.44444444444444em;
right: 0.05555555555556em;
}
span.locality a {color: #fff;}
.event .right {width: 57.586206896552%;}
.event h4 a {
margin-top: 0.4em;
margin-bottom: 0.53333333333333em;
color: #2d2d2d;
display: inline-block;
font-size: 3em;
}
.event h4 a.smaller {
font-size: 2.5em;
}
#content .event p {
color: #a4a4a4;
font-family: "Lucida Grande", Lucida, sans-serif;
font-size: 1.6em;
line-height: 1.25em;
margin-bottom: 1em;
}
.attending {
font-size: 1.4em;
color: #2D2D2D;
line-height: 1.71428571428571em;
display: inline-block;
margin-left: 0.8em;
}
/* Tags */
section+section {
padding-top: 2.6em;
}
nav.tags li {
float: left;
margin-right: 0.5em;
margin-bottom: 0.5em;
position: relative;
background: url(img/tag-neb.svg) no-repeat left top;
}
nav.tags a {
font-family: "Lucida Grande", Lucida, sans-serif;
font-size: 1.2em;
font-weight: bold;
color: #909090;
background-color: #f4f4f4;
border: 1px solid #d6d6d6;
border-left: none;
line-height: 1.66666666666667em;
display: inline-block;
padding-right: 0.66666666666667em;
padding-bottom: 0.16666666666667em;
padding-left: 0.5em;
margin-left: 1em;
border-radius: 0 0.16666666666667em 0.16666666666667em 0;
}
nav.tags a span {
font-weight: normal;
color: #acacac;
padding-left: 0.3em;
}
/* Popular events */
.popularEvents {
position: relative;
width: 120em;
}
.popularEvents div {
width: 96.666666666667%;
margin-left: 1.666666666667%;
margin-right: 1.666666666667%;
/*
width: 103em;
margin-left: 8.5em;
*/
}
.popularEvents article {
position: relative;
width: 22.413793103448%;
margin-right: 3.448275862069%;
float: right;
/*
margin-right: 5.5em;
width: 21.6em;
*/
}
.popularEvents article:nth-child(4) {margin-right: 0;}
.popularEvents span.locality {
right: 2.55555555555556em;
}
.popularEvents h4 {
margin-top: 1.5em;
margin-left: 1.6em;
}
.popularEvents nav a {
width: 3.8em;
height: 4.6em;
background: url(img/carousel-nav.png); /* SVG */
background-repeat: no-repeat;
text-indent: -99999em;
position: absolute;
top: 8.2em;
}
.popularEvents a.prev {
background-position: left top;
left: 0;
}
.popularEvents a.next {
background-position: right top;
right: 0;
}
a.prev:hover {background-position: left -4.6em;}
a.next:hover {background-position: right -4.6em;}
a.prev.disabled {background-position: left bottom;}
a.next.disabled {background-position: right bottom;}
a.prev.disabled,
a.next.disabled {cursor: default;}
/* Create event - Page */
h2 {
font-size: 3em;
margin-bottom: 1.5em;
}
.container.register {
margin-left: 30em;
width: 60em;
margin-top: 4em;
}
/* Footer */
footer {
margin-top: 2em;
margin-bottom: 4em;
}
footer p {
text-align: center;
color: #c3c2c2;
font-size: 1.3em;
}
/* Clearfix */
.clearfix:after {
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.clearfix {
display: inline-block;
}
/* General styles [PROVISIONAL] */
.eventDetail h1,
.eventDetail h2,
.eventDetail h3 {
line-height: 40px;
}
.eventDetail h1 {
font-size: 38.5px;
margin-top: 30px;
}
.eventDetail h2 {
font-size: 31.5px;
margin-top: 20px;
}
.eventDetail h3 {
font-size: 25px;
margin-top: 20px;
}
.eventDetail p, .register p {
margin: 10px 0;
font-size: 14px;
line-height: 18px;
}
.eventDetail p strong {
font-weight: bold;
}
.eventDetail img {
margin: 10px 10px 10px 0;
}
.eventDetail ul li {
margin-top: 10px;
font-size: 14px;
line-height: 18px;
display: inline-block;
}
.register {
margin-top: 30px;
}
.register label {
font-size: 16px;
}
#facebook-login-box {
display: inline-block;
width: 120px;
height: 120px;
}
#twitter-login-box {
display: inline-block;
width: 120px;
heigth: 120px;
padding-left: 0.5em;
}

View file

@ -1,48 +0,0 @@
/* http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,128 +0,0 @@
<%@ page import="org.keycloak.services.models.*,org.keycloak.services.resources.*,javax.ws.rs.core.*" language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
RealmModel realm = (RealmModel)request.getAttribute(RealmModel.class.getName());
String username = (String)request.getAttribute("username");
%>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Keycloak Realm Login Page</title>
<link rel="shortcut icon" type="image/x-icon" href="<%=application.getContextPath()%>/img/favicon.ico">
<link href="<%=application.getContextPath()%>/lib/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/lib/font-awesome/css/font-awesome.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/css/reset.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/css/base.css" rel="stylesheet">
</head>
<body>
<div class="modal-body">
<%
String googleLogin = request.getAttribute("KEYCLOAK_SOCIAL_LOGIN").toString();
googleLogin += "?provider_id=google";
googleLogin += "&client_id=" + request.getAttribute("client_id");
if (request.getAttribute("scope") != null) {
googleLogin += "&scope=" + request.getAttribute("scope");
}
if (request.getAttribute("state") != null) {
googleLogin += "&state=" + request.getAttribute("state");
}
googleLogin += "&redirect_uri=" + request.getAttribute("redirect_uri");
%>
<a href="<%=googleLogin%>">
Login with Google
</a>
<%
String twitterLogin = request.getAttribute("KEYCLOAK_SOCIAL_LOGIN").toString();
twitterLogin = twitterLogin.replace("://localhost", "://127.0.0.1");
twitterLogin += "?provider_id=twitter";
twitterLogin += "&client_id=" + request.getAttribute("client_id");
if (request.getAttribute("scope") != null) {
twitterLogin += "&scope=" + request.getAttribute("scope");
}
if (request.getAttribute("state") != null) {
twitterLogin += "&state=" + request.getAttribute("state");
}
twitterLogin += "&redirect_uri=" + request.getAttribute("redirect_uri");
%>
<a href="<%=twitterLogin%>">
Login with Twitter
</a>
<hr/>
<% String errorMessage = (String)request.getAttribute("KEYCLOAK_LOGIN_ERROR_MESSAGE");
if (errorMessage != null) { %>
<div id="error-message" class="alert alert-block alert-error" ><%=errorMessage%></div>
<% } %>
<form class="form-horizontal" name="loginForm" action="<%=request.getAttribute("KEYCLOAK_LOGIN_ACTION")%>" method="POST">
<div class="control-group">
<label class="control-label">User Name</label>
<div class="controls">
<% if (username != null) { %>
<input type="text" name="username" value="<%=username%>">
<% } else { %>
<input type="text" name="username" placeholder="User Name">
<% } %>
</div>
</div>
<%
for (RequiredCredentialModel credential : realm.getRequiredCredentials()) {
%>
<div class="control-group">
<%
if (!credential.isInput()) continue;
%>
<label class="control-label" for="<%=credential.getType()%>"><%=credential.getType()%></label>
<%
if (credential.isSecret()) {
%>
<div class="controls">
<input type="password" name="<%=credential.getType()%>" placeholder="<%=credential.getType()%>">
</div>
<%
} else {
%>
<div class="controls">
<input type="text" name="<%=credential.getType()%>" placeholder="<%=credential.getType()%>">
</div>
<%
}
%>
</div>
<%
}
%>
<input type="hidden" name="client_id" value="<%=request.getAttribute("client_id")%>">");
<%
String scopeParam = (String)request.getAttribute("scope");
if (scopeParam != null) { %>
<input type="hidden" name="scope" value="<%=scopeParam%>">
<% } %>
<%
String stateParam = (String)request.getAttribute("state");
if (stateParam != null) { %>
<input type="hidden" name="state" value="<%=stateParam%>">
<% } %>
<input type="hidden" name="redirect_uri" value="<%=request.getAttribute("redirect_uri")%>">
<div class="control-group">
<div class="controls">
<button class="btn btn-primary">Login</button>
</div>
</div>
</form>
</div>
<footer>
<p>Powered By Keycloak</p>
</footer>
</body>
</html>

View file

@ -1,82 +0,0 @@
<%@ page import="org.keycloak.services.models.*,org.keycloak.services.resources.*,javax.ws.rs.core.*,java.util.*" language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
RealmModel realm = (RealmModel)request.getAttribute(RealmModel.class.getName());
String username = (String)request.getAttribute("username");
%>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Keycloak</title>
<link rel="shortcut icon" type="image/x-icon" href="<%=application.getContextPath()%>/img/favicon.ico">
<link href="<%=application.getContextPath()%>/lib/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/lib/font-awesome/css/font-awesome.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/css/reset.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/css/base.css" rel="stylesheet">
</head>
<body>
<%
UserModel client = (UserModel)request.getAttribute("client");
List<RoleModel> realmRolesRequested = (List<RoleModel>)request.getAttribute("realmRolesRequested");
MultivaluedMap<String, RoleModel> resourceRolesRequested = (MultivaluedMap<String, RoleModel>)request.getAttribute("resourceRolesRequested");
%>
<h1>Grant request for: <%=client.getLoginName()%></h1>
<div class="modal-body">
<p>This app would like to:</p>
<hr/>
<%
if (realmRolesRequested.size() > 0) {
%> <ul> <%
for (RoleModel role : realmRolesRequested) {
String desc = "Have " + role.getName() + " privileges.";
String roleDesc = role.getDescription();
if (roleDesc != null) {
desc = roleDesc;
}
%>
<li><%=desc%></li>
<%
}
%> </ul> <%
}
for (String resource : resourceRolesRequested.keySet()) {
List<RoleModel> roles = resourceRolesRequested.get(resource);
out.println("<i>For application " + resource + ":</i> ");
out.println("<ul>");
for (RoleModel role : roles) {
String desc = "Have " + role.getName() + " privileges.";
String roleDesc = role.getDescription();
if (roleDesc != null) {
desc = roleDesc;
}
out.println("<li>" + desc + "</li>");
}
out.println("</ul>");
}
%>
<hr/>
<form class="form-horizontal" name="oauthGrant" action="<%=request.getAttribute("action")%>" method="POST">
<input type="hidden" name="code" value="<%=request.getAttribute("code")%>">
<div class="control-group">
<div class="controls">
<input type="submit" name="accept" class="btn btn-primary" value="Accept">
<input type="submit" name="cancel" class="btn btn-primary" value="Cancel">
</div>
</div>
</form>
</div>
<footer>
<p>Powered By Keycloak</p>
</body>
</html>

View file

@ -0,0 +1,86 @@
<%@ page import="org.keycloak.services.models.*,org.keycloak.services.resources.*,javax.ws.rs.core.*,java.util.*" language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%
RealmModel realm = (RealmModel)request.getAttribute(RealmModel.class.getName());
String username = (String)request.getAttribute("username");
%>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Keycloak</title>
<link rel="stylesheet" href="<%=application.getContextPath()%>/saas/css/reset.css">
<link rel="stylesheet" type="text/css" href="<%=application.getContextPath()%>/saas/css/base.css">
<link rel="stylesheet" type="text/css" href="<%=application.getContextPath()%>/saas/css/forms.css">
<link rel="stylesheet" type="text/css" href="<%=application.getContextPath()%>/saas/css/zocial/zocial.css">
<link rel="stylesheet" type="text/css" href="<%=application.getContextPath()%>/saas/css/login-screen.css">
<link rel="stylesheet" type="text/css" href='http://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic'>
</head>
<%
UserModel client = (UserModel)request.getAttribute("client");
List<RoleModel> realmRolesRequested = (List<RoleModel>)request.getAttribute("realmRolesRequested");
MultivaluedMap<String, RoleModel> resourceRolesRequested = (MultivaluedMap<String, RoleModel>)request.getAttribute("resourceRolesRequested");
%>
<body class="rcue-login-register register">
<h1><a href="#" title="Go to the home page"><img src="<%=application.getContextPath()%>/saas/img/red-hat-logo.png" alt="Red Hat logo"></a></h1>
<div class="content">
<h2>Grant request for <strong><%=client.getLoginName()%></strong></h2>
<div class="background-area">
<div class="form-area social clearfix">
<section class="info-area">
<p>This app would like to:</p>
<hr/>
<ul>
<%
if (realmRolesRequested.size() > 0) {
for (RoleModel role : realmRolesRequested) {
%> <li> <%
String desc = "Have " + role.getName() + " privileges.";
String roleDesc = role.getDescription();
if (roleDesc != null) {
desc = roleDesc;
}
%>
<p><%=desc%></p>
</li>
<%
}
}
%>
</ul>
<%
for (String resource : resourceRolesRequested.keySet()) { %>
<hr/>
<%
List<RoleModel> roles = resourceRolesRequested.get(resource);
out.println("<p>For application " + resource + ":</p> ");
out.println("<ul>");
for (RoleModel role : roles) {
String desc = "Have " + role.getName() + " privileges.";
String roleDesc = role.getDescription();
if (roleDesc != null) {
desc = roleDesc;
}
out.println("<li>" + desc + "</li>");
}
%> </ul> <%
}
%>
<form action="<%=request.getAttribute("action")%>" method="POST">
<input type="hidden" name="code" value="<%=request.getAttribute("code")%>">
<input type="submit" name="accept" value="Accept">
<input type="submit" name="cancel" value="Cancel">
</form>
</section>
</div>
</div>
</div>
<footer>
<p>Powered By Keycloak</p>
</footer>
</body>
</html>

View file

@ -7,12 +7,10 @@
<meta charset="utf-8">
<title>Keycloak Security Failure</title>
<link rel="shortcut icon" type="image/x-icon" href="<%=application.getContextPath()%>/img/favicon.ico">
<link href="<%=application.getContextPath()%>/lib/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/lib/font-awesome/css/font-awesome.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/css/reset.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/css/base.css" rel="stylesheet">
<!-- <link href="<%=application.getContextPath()%>/lib/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/lib/font-awesome/css/font-awesome.css" rel="stylesheet"> -->
<link href="<%=application.getContextPath()%>/saas/css/reset.css" rel="stylesheet">
<link href="<%=application.getContextPath()%>/saas/css/base.css" rel="stylesheet">
</head>
<body>

View file

@ -29,9 +29,9 @@ public abstract class AbstractLoginService {
@Context
HttpResponse response;
protected String securityFailurePath = "/securityFailure.jsp";
protected String securityFailurePath = "/saas/securityFailure.jsp";
protected String loginFormPath = "/sdk/login.xhtml";
protected String oauthFormPath = "/oauthGrantForm.jsp";
protected String oauthFormPath = "/saas/oauthGrantForm.jsp";
protected RealmModel realm;
protected TokenManager tokenManager;