Merge pull request #628 from patriot1burke/master

relative uri problem
This commit is contained in:
Bill Burke 2014-08-14 12:00:03 -04:00
commit 28fcdf0b8f
34 changed files with 397 additions and 383 deletions

View file

@ -1,4 +1,4 @@
<section> <section id="jboss-adapter">
<title>JBoss/Wildfly Adapter</title> <title>JBoss/Wildfly Adapter</title>
<para> <para>
To be able to secure WAR apps deployed on JBoss AS 7.1.1, JBoss EAP 6.x, or Wildfly, you must install and To be able to secure WAR apps deployed on JBoss AS 7.1.1, JBoss EAP 6.x, or Wildfly, you must install and
@ -7,7 +7,7 @@
to crack open your WARs at all and can apply Keycloak via the Keycloak Subsystem configuration in standalone.xml. to crack open your WARs at all and can apply Keycloak via the Keycloak Subsystem configuration in standalone.xml.
Both methods are described in this section. Both methods are described in this section.
</para> </para>
<section> <section id="jboss-adapter-installation">
<title>Adapter Installation</title> <title>Adapter Installation</title>
<para> <para>
This is a adapter zip file for AS7, EAP, and Wildfly in the <literal>adapters/</literal> directory in the Keycloak This is a adapter zip file for AS7, EAP, and Wildfly in the <literal>adapters/</literal> directory in the Keycloak

View file

@ -106,6 +106,11 @@ keycloak-war-dist-all-1.0-rc-1-SNAPSHOT/
$ cp -r configuration $JBOSS_HOME/standalone $ cp -r configuration $JBOSS_HOME/standalone
</programlisting> </programlisting>
</para> </para>
<para>
After these steps you should also <link linkend='jboss-adapter-installation'>install the client adapter</link>
as this may contain modules the server needs (like Bouncycastle). You will also need to install the adapter
to run the examples on the same server.
</para>
<para> <para>
After booting up the JBoss or Wildfly distro, you can then make sure it is installed properly After booting up the JBoss or Wildfly distro, you can then make sure it is installed properly
by logging into the admin console at<ulink by logging into the admin console at<ulink

View file

@ -12,7 +12,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2 data-ng-hide="create"><span>{{application.name}}</span> Allowed Claims <span tooltip-placement="right" tooltip="Allows you to restrict which claim information is stored in the access token generated for the application." class="pficon pficon-help"></span></h2> <h2 data-ng-hide="create"><span>{{application.name}}</span> Allowed Claims <span tooltip-placement="right" tooltip="Allows you to restrict which claim information is stored in the access token generated for the application." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="claimForm"> <form class="form-horizontal" name="claimForm">
<div data-ng-include data-src="'partials/claims.html'"></div> <div data-ng-include data-src="'partials/claims.html'"></div>
<div class="pull-right form-actions" data-ng-show="access.manageApplications"> <div class="pull-right form-actions" data-ng-show="access.manageApplications">

View file

@ -35,7 +35,7 @@
<div class="col-sm-6"> <div class="col-sm-6">
<input ng-model="application.enabled" name="enabled" id="enabled" onoffswitch /> <input ng-model="application.enabled" name="enabled" id="enabled" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Disabled applications cannot initiate a login or have obtain access tokens." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Disabled applications cannot initiate a login or have obtain access tokens." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="accessType">Access Type</label> <label class="col-sm-2 control-label" for="accessType">Access Type</label>
@ -48,7 +48,7 @@
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="'Confidential' applications require a secret to initiate login protocol. 'Public' clients do not require a secret. 'Bearer-only' applications are web services that never initiate a login." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="'Confidential' applications require a secret to initiate login protocol. 'Public' clients do not require a secret. 'Bearer-only' applications are web services that never initiate a login." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-show="!application.bearerOnly"> <div class="form-group" data-ng-show="!application.bearerOnly">
<label class="col-sm-2 control-label" for="newRedirectUri">Redirect URI <span class="required" data-ng-show="create">*</span></label> <label class="col-sm-2 control-label" for="newRedirectUri">Redirect URI <span class="required" data-ng-show="create">*</span></label>
@ -72,7 +72,7 @@
</span> </span>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Valid URI pattern a browser can redirect to after a successful login or logout. Simple wildcards are allowed i.e. 'http://example.com/*'. Relative path can be specified too i.e. /my/relative/path/*. Relative paths will generate a redirect URI using the request's host and port." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Valid URI pattern a browser can redirect to after a successful login or logout. Simple wildcards are allowed i.e. 'http://example.com/*'. Relative path can be specified too i.e. /my/relative/path/*. Relative paths will generate a redirect URI using the request's host and port." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-show="!application.bearerOnly && !create"> <div class="form-group" data-ng-show="!application.bearerOnly && !create">
<label class="col-sm-2 control-label" for="baseUrl">Base URL</label> <label class="col-sm-2 control-label" for="baseUrl">Base URL</label>
@ -80,7 +80,7 @@
<input class="form-control" type="text" name="baseUrl" id="baseUrl" <input class="form-control" type="text" name="baseUrl" id="baseUrl"
data-ng-model="application.baseUrl"> data-ng-model="application.baseUrl">
</div> </div>
<span tooltip-placement="right" tooltip="Optional URL to use when linking to this application. i.e. the welcome page." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Optional URL to use when linking to this application. i.e. the welcome page." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-hide="create"> <div class="form-group" data-ng-hide="create">
<label class="col-sm-2 control-label" for="adminUrl">Admin URL</label> <label class="col-sm-2 control-label" for="adminUrl">Admin URL</label>
@ -88,7 +88,7 @@
<input class="form-control" type="text" name="adminUrl" id="adminUrl" <input class="form-control" type="text" name="adminUrl" id="adminUrl"
data-ng-model="application.adminUrl"> data-ng-model="application.adminUrl">
</div> </div>
<span tooltip-placement="right" tooltip="URL to the admin interface of the application. Set this if the application supports the adapter REST API. This REST API allows the auth server to push revocation policies and other adminstrative tasks. Usually this is set to the base URL of the application." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="URL to the admin interface of the application. Set this if the application supports the adapter REST API. This REST API allows the auth server to push revocation policies and other adminstrative tasks. Usually this is set to the base URL of the application." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-show="!application.bearerOnly && !create"> <div class="form-group" data-ng-show="!application.bearerOnly && !create">
<label class="col-sm-2 control-label" for="newWebOrigin">Web Origin</label> <label class="col-sm-2 control-label" for="newWebOrigin">Web Origin</label>
@ -112,7 +112,7 @@
</span> </span>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Allowed CORS origins. Only useful if the client adapter has CORS processing enabled." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Allowed CORS origins. Only useful if the client adapter has CORS processing enabled." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>

View file

@ -14,7 +14,7 @@
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{application.name}}</span> Installation <span tooltip-placement="right" tooltip="Helper utility for generating various client adapter configuration formats which you can download or cut and paste to configure your client applications." class="pficon pficon-help"></span></h2> <h2><span>{{application.name}}</span> Installation <span tooltip-placement="right" tooltip="Helper utility for generating various client adapter configuration formats which you can download or cut and paste to configure your client applications." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="realmForm" novalidate> <form class="form-horizontal" name="realmForm" novalidate>
<fieldset class="border-top"> <fieldset class="border-top">
<div class="form-group input-select"> <div class="form-group input-select">

View file

@ -5,7 +5,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{realm.realm}}</span> Applications <span tooltip-placement="right" tooltip="Applications are trusted browser apps and web services in a realm. These applications can request a login. You can also define application specific roles." class="pficon pficon-help"></span></h2> <h2><span>{{realm.realm}}</span> Applications <span tooltip-placement="right" tooltip="Applications are trusted browser apps and web services in a realm. These applications can request a login. You can also define application specific roles." class="fa fa-info-circle"></span></h2>
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
<thead> <thead>
<tr> <tr>

View file

@ -20,7 +20,7 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-disabled="true" class="form-control" type="text" id="notBefore" name="notBefore" data-ng-model="notBefore" autofocus> <input ng-disabled="true" class="form-control" type="text" id="notBefore" name="notBefore" data-ng-model="notBefore" autofocus>
</div> </div>
<span tooltip-placement="right" tooltip="Revoke any tokens issued before this date for this application." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Revoke any tokens issued before this date for this application." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageApplications"> <div class="pull-right form-actions" data-ng-show="access.manageApplications">

View file

@ -49,7 +49,7 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="compositeSwitch" name="compositeSwitch" id="compositeSwitch" ng-disabled="compositeSwitchDisabled" onoffswitch /> <input ng-model="compositeSwitch" name="compositeSwitch" id="compositeSwitch" ng-disabled="compositeSwitchDisabled" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="When this role is assigned to a user, the user implicitly is assigned every role associated with the composite role." class="pficon pficon-help"></span> </div> <span tooltip-placement="right" tooltip="When this role is assigned to a user, the user implicitly is assigned every role associated with the composite role." class="fa fa-info-circle"></span> </div>
</div> </div>
</fieldset> </fieldset>
@ -58,7 +58,7 @@
<div class="form-group col-sm-10"> <div class="form-group col-sm-10">
<div class="controls changing-selectors"> <div class="controls changing-selectors">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="fa fa-info-circle"></span></label>
<select id="available" class="form-control" multiple size="5" <select id="available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmRoles" ng-model="selectedRealmRoles"
@ -74,7 +74,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned">Associated Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned">Associated Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="fa fa-info-circle"></span></label>
<select id="assigned" class="form-control" multiple size=5 <select id="assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmMappings" ng-model="selectedRealmMappings"
@ -96,14 +96,14 @@
<option value="" selected> Select an Application...</option> <option value="" selected> Select an Application...</option>
</select> </select>
</div> </div>
<span tooltip-placement="right" tooltip="Select an application to view/modify roles associated with this composite." class="pficon pficon-help"></span> </div> <span tooltip-placement="right" tooltip="Select an application to view/modify roles associated with this composite." class="fa fa-info-circle"></span> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group" ng-show="compositeApp"> <div class="form-group" ng-show="compositeApp">
<div class="controls changing-selectors application col-sm-10"> <div class="controls changing-selectors application col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Roles from this application that you can associate to this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Roles from this application that you can associate to this composite role." class="fa fa-info-circle"></span></label>
<select id="available-app" class="form-control" multiple size="5" <select id="available-app" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationRoles" ng-model="selectedApplicationRoles"
@ -119,7 +119,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned-app">Associated Roles <span tooltip-placement="right" tooltip="Application roles associated with this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned-app">Associated Roles <span tooltip-placement="right" tooltip="Application roles associated with this composite role." class="fa fa-info-circle"></span></label>
<select id="assigned-app" class="form-control" multiple size=5 <select id="assigned-app" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationMappings" ng-model="selectedApplicationMappings"

View file

@ -13,7 +13,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{application.name}}</span> Scope Mappings <span tooltip-placement="right" tooltip="Scope mappings allow you to restrict which user role mappings are included within the access token requested by the application." class="pficon pficon-help"></span></h2> <h2><span>{{application.name}}</span> Scope Mappings <span tooltip-placement="right" tooltip="Scope mappings allow you to restrict which user role mappings are included within the access token requested by the application." class="fa fa-info-circle"></span></h2>
<p class="subtitle"></p> <p class="subtitle"></p>
<form class="form-horizontal" name="allowScope" novalidate kc-read-only="!access.manageApplications"> <form class="form-horizontal" name="allowScope" novalidate kc-read-only="!access.manageApplications">
<fieldset class="border-top"> <fieldset class="border-top">
@ -22,18 +22,18 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="application.fullScopeAllowed" ng-click="changeFullScopeAllowed()" name="fullScopeAllowed" id="fullScopeAllowed" onoffswitch /> <input ng-model="application.fullScopeAllowed" ng-click="changeFullScopeAllowed()" name="fullScopeAllowed" id="fullScopeAllowed" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Allows you to disable all restrictions." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Allows you to disable all restrictions." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
</form> </form>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageApplications" data-ng-show="!application.fullScopeAllowed"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageApplications" data-ng-show="!application.fullScopeAllowed">
<fieldset> <fieldset>
<legend><span class="text">Realm Roles</span> <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="pficon pficon-help"></span></legend> <legend><span class="text">Realm Roles</span> <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="fa fa-info-circle"></span></legend>
<div class="form-group col-sm-10"> <div class="form-group col-sm-10">
<div class="controls changing-selectors"> <div class="controls changing-selectors">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles that can be assigned to scope." class="pficon pficon-help"></span></label> <label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles that can be assigned to scope." class="fa fa-info-circle"></span></label>
<select id="available" class="form-control" multiple size="5" <select id="available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmRoles" ng-model="selectedRealmRoles"
@ -49,7 +49,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned">Assigned Roles <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned">Assigned Roles <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="fa fa-info-circle"></span></label>
<select id="assigned" class="form-control" multiple size=5 <select id="assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmMappings" ng-model="selectedRealmMappings"
@ -60,7 +60,7 @@
- -
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="realm-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned realm level roles that may have been inherited from a composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="realm-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned realm level roles that may have been inherited from a composite role." class="fa fa-info-circle"></span></label>
<select id="realm-composite" class="form-control" multiple size=5 <select id="realm-composite" class="form-control" multiple size=5
ng-disabled="true" ng-disabled="true"
ng-model="dummymodel" ng-model="dummymodel"
@ -74,7 +74,7 @@
<fieldset ng-show="applications.length > 0"> <fieldset ng-show="applications.length > 0">
<legend><span class="text">Application Roles</span> </legend> <legend><span class="text">Application Roles</span> </legend>
<div class="form-group input-select"> <div class="form-group input-select">
<label class="col-sm-2 control-label" for="applications">Application</label> <label class="col-sm-2 control-label" for="applications">Application <span tooltip-placement="right" tooltip="Select an application to view or modify additional roles to assign." class="fa fa-info-circle"></span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="input-group"> <div class="input-group">
<div class="select-kc"> <div class="select-kc">
@ -84,12 +84,12 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select an application to view or modify additional roles to assign." class="pficon pficon-help"></span>
</div> </div>
<div class="form-group" ng-show="targetApp"> <div class="form-group" ng-show="targetApp">
<div class="controls changing-selectors col-sm-10"> <div class="controls changing-selectors col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="app-available">Available Roles <span tooltip-placement="right" tooltip="Application roles available to be assigned." class="pficon pficon-help"></span></label> <label class="control-label" for="app-available">Available Roles <span tooltip-placement="right" tooltip="Application roles available to be assigned." class="fa fa-info-circle"></span></label>
<select id="app-available" class="form-control" multiple size="5" <select id="app-available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationRoles" ng-model="selectedApplicationRoles"
@ -105,7 +105,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="app-assigned">Assigned Roles <span tooltip-placement="right" tooltip="Assigned application roles." class="pficon pficon-help"></span></label> <label class="control-label" for="app-assigned">Assigned Roles <span tooltip-placement="right" tooltip="Assigned application roles." class="fa fa-info-circle"></span></label>
<select id="app-assigned" class="form-control" multiple size=5 <select id="app-assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationMappings" ng-model="selectedApplicationMappings"
@ -116,7 +116,7 @@
- -
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="app-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned application roles that may have been inherited from a composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="app-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned application roles that may have been inherited from a composite role." class="fa fa-info-circle"></span></label>
<select id="app-composite" class="form-control" multiple size=5 <select id="app-composite" class="form-control" multiple size=5
ng-disabled="true" ng-disabled="true"
ng-model="dummymodel" ng-model="dummymodel"

View file

@ -12,7 +12,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{application.name}}</span> Sessions <span tooltip-placement="right" tooltip="View active sessions for this application. Allows you to see which users are active and when they logged in." class="pficon pficon-help"></span></h2> <h2><span>{{application.name}}</span> Sessions <span tooltip-placement="right" tooltip="View active sessions for this application. Allows you to see which users are active and when they logged in." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="sessionStats"> <form class="form-horizontal" name="sessionStats">
<fieldset class="border-top"> <fieldset class="border-top">
<div class="form-group"> <div class="form-group">
@ -20,7 +20,7 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" type="text" id="activeSessions" name="activeSessions" data-ng-model="count" ng-disabled="true"> <input class="form-control" type="text" id="activeSessions" name="activeSessions" data-ng-model="count" ng-disabled="true">
</div> </div>
<span tooltip-placement="right" tooltip="Total number of active user sessions for this application." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Total number of active user sessions for this application." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
</form> </form>

View file

@ -6,7 +6,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{realm.realm}}</span> Brute Force Protection <span tooltip-placement="right" tooltip="Seeks to prevent hackers trying to guess passwords. It remembers failures and will lock out users that have too many failutres for a certain amount of time. WARNING: Vulnerable to denail of service attacks see docs for more details." class="pficon pficon-help"></span></h2> <h2><span>{{realm.realm}}</span> Brute Force Protection <span tooltip-placement="right" tooltip="Seeks to prevent hackers trying to guess passwords. It remembers failures and will lock out users that have too many failutres for a certain amount of time. WARNING: Vulnerable to denail of service attacks see docs for more details." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset class="border-top"> <fieldset class="border-top">
<div class="form-group"> <div class="form-group">
@ -22,7 +22,7 @@
<input class="form-control" type="number" min="1" max="31536000" id="failureFactor" name="failureFactor" data-ng-model="realm.failureFactor" autofocus <input class="form-control" type="number" min="1" max="31536000" id="failureFactor" name="failureFactor" data-ng-model="realm.failureFactor" autofocus
required> required>
</div> </div>
<span tooltip-placement="right" tooltip="How many failures before wait is triggered." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="How many failures before wait is triggered." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group input-select" data-ng-show="realm.bruteForceProtected"> <div class="form-group input-select" data-ng-show="realm.bruteForceProtected">
<label class="col-sm-2 control-label" for="waitIncrement">Wait Increment</label> <label class="col-sm-2 control-label" for="waitIncrement">Wait Increment</label>
@ -43,7 +43,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="When failure threshold has been met, how much time should the user be locked out?" class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="When failure threshold has been met, how much time should the user be locked out?" class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-show="realm.bruteForceProtected"> <div class="form-group" data-ng-show="realm.bruteForceProtected">
<label class="col-sm-2 control-label" for="quickLoginCheckMilliSeconds">Quick Login Check Milli Seconds</label> <label class="col-sm-2 control-label" for="quickLoginCheckMilliSeconds">Quick Login Check Milli Seconds</label>
@ -52,7 +52,7 @@
<input class="form-control" type="number" min="1" max="31536000" id="quickLoginCheckMilliSeconds" name="quickLoginCheckMilliSeconds" data-ng-model="realm.quickLoginCheckMilliSeconds" autofocus <input class="form-control" type="number" min="1" max="31536000" id="quickLoginCheckMilliSeconds" name="quickLoginCheckMilliSeconds" data-ng-model="realm.quickLoginCheckMilliSeconds" autofocus
required> required>
</div> </div>
<span tooltip-placement="right" tooltip="If a failure happens concurrently too quickly, lock out the user." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="If a failure happens concurrently too quickly, lock out the user." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group input-select" data-ng-show="realm.bruteForceProtected"> <div class="form-group input-select" data-ng-show="realm.bruteForceProtected">
<label class="col-sm-2 control-label" for="minimumQuickLoginWait">Minimum Quick Login Wait</label> <label class="col-sm-2 control-label" for="minimumQuickLoginWait">Minimum Quick Login Wait</label>
@ -73,7 +73,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="How long to wait after a quick login failure." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="How long to wait after a quick login failure." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group input-select" data-ng-show="realm.bruteForceProtected"> <div class="form-group input-select" data-ng-show="realm.bruteForceProtected">
<label class="col-sm-2 control-label" for="maxFailureWait">Max Wait</label> <label class="col-sm-2 control-label" for="maxFailureWait">Max Wait</label>
@ -94,7 +94,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Max time a user will be locked out." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Max time a user will be locked out." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group input-select" data-ng-show="realm.bruteForceProtected"> <div class="form-group input-select" data-ng-show="realm.bruteForceProtected">
<label class="col-sm-2 control-label" for="maxDeltaTime">Failure Reset Time</label> <label class="col-sm-2 control-label" for="maxDeltaTime">Failure Reset Time</label>
@ -115,7 +115,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="When will failure count be reset?" class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="When will failure count be reset?" class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageRealm"> <div class="pull-right form-actions" data-ng-show="access.manageRealm">

View file

@ -7,7 +7,7 @@
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<div data-ng-show="access.viewRealm"> <div data-ng-show="access.viewRealm">
<h2><span>{{realm.realm}}</span> Browser Security Headers <span tooltip-placement="right" tooltip="HTTP Response header values that you can set to help prevent clickjacking and XSS attacks." class="pficon pficon-help"></span></h2> <h2><span>{{realm.realm}}</span> Browser Security Headers <span tooltip-placement="right" tooltip="HTTP Response header values that you can set to help prevent clickjacking and XSS attacks." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset class="border-top"> <fieldset class="border-top">
<div class="form-group"> <div class="form-group">
@ -15,14 +15,14 @@
<div class="col-sm-6"> <div class="col-sm-6">
<input class="form-control" id="xFrameOptions" type="text" ng-model="realm.browserSecurityHeaders.xFrameOptions"> <input class="form-control" id="xFrameOptions" type="text" ng-model="realm.browserSecurityHeaders.xFrameOptions">
</div> </div>
<span tooltip-placement="right" tooltip="Click on label link for more information. The default value prevents pages from being included via non-origin iframes." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Click on label link for more information. The default value prevents pages from being included via non-origin iframes." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="contentSecurityPolicy"><a href="http://www.w3.org/TR/CSP/">Content-Security-Policy</a></label> <label class="col-sm-2 control-label" for="contentSecurityPolicy"><a href="http://www.w3.org/TR/CSP/">Content-Security-Policy</a></label>
<div class="col-sm-6"> <div class="col-sm-6">
<input class="form-control" id="contentSecurityPolicy" type="text" ng-model="realm.browserSecurityHeaders.contentSecurityPolicy"> <input class="form-control" id="contentSecurityPolicy" type="text" ng-model="realm.browserSecurityHeaders.contentSecurityPolicy">
</div> </div>
<span tooltip-placement="right" tooltip="Click on label link for more information. The default value prevents pages from being included via non-origin iframes." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Click on label link for more information. The default value prevents pages from being included via non-origin iframes." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageRealm"> <div class="pull-right form-actions" data-ng-show="access.manageRealm">

View file

@ -1,189 +1,189 @@
<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div> <div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
<div id="content-area" class="col-sm-9" role="main"> <div id="content-area" class="col-sm-9" role="main">
<ul class="nav nav-tabs nav-tabs-pf"> <ul class="nav nav-tabs nav-tabs-pf">
<li><a href="#/realms/{{realm.realm}}/users">User List</a></li> <li><a href="#/realms/{{realm.realm}}/users">User List</a></li>
<li><a href="#/realms/{{realm.realm}}/user-federation">Federation</a></li> <li><a href="#/realms/{{realm.realm}}/user-federation">Federation</a></li>
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2 class="pull-left"><span>{{realm.realm}}</span> Ldap Server Settings</h2> <h2 class="pull-left"><span>{{realm.realm}}</span> Ldap Server Settings</h2>
<p class="subtitle"><span class="required">*</span> Required fields</p> <p class="subtitle"><span class="required">*</span> Required fields</p>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset> <fieldset>
<legend><span class="text">Required Settings</span></legend> <legend><span class="text">Required Settings</span></legend>
<div class="form-group clearfix" data-ng-show="!create"> <div class="form-group clearfix" data-ng-show="!create">
<label class="col-sm-2 control-label" for="providerId">Provider ID </label> <label class="col-sm-2 control-label" for="providerId">Provider ID </label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="providerId" type="text" ng-model="instance.id" readonly> <input class="form-control" id="providerId" type="text" ng-model="instance.id" readonly>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="consoleDisplayName">Console display name </label> <label class="col-sm-2 control-label" for="consoleDisplayName">Console display name </label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="consoleDisplayName" type="text" ng-model="instance.displayName" placeholder="defaults to id"> <input class="form-control" id="consoleDisplayName" type="text" ng-model="instance.displayName" placeholder="defaults to id">
</div> </div>
<span tooltip-placement="right" tooltip="Display name of provider when linked in admin console." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Display name of provider when linked in admin console." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="priority">Priority </label> <label class="col-sm-2 control-label" for="priority">Priority </label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="priority" type="text" ng-model="instance.priority"> <input class="form-control" id="priority" type="text" ng-model="instance.priority">
</div> </div>
<span tooltip-placement="right" tooltip="Priority of provider when doing a user lookup. Lowest first." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Priority of provider when doing a user lookup. Lowest first." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="editMode">Edit mode</label> <label class="col-sm-2 control-label" for="editMode">Edit mode</label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="select-kc"> <div class="select-kc">
<select id="editMode" <select id="editMode"
ng-model="instance.config.editMode"> ng-model="instance.config.editMode">
<option>READ_ONLY</option> <option>READ_ONLY</option>
<option>WRITABLE</option> <option>WRITABLE</option>
<option>UNSYNCED</option> <option>UNSYNCED</option>
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="READ_ONLY is a read only LDAP store. WRITABLE means data will be synced back to LDAP on demand. UNSYNCED means user data will be imported, but not synced back to LDAP." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="READ_ONLY is a read only LDAP store. WRITABLE means data will be synced back to LDAP on demand. UNSYNCED means user data will be imported, but not synced back to LDAP." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group clearfix block"> <div class="form-group clearfix block">
<label class="col-sm-2 control-label" for="syncRegistrations">Sync Registrations</label> <label class="col-sm-2 control-label" for="syncRegistrations">Sync Registrations</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="syncRegistrations" name="syncRegistrations" id="syncRegistrations" onoffswitch /> <input ng-model="syncRegistrations" name="syncRegistrations" id="syncRegistrations" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Should newly created users be created within LDAP store? Priority effects which provider is chose to sync the new user." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Should newly created users be created within LDAP store? Priority effects which provider is chose to sync the new user." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="vendor">Vendor</label> <label class="col-sm-2 control-label" for="vendor">Vendor</label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="select-kc"> <div class="select-kc">
<select id="vendor" <select id="vendor"
ng-model="instance.config.vendor" ng-model="instance.config.vendor"
ng-options="vendor.id as vendor.name for vendor in ldapVendors"> ng-options="vendor.id as vendor.name for vendor in ldapVendors">
</select> </select>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="usernameLDAPAttribute">Username LDAP attribute </label> <label class="col-sm-2 control-label" for="usernameLDAPAttribute">Username LDAP attribute </label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="select-kc"> <div class="select-kc">
<select id="usernameLDAPAttribute" <select id="usernameLDAPAttribute"
ng-model="instance.config.usernameLDAPAttribute" ng-model="instance.config.usernameLDAPAttribute"
ng-options="usernameLDAPAttribute for usernameLDAPAttribute in usernameLDAPAttributes"> ng-options="usernameLDAPAttribute for usernameLDAPAttribute in usernameLDAPAttributes">
</select> </select>
</div> </div>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="userObjectClasses">User Object Classes </label> <label class="col-sm-2 control-label" for="userObjectClasses">User Object Classes </label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="userObjectClasses" type="text" ng-model="instance.config.userObjectClasses" placeholder="LDAP User Object Classes (div. by comma)"> <input class="form-control" id="userObjectClasses" type="text" ng-model="instance.config.userObjectClasses" placeholder="LDAP User Object Classes (div. by comma)">
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="ldapConnectionUrl">Connection URL <span class="required">*</span></label> <label class="col-sm-2 control-label" for="ldapConnectionUrl">Connection URL<span class="required">*</span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="ldapConnectionUrl" type="text" ng-model="instance.config.connectionUrl" placeholder="LDAP connection URL" required> <input class="form-control" id="ldapConnectionUrl" type="text" ng-model="instance.config.connectionUrl" placeholder="LDAP connection URL" required>
</div> </div>
<div class="col-sm-4" data-ng-show="access.manageRealm"> <div class="col-sm-4" data-ng-show="access.manageRealm">
<a class="btn btn-primary" data-ng-click="testConnection()">Test connection</a> <a class="btn btn-primary" data-ng-click="testConnection()">Test connection</a>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="ldapBaseDn">Base DN <span class="required">*</span></label> <label class="col-sm-2 control-label" for="ldapBaseDn">Base DN <span class="required">*</span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="ldapBaseDn" type="text" ng-model="instance.config.baseDn" placeholder="LDAP Base DN" required> <input class="form-control" id="ldapBaseDn" type="text" ng-model="instance.config.baseDn" placeholder="LDAP Base DN" required>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="ldapUserDnSuffix">User DN Suffix <span class="required">*</span></label> <label class="col-sm-2 control-label" for="ldapUserDnSuffix">User DN Suffix <span class="required">*</span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="ldapUserDnSuffix" type="text" ng-model="instance.config.userDnSuffix" placeholder="LDAP User DN Suffix" required> <input class="form-control" id="ldapUserDnSuffix" type="text" ng-model="instance.config.userDnSuffix" placeholder="LDAP User DN Suffix" required>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="ldapBindDn">Bind DN <span class="required">*</span></label> <label class="col-sm-2 control-label" for="ldapBindDn">Bind DN <span class="required">*</span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="ldapBindDn" type="text" ng-model="instance.config.bindDn" placeholder="LDAP Bind DN" required> <input class="form-control" id="ldapBindDn" type="text" ng-model="instance.config.bindDn" placeholder="LDAP Bind DN" required>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="ldapBindCredential">Bind Credential <span class="required">*</span></label> <label class="col-sm-2 control-label" for="ldapBindCredential">Bind Credential <span class="required">*</span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" id="ldapBindCredential" type="text" ng-model="instance.config.bindCredential" placeholder="LDAP Bind Credentials" required> <input class="form-control" id="ldapBindCredential" type="text" ng-model="instance.config.bindCredential" placeholder="LDAP Bind Credentials" required>
</div> </div>
<div class="col-sm-4" data-ng-show="access.manageRealm"> <div class="col-sm-4" data-ng-show="access.manageRealm">
<a class="btn btn-primary" data-ng-click="testAuthentication()">Test authentication</a> <a class="btn btn-primary" data-ng-click="testAuthentication()">Test authentication</a>
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="connectionPooling">Connection pooling</label> <label class="col-sm-2 control-label" for="connectionPooling">Connection pooling</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="connectionPooling" name="connectionPooling" id="connectionPooling" onoffswitch /> <input ng-model="connectionPooling" name="connectionPooling" id="connectionPooling" onoffswitch />
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="pagination">Pagination</label> <label class="col-sm-2 control-label" for="pagination">Pagination</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="pagination" name="pagination" id="pagination" onoffswitch /> <input ng-model="pagination" name="pagination" id="pagination" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Does the LDAP server support pagination." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Does the LDAP server support pagination." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group clearfix" data-ng-show="instance.config.vendor === 'ad' "> <div class="form-group clearfix" data-ng-show="instance.config.vendor === 'ad' ">
<label class="col-sm-2 control-label" for="userAccountControlsAfterPasswordUpdate">Enable Account After Password Update</label> <label class="col-sm-2 control-label" for="userAccountControlsAfterPasswordUpdate">Enable Account After Password Update</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="userAccountControlsAfterPasswordUpdate" name="userAccountControlsAfterPasswordUpdate" id="userAccountControlsAfterPasswordUpdate" onoffswitch /> <input ng-model="userAccountControlsAfterPasswordUpdate" name="userAccountControlsAfterPasswordUpdate" id="userAccountControlsAfterPasswordUpdate" onoffswitch />
</div> </div>
</div> </div>
</fieldset> </fieldset>
<fieldset> <fieldset>
<legend><span class="text">Sync settings</span></legend> <legend><span class="text">Sync settings</span></legend>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="batchSizeForSync">Batch size</label> <label class="col-sm-2 control-label" for="batchSizeForSync">Batch size</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" type="text" ng-model="instance.config.batchSizeForSync" id="batchSizeForSync" /> <input class="form-control" type="text" ng-model="instance.config.batchSizeForSync" id="batchSizeForSync" />
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="fullSyncEnabled">Periodic full sync</label> <label class="col-sm-2 control-label" for="fullSyncEnabled">Periodic full sync</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="fullSyncEnabled" name="fullSyncEnabled" id="fullSyncEnabled" onoffswitch /> <input ng-model="fullSyncEnabled" name="fullSyncEnabled" id="fullSyncEnabled" onoffswitch />
</div> </div>
</div> </div>
<div class="form-group clearfix" data-ng-show="fullSyncEnabled"> <div class="form-group clearfix" data-ng-show="fullSyncEnabled">
<label class="col-sm-2 control-label" for="fullSyncPeriod">Full sync period</label> <label class="col-sm-2 control-label" for="fullSyncPeriod">Full sync period</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" type="number" ng-model="instance.fullSyncPeriod" id="fullSyncPeriod" /> <input class="form-control" type="number" ng-model="instance.fullSyncPeriod" id="fullSyncPeriod" />
</div> </div>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="changedSyncEnabled">Periodic changed users sync</label> <label class="col-sm-2 control-label" for="changedSyncEnabled">Periodic changed users sync</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="changedSyncEnabled" name="changedSyncEnabled" id="changedSyncEnabled" onoffswitch /> <input ng-model="changedSyncEnabled" name="changedSyncEnabled" id="changedSyncEnabled" onoffswitch />
</div> </div>
</div> </div>
<div class="form-group clearfix" data-ng-show="changedSyncEnabled"> <div class="form-group clearfix" data-ng-show="changedSyncEnabled">
<label class="col-sm-2 control-label" for="changedSyncPeriod">Changed users sync period</label> <label class="col-sm-2 control-label" for="changedSyncPeriod">Changed users sync period</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input class="form-control" type="number" ng-model="instance.changedSyncPeriod" id="changedSyncPeriod" /> <input class="form-control" type="number" ng-model="instance.changedSyncPeriod" id="changedSyncPeriod" />
</div> </div>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="create && access.manageUsers"> <div class="pull-right form-actions" data-ng-show="create && access.manageUsers">
<button kc-cancel data-ng-click="cancel()">Cancel</button> <button kc-cancel data-ng-click="cancel()">Cancel</button>
<button kc-save data-ng-show="changed">Save</button> <button kc-save data-ng-show="changed">Save</button>
</div> </div>
<div class="pull-right form-actions" data-ng-show="!create && access.manageUsers"> <div class="pull-right form-actions" data-ng-show="!create && access.manageUsers">
<button kc-reset data-ng-show="changed">Clear changes</button> <button kc-reset data-ng-show="changed">Clear changes</button>
<button kc-save data-ng-show="changed">Save</button> <button kc-save data-ng-show="changed">Save</button>
<button kc-delete data-ng-click="remove()" data-ng-hide="changed">Delete</button> <button kc-delete data-ng-click="remove()" data-ng-hide="changed">Delete</button>
<button kc-delete data-ng-click="triggerFullSync()" data-ng-hide="changed">Synchronize all users</button> <button kc-delete data-ng-click="triggerFullSync()" data-ng-hide="changed">Synchronize all users</button>
<button kc-delete data-ng-click="triggerChangedUsersSync()" data-ng-hide="changed">Synchronize changed users</button> <button kc-delete data-ng-click="triggerChangedUsersSync()" data-ng-hide="changed">Synchronize changed users</button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>

View file

@ -10,7 +10,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2 data-ng-hide="create"><span>{{oauth.name}}</span> Allowed Claims <span tooltip-placement="right" tooltip="Allows you to restrict which claim information is stored in the access token generated for the application." class="pficon pficon-help"></span></h2> <h2 data-ng-hide="create"><span>{{oauth.name}}</span> Allowed Claims <span tooltip-placement="right" tooltip="Allows you to restrict which claim information is stored in the access token generated for the application." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="claimForm"> <form class="form-horizontal" name="claimForm">
<div data-ng-include data-src="'partials/claims.html'"></div> <div data-ng-include data-src="'partials/claims.html'"></div>
<div class="pull-right form-actions" data-ng-show="access.manageClients"> <div class="pull-right form-actions" data-ng-show="access.manageClients">

View file

@ -35,7 +35,7 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="oauth.enabled" name="enabled" id="enabled" onoffswitch /> <input ng-model="oauth.enabled" name="enabled" id="enabled" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Disabled oauth clients cannot obtain access tokens." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Disabled oauth clients cannot obtain access tokens." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="accessType">Access Type</label> <label class="col-sm-2 control-label" for="accessType">Access Type</label>
@ -48,14 +48,14 @@
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="'Confidential' oauth clients require a secret to initiate login protocol. 'Public' clients do not require a secret." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="'Confidential' oauth clients require a secret to initiate login protocol. 'Public' clients do not require a secret." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group clearfix block"> <div class="form-group clearfix block">
<label class="col-sm-2 control-label" for="directGrantsOnly">Direct Grants Only</label> <label class="col-sm-2 control-label" for="directGrantsOnly">Direct Grants Only</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="oauth.directGrantsOnly" name="directGrantsOnly" id="directGrantsOnly" onoffswitch /> <input ng-model="oauth.directGrantsOnly" name="directGrantsOnly" id="directGrantsOnly" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="When enabled, client can only obtain grants from grant REST API." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="When enabled, client can only obtain grants from grant REST API." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-hide="oauth.directGrantsOnly"> <div class="form-group" data-ng-hide="oauth.directGrantsOnly">
<label class="col-sm-2 control-label" for="newRedirectUri">Redirect URI <span class="required" data-ng-show="create">*</span></label> <label class="col-sm-2 control-label" for="newRedirectUri">Redirect URI <span class="required" data-ng-show="create">*</span></label>
@ -79,7 +79,7 @@
</span> </span>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Valid URI pattern a browser can redirect to after a successful login or logout. Simple wildcards are allowed i.e. 'http://example.com/*'. Relative path can be specified too i.e. /my/relative/path/*. Relative paths will generate a redirect URI using the request's host and port." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Valid URI pattern a browser can redirect to after a successful login or logout. Simple wildcards are allowed i.e. 'http://example.com/*'. Relative path can be specified too i.e. /my/relative/path/*. Relative paths will generate a redirect URI using the request's host and port." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-hide="create"> <div class="form-group" data-ng-hide="create">
<label class="col-sm-2 control-label" for="newWebOrigin">Web Origin</label> <label class="col-sm-2 control-label" for="newWebOrigin">Web Origin</label>
@ -103,7 +103,7 @@
</span> </span>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Allowed CORS origins. Only useful if the client adapter has CORS processing enabled." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Allowed CORS origins. Only useful if the client adapter has CORS processing enabled." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>

View file

@ -10,7 +10,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2>OAuth Client Installation <span tooltip-placement="right" tooltip="Helper utility for generating various client adapter configuration formats which you can download or cut and paste to configure your client applications." class="pficon pficon-help"></span></h2> <h2>OAuth Client Installation <span tooltip-placement="right" tooltip="Helper utility for generating various client adapter configuration formats which you can download or cut and paste to configure your client applications." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="realmForm" novalidate> <form class="form-horizontal" name="realmForm" novalidate>
<fieldset> <fieldset>
<div class="form-group"> <div class="form-group">

View file

@ -5,7 +5,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{realm.realm}}</span> OAuth Clients <span tooltip-placement="right" tooltip="OAuth clients are like applicatoins, but are only granted temporary access. In browser apps, users will be queried to explicitly grant access." class="pficon pficon-help"></span></h2> <h2><span>{{realm.realm}}</span> OAuth Clients <span tooltip-placement="right" tooltip="OAuth clients are like applicatoins, but are only granted temporary access. In browser apps, users will be queried to explicitly grant access." class="fa fa-info-circle"></span></h2>
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
<thead> <thead>
<tr> <tr>

View file

@ -18,7 +18,7 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-disabled="true" class="form-control" type="text" id="notBefore" name="notBefore" data-ng-model="notBefore" autofocus> <input ng-disabled="true" class="form-control" type="text" id="notBefore" name="notBefore" data-ng-model="notBefore" autofocus>
</div> </div>
<span tooltip-placement="right" tooltip="Revoke any tokens issued before this date for this client." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Revoke any tokens issued before this date for this client." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageApplications"> <div class="pull-right form-actions" data-ng-show="access.manageApplications">

View file

@ -11,7 +11,7 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{oauth.name}}</span> Scope Mappings <span tooltip-placement="right" tooltip="Scope mappings allow you to restrict which user role mappings are included within the access token requested by the client." class="pficon pficon-help"></span></h2> <h2><span>{{oauth.name}}</span> Scope Mappings <span tooltip-placement="right" tooltip="Scope mappings allow you to restrict which user role mappings are included within the access token requested by the client." class="fa fa-info-circle"></span></h2>
<p class="subtitle"></p> <p class="subtitle"></p>
<form class="form-horizontal" name="allowScope" novalidate kc-read-only="!access.manageClients"> <form class="form-horizontal" name="allowScope" novalidate kc-read-only="!access.manageClients">
<fieldset class="border-top"> <fieldset class="border-top">
@ -20,17 +20,17 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="oauth.fullScopeAllowed" ng-click="changeFullScopeAllowed()" name="fullScopeAllowed" id="fullScopeAllowed" onoffswitch /> <input ng-model="oauth.fullScopeAllowed" ng-click="changeFullScopeAllowed()" name="fullScopeAllowed" id="fullScopeAllowed" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Allows you to disable all restrictions." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Allows you to disable all restrictions." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
</form> </form>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageClients" data-ng-show="!oauth.fullScopeAllowed"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageClients" data-ng-show="!oauth.fullScopeAllowed">
<fieldset> <fieldset>
<legend><span class="text">Realm Roles</span> <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="pficon pficon-help"></span></legend> <legend><span class="text">Realm Roles</span> <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="fa fa-info-circle"></span></legend>
<div class="form-group col-sm-10"> <div class="form-group col-sm-10">
<div class="controls changing-selectors"> <div class="controls changing-selectors">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles that can be assigned to scope." class="pficon pficon-help"></span></label> <label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles that can be assigned to scope." class="fa fa-info-circle"></span></label>
<select id="available" class="form-control" multiple size="5" <select id="available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmRoles" ng-model="selectedRealmRoles"
@ -46,7 +46,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned">Assigned Roles <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned">Assigned Roles <span tooltip-placement="right" tooltip="Realm level roles assigned to scope." class="fa fa-info-circle"></span></label>
<select id="assigned" class="form-control" multiple size=5 <select id="assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmMappings" ng-model="selectedRealmMappings"
@ -57,7 +57,7 @@
- -
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="realm-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned realm level roles that may have been inherited from a composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="realm-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned realm level roles that may have been inherited from a composite role." class="fa fa-info-circle"></span></label>
<select id="realm-composite" class="form-control" multiple size=5 <select id="realm-composite" class="form-control" multiple size=5
ng-disabled="true" ng-disabled="true"
ng-model="dummymodel" ng-model="dummymodel"
@ -71,7 +71,7 @@
<fieldset ng-show="applications.length > 0"> <fieldset ng-show="applications.length > 0">
<legend><span class="text">Application Roles</span> </legend> <legend><span class="text">Application Roles</span> </legend>
<div class="form-group input-select"> <div class="form-group input-select">
<label class="col-sm-2 control-label" for="applications">Application</label> <label class="col-sm-2 control-label" for="applications">Application <span tooltip-placement="right" tooltip="Select an application to view or modify additional roles to assign." class="fa fa-info-circle"></span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="input-group"> <div class="input-group">
<div class="select-kc"> <div class="select-kc">
@ -81,12 +81,12 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select an application to view or modify additional roles to assign." class="pficon pficon-help"></span>
</div> </div>
<div class="form-group" data-ng-show="targetApp"> <div class="form-group" data-ng-show="targetApp">
<div class="controls changing-selectors col-sm-10"> <div class="controls changing-selectors col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="app-available">Available Roles <span tooltip-placement="right" tooltip="Application roles available to be assigned." class="pficon pficon-help"></span></label> <label class="control-label" for="app-available">Available Roles <span tooltip-placement="right" tooltip="Application roles available to be assigned." class="fa fa-info-circle"></span></label>
<select id="app-available" class="form-control" multiple size="5" <select id="app-available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationRoles" ng-model="selectedApplicationRoles"
@ -102,7 +102,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="app-assigned">Assigned Roles <span tooltip-placement="right" tooltip="Assigned application roles." class="pficon pficon-help"></span></label> <label class="control-label" for="app-assigned">Assigned Roles <span tooltip-placement="right" tooltip="Assigned application roles." class="fa fa-info-circle"></span></label>
<select id="app-assigned" class="form-control" multiple size=5 <select id="app-assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationMappings" ng-model="selectedApplicationMappings"
@ -113,7 +113,7 @@
- -
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="app-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned application roles that may have been inherited from a composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="app-composite">Effective Roles <span tooltip-placement="right" tooltip="Assigned application roles that may have been inherited from a composite role." class="fa fa-info-circle"></span></label>
<select id="app-composite" class="form-control" multiple size=5 <select id="app-composite" class="form-control" multiple size=5
ng-disabled="true" ng-disabled="true"
ng-model="dummymodel" ng-model="dummymodel"

View file

@ -12,14 +12,14 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.realmCacheEnabled" name="realmCacheEnabled" id="realmCacheEnabled" onoffswitch /> <input ng-model="realm.realmCacheEnabled" name="realmCacheEnabled" id="realmCacheEnabled" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Enable/disable cache for realm, application, oauth client, and role data." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Enable/disable cache for realm, application, oauth client, and role data." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="userCacheEnabled">User Cache Enabled</label> <label class="col-sm-2 control-label" for="userCacheEnabled">User Cache Enabled</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.userCacheEnabled" name="userCacheEnabled" id="userCacheEnabled" onoffswitch /> <input ng-model="realm.userCacheEnabled" name="userCacheEnabled" id="userCacheEnabled" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Enable/disable user and user role mapping cache." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Enable/disable user and user role mapping cache." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageRealm"> <div class="pull-right form-actions" data-ng-show="access.manageRealm">

View file

@ -7,7 +7,7 @@
<h2><span>{{realm.realm}}</span> Credentials</h2> <h2><span>{{realm.realm}}</span> Credentials</h2>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset class="border-top"> <fieldset class="border-top">
<legend><span class="text">Realm Credentials Settings</span> <span tooltip-placement="right" tooltip="Credential types required for every user. Changing this value may require the user to configure any new credentials the next time they log in." class="pficon pficon-help"></span></legend> <legend><span class="text">Realm Credentials Settings</span> <span tooltip-placement="right" tooltip="Credential types required for every user. Changing this value may require the user to configure any new credentials the next time they log in." class="fa fa-info-circle"></span></legend>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="user" class="control-label two-lines">Required User Credentials</label> <label class="col-sm-2 control-label" for="user" class="control-label two-lines">Required User Credentials</label>
@ -17,7 +17,7 @@
</div> </div>
</fieldset> </fieldset>
<fieldset class="border-top"> <fieldset class="border-top">
<legend><span class="text">Realm Password Policy</span> <span tooltip-placement="right" tooltip="Specify required password format. You can also set how many times a password is hashed before it is stored in database." class="pficon pficon-help"></span></legend> <legend><span class="text">Realm Password Policy</span> <span tooltip-placement="right" tooltip="Specify required password format. You can also set how many times a password is hashed before it is stored in database." class="fa fa-info-circle"></span></legend>
<table class="table table-striped table-bordered"> <table class="table table-striped table-bordered">
<caption class="hidden">Table of Password Policies</caption> <caption class="hidden">Table of Password Policies</caption>
<thead> <thead>

View file

@ -6,14 +6,14 @@
</ul> </ul>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{realm.realm}}</span> Default Roles <span tooltip-placement="right" tooltip="Role mappings to assign to newly created users." class="pficon pficon-help"></span></h2> <h2><span>{{realm.realm}}</span> Default Roles <span tooltip-placement="right" tooltip="Role mappings to assign to newly created users." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset> <fieldset>
<legend><span class="text">Realm Default Roles</span> </legend> <legend><span class="text">Realm Default Roles</span> </legend>
<div class="form-group"> <div class="form-group">
<div class="controls changing-selectors col-sm-10"> <div class="controls changing-selectors col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles that can be assigned." class="pficon pficon-help"></span></label> <label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles that can be assigned." class="fa fa-info-circle"></span></label>
<select id="available" class="form-control" multiple size="5" <select id="available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmRoles" ng-model="selectedRealmRoles"
@ -29,7 +29,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned">Realm Default Roles <span tooltip-placement="right" tooltip="Realm level roles assigned to new users." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned">Realm Default Roles <span tooltip-placement="right" tooltip="Realm level roles assigned to new users." class="fa fa-info-circle"></span></label>
<select id="assigned" class="form-control" multiple size=5 <select id="assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmDefRoles" ng-model="selectedRealmDefRoles"
@ -43,7 +43,7 @@
<fieldset ng-show="applications.length > 0"> <fieldset ng-show="applications.length > 0">
<legend><span class="text">Application Default Roles</span> </legend> <legend><span class="text">Application Default Roles</span> </legend>
<div class="form-group input-select"> <div class="form-group input-select">
<label class="col-sm-2 control-label" for="applications">Application</label> <label class="col-sm-2 control-label" for="applications">Application <span tooltip-placement="top" tooltip="Select an application to view/modify assigned default roles." class="fa fa-info-circle"></span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="input-group"> <div class="input-group">
<div class="select-kc"> <div class="select-kc">
@ -53,12 +53,12 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select an application to view/modify assigned default roles." class="pficon pficon-help"></span>
</div> </div>
<div class="form-group" ng-show="application"> <div class="form-group" ng-show="application">
<div class="controls changing-selectors col-sm-10"> <div class="controls changing-selectors col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Roles from this application that are assignable as a default." class="pficon pficon-help"></span></label> <label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Roles from this application that are assignable as a default." class="fa fa-info-circle"></span></label>
<select id="available-app" class="form-control" multiple size="5" <select id="available-app" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedAppRoles" ng-model="selectedAppRoles"
@ -74,7 +74,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned-app">Application Default Roles <span tooltip-placement="right" tooltip="Roles from this application assigned as a default role." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned-app">Application Default Roles <span tooltip-placement="right" tooltip="Roles from this application assigned as a default role." class="fa fa-info-circle"></span></label>
<select id="assigned-app" class="form-control" multiple size=5 <select id="assigned-app" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedAppDefRoles" ng-model="selectedAppDefRoles"

View file

@ -17,7 +17,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="enabled">Enabled</label> <label class="col-sm-2 control-label" for="enabled">Enabled</label>
<span tooltip="Users and applications can only access a realm if it's enabled" class="pficon pficon-help"></span> <span tooltip="Users and applications can only access a realm if it's enabled" class="fa fa-info-circle"></span>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.enabled" name="enabled" id="enabled" onoffswitch /> <input ng-model="realm.enabled" name="enabled" id="enabled" onoffswitch />
</div> </div>

View file

@ -3,7 +3,7 @@
<data-kc-navigation data-kc-current="keys" data-kc-realm="realm.realm" data-kc-social="realm.social"></data-kc-navigation> <data-kc-navigation data-kc-current="keys" data-kc-realm="realm.realm" data-kc-social="realm.social"></data-kc-navigation>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2><span>{{realm.realm}}</span> Realm Public Key <span tooltip-placement="right" tooltip="Realm's public key. This is used to verify any signed tokens or documents created by the realm." class="pficon pficon-help"></span></h2> <h2><span>{{realm.realm}}</span> Realm Public Key <span tooltip-placement="right" tooltip="Realm's public key. This is used to verify any signed tokens or documents created by the realm." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset class="border-top"> <fieldset class="border-top">
<div class="form-group"> <div class="form-group">

View file

@ -1,84 +1,84 @@
<div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div> <div class="bs-sidebar col-sm-3 " data-ng-include data-src="'partials/realm-menu.html'"></div>
<div id="content-area" class="col-sm-9" role="main"> <div id="content-area" class="col-sm-9" role="main">
<kc-navigation data-kc-current="general" data-kc-realm="realm.realm" data-kc-social="social"></kc-navigation> <kc-navigation data-kc-current="general" data-kc-realm="realm.realm" data-kc-social="social"></kc-navigation>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<div data-ng-show="access.viewRealm"> <div data-ng-show="access.viewRealm">
<h2><span>{{realm.realm}}</span> Login Settings</h2> <h2><span>{{realm.realm}}</span> Login Settings</h2>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset class="border-top"> <fieldset class="border-top">
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="social">Social login</label> <label class="col-sm-2 control-label" for="social">Social login</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.social" name="social" id="social" onoffswitch /> <input ng-model="realm.social" name="social" id="social" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Enable/disable social login via Facebook, Google+, etc." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Enable/disable social login via Facebook, Google+, etc." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group" data-ng-show="realm.social"> <div class="form-group" data-ng-show="realm.social">
<label class="col-sm-2 control-label" for="updateProfileOnInitialSocialLogin">Update profile on first social login</label> <label class="col-sm-2 control-label" for="updateProfileOnInitialSocialLogin">Update profile on first social login</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.updateProfileOnInitialSocialLogin" name="updateProfileOnInitialSocialLogin" id="updateProfileOnInitialSocialLogin" onoffswitch /> <input ng-model="realm.updateProfileOnInitialSocialLogin" name="updateProfileOnInitialSocialLogin" id="updateProfileOnInitialSocialLogin" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Should user information from social provider be imported into user database?" class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Should user information from social provider be imported into user database?" class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="registrationAllowed" class="col-sm-2 control-label">User registration</label> <label for="registrationAllowed" class="col-sm-2 control-label">User registration</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.registrationAllowed" name="registrationAllowed" id="registrationAllowed" onoffswitch /> <input ng-model="realm.registrationAllowed" name="registrationAllowed" id="registrationAllowed" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Enable/disable the registration page. A link for registration will show on login page too." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Enable/disable the registration page. A link for registration will show on login page too." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="resetPasswordAllowed" class="col-sm-2 control-label">Forget password</label> <label for="resetPasswordAllowed" class="col-sm-2 control-label">Forget password</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.resetPasswordAllowed" name="resetPasswordAllowed" id="resetPasswordAllowed" onoffswitch /> <input ng-model="realm.resetPasswordAllowed" name="resetPasswordAllowed" id="resetPasswordAllowed" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Show a link on login page for user to click on when they have forgotten their credentials." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Show a link on login page for user to click on when they have forgotten their credentials." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="rememberMe">Remember Me</label> <label class="col-sm-2 control-label" for="rememberMe">Remember Me</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.rememberMe" name="rememberMe" id="rememberMe" onoffswitch /> <input ng-model="realm.rememberMe" name="rememberMe" id="rememberMe" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Show checkbox on login page to allow user to remain logged in between browser restarts until session expires." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Show checkbox on login page to allow user to remain logged in between browser restarts until session expires." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="verifyEmail" class="col-sm-2 control-label">Verify email</label> <label for="verifyEmail" class="col-sm-2 control-label">Verify email</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.verifyEmail" name="verifyEmail" id="verifyEmail" onoffswitch /> <input ng-model="realm.verifyEmail" name="verifyEmail" id="verifyEmail" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Require the user to verify their email address the first time they login." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Require the user to verify their email address the first time they login." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="passwordCredentialGrantAllowed" class="col-sm-2 control-label">Direct Grant API</label> <label for="passwordCredentialGrantAllowed" class="col-sm-2 control-label">Direct Grant API</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="realm.passwordCredentialGrantAllowed" name="passwordCredentialGrantAllowed" id="passwordCredentialGrantAllowed" onoffswitch /> <input ng-model="realm.passwordCredentialGrantAllowed" name="passwordCredentialGrantAllowed" id="passwordCredentialGrantAllowed" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Enable/disable REST API for login/token grant access" class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Enable/disable REST API for login/token grant access" class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label for="sslRequired" class="col-sm-2 control-label">Require SSL</label> <label for="sslRequired" class="col-sm-2 control-label">Require SSL</label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="select-kc"> <div class="select-kc">
<select id="sslRequired" ng-model="realm.sslRequired"> <select id="sslRequired" ng-model="realm.sslRequired">
<option value="all">all requests</option> <option value="all">all requests</option>
<option value="external">external requests</option> <option value="external">external requests</option>
<option value="none">none</option> <option value="none">none</option>
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Is HTTPS required? 'None' means HTTPS is not required for any client IP address. 'External requests' means localhost and private IP addresses can access without HTTPS. 'All requests' means HTTPS is required for all IP addresses." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Is HTTPS required? 'None' means HTTPS is not required for any client IP address. 'External requests' means localhost and private IP addresses can access without HTTPS. 'All requests' means HTTPS is required for all IP addresses." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageRealm"> <div class="pull-right form-actions" data-ng-show="access.manageRealm">
<button kc-reset data-ng-show="changed">Clear changes</button> <button kc-reset data-ng-show="changed">Clear changes</button>
<button kc-save data-ng-show="changed">Save</button> <button kc-save data-ng-show="changed">Save</button>
</div> </div>
</form> </form>
</div> </div>
<div data-ng-hide="access.viewRealm"> <div data-ng-hide="access.viewRealm">
<h2 ><span>{{realm.realm}}</span></h2> <h2 ><span>{{realm.realm}}</span></h2>
</div> </div>
</div> </div>
</div> </div>

View file

@ -3,7 +3,7 @@
<data-kc-navigation data-kc-current="email" data-kc-realm="realm.realm" data-kc-social="realm.social"></data-kc-navigation> <data-kc-navigation data-kc-current="email" data-kc-realm="realm.realm" data-kc-social="realm.social"></data-kc-navigation>
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<h2 class="pull-left"><span>{{realm.realm}}</span> Email Settings <span tooltip-placement="right" tooltip="Email server to use when the server needs to send an email, i.e. forgot password, credential reset, etc." class="pficon pficon-help"></span></h2> <h2 class="pull-left"><span>{{realm.realm}}</span> Email Settings <span tooltip-placement="right" tooltip="Email server to use when the server needs to send an email, i.e. forgot password, credential reset, etc." class="fa fa-info-circle"></span></h2>
<p class="subtitle"><span class="required">*</span> Required fields</p> <p class="subtitle"><span class="required">*</span> Required fields</p>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset> <fieldset>

View file

@ -4,7 +4,7 @@
<h2></h2> <h2></h2>
<div id="content"> <div id="content">
<div data-ng-show="access.viewRealm"> <div data-ng-show="access.viewRealm">
<h2><span>{{realm.realm}}</span> Theme Settings <span tooltip-placement="right" tooltip="Change the style for any rendered page." class="pficon pficon-help"></span></h2> <h2><span>{{realm.realm}}</span> Theme Settings <span tooltip-placement="right" tooltip="Change the style for any rendered page." class="fa fa-info-circle"></span></h2>
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageRealm">
<fieldset class="border-top"> <fieldset class="border-top">
<div class="form-group"> <div class="form-group">
@ -18,7 +18,7 @@
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select theme for login, totp, grant, registrationn, and forgot password pages." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Select theme for login, totp, grant, registrationn, and forgot password pages." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="accountTheme">Account Theme</label> <label class="col-sm-2 control-label" for="accountTheme">Account Theme</label>
@ -31,7 +31,7 @@
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select theme for user account management pages." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Select theme for user account management pages." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="adminTheme">Admin Console Theme</label> <label class="col-sm-2 control-label" for="adminTheme">Admin Console Theme</label>
@ -44,7 +44,7 @@
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select theme for admin console." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Select theme for admin console." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="emailTheme">Email Theme</label> <label class="col-sm-2 control-label" for="emailTheme">Email Theme</label>
@ -57,7 +57,7 @@
</select> </select>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select theme for emails that are sent by the server." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Select theme for emails that are sent by the server." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageRealm"> <div class="pull-right form-actions" data-ng-show="access.manageRealm">

View file

@ -29,7 +29,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Time a session is allowed to be idle before it expires. Tokens and browser sessions are invalidated when a session is expired." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Time a session is allowed to be idle before it expires. Tokens and browser sessions are invalidated when a session is expired." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group input-select"> <div class="form-group input-select">
<label class="col-sm-2 control-label" for="ssoSessionMaxLifespan">SSO Session Max Lifespan</label> <label class="col-sm-2 control-label" for="ssoSessionMaxLifespan">SSO Session Max Lifespan</label>
@ -50,7 +50,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Max time before a session is expired. Tokens and browser sessions are invalidated when a session is expired." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Max time before a session is expired. Tokens and browser sessions are invalidated when a session is expired." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group input-select"> <div class="form-group input-select">
<label class="col-sm-2 control-label" for="accessTokenLifespan">Access Token Lifespan</label> <label class="col-sm-2 control-label" for="accessTokenLifespan">Access Token Lifespan</label>
@ -71,7 +71,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Max time before an access token is expired. This value is recommended to be short relative to the SSO timeout." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Max time before an access token is expired. This value is recommended to be short relative to the SSO timeout." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label" for="accessCodeLifespan">Client login timeout</label> <label class="col-sm-2 control-label" for="accessCodeLifespan">Client login timeout</label>
@ -90,7 +90,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Max time an application or oauth client has to finish the access token protocol. This should normally be 1 minute." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Max time an application or oauth client has to finish the access token protocol. This should normally be 1 minute." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group input-select"> <div class="form-group input-select">
<label class="col-sm-2 control-label" for="accessCodeLifespanUserAction" class="two-lines">Login user action lifespan</label> <label class="col-sm-2 control-label" for="accessCodeLifespanUserAction" class="two-lines">Login user action lifespan</label>
@ -109,7 +109,7 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Max time a user has to complete a login and perform actions like update password or configure totp. This is recommended to be relatively long. 5 minutes or more." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Max time a user has to complete a login and perform actions like update password or configure totp. This is recommended to be relatively long. 5 minutes or more." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageRealm"> <div class="pull-right form-actions" data-ng-show="access.manageRealm">

View file

@ -34,7 +34,7 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-model="compositeSwitch" name="compositeSwitch" id="compositeSwitch" ng-disabled="compositeSwitchDisabled" onoffswitch /> <input ng-model="compositeSwitch" name="compositeSwitch" id="compositeSwitch" ng-disabled="compositeSwitchDisabled" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="When this role is assigned to a user, the user implicitly is assigned every role associated with the composite role." class="pficon pficon-help"></span> </div> <span tooltip-placement="right" tooltip="When this role is assigned to a user, the user implicitly is assigned every role associated with the composite role." class="fa fa-info-circle"></span> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="create"> <div class="pull-right form-actions" data-ng-show="create">
<button kc-cancel data-ng-click="cancel()" data-ng-show="changed">Cancel</button> <button kc-cancel data-ng-click="cancel()" data-ng-show="changed">Cancel</button>
@ -46,7 +46,7 @@
<div class="form-group"> <div class="form-group">
<div class="controls changing-selectors col-sm-10"> <div class="controls changing-selectors col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="fa fa-info-circle"></span></label>
<select id="available" class="form-control" multiple size="5" <select id="available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmRoles" ng-model="selectedRealmRoles"
@ -62,7 +62,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned">Associated Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned">Associated Roles <span tooltip-placement="right" tooltip="Realm level roles associated with this composite role." class="fa fa-info-circle"></span></label>
<select id="assigned" class="form-control" multiple size=5 <select id="assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedRealmMappings" ng-model="selectedRealmMappings"
@ -84,13 +84,13 @@
<option value="" selected> Select an Application...</option> <option value="" selected> Select an Application...</option>
</select> </select>
</div> </div>
<span tooltip-placement="right" tooltip="Select an application to view/modify roles associated with this composite." class="pficon pficon-help"></span> </div> <span tooltip-placement="right" tooltip="Select an application to view/modify roles associated with this composite." class="fa fa-info-circle"></span> </div>
</div> </div>
</div> </div>
<div class="form-group" ng-show="compositeApp"> <div class="form-group" ng-show="compositeApp">
<div class="controls changing-selectors col-sm-10"> <div class="controls changing-selectors col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Roles from this application that you can associate to this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Roles from this application that you can associate to this composite role." class="fa fa-info-circle"></span></label>
<select id="available-app" class="form-control" multiple size="5" <select id="available-app" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationRoles" ng-model="selectedApplicationRoles"
@ -106,7 +106,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned-app">Associated Roles <span tooltip-placement="right" tooltip="Application roles associated with this composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned-app">Associated Roles <span tooltip-placement="right" tooltip="Application roles associated with this composite role." class="fa fa-info-circle"></span></label>
<select id="assigned-app" class="form-control" multiple size=5 <select id="assigned-app" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationMappings" ng-model="selectedApplicationMappings"

View file

@ -13,12 +13,12 @@
<form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageUsers"> <form class="form-horizontal" name="realmForm" novalidate kc-read-only="!access.manageUsers">
<fieldset> <fieldset>
<legend><span class="text">Realm Roles</span> <span tooltip-placement="right" tooltip="Realm level roles mapped to user." class="pficon pficon-help"></span> <legend><span class="text">Realm Roles</span> <span tooltip-placement="right" tooltip="Realm level roles mapped to user." class="fa fa-info-circle"></span>
</legend> </legend>
<div class="form-group col-sm-10"> <div class="form-group col-sm-10">
<div class="controls changing-selectors"> <div class="controls changing-selectors">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm roles that can be assigned to the user." class="pficon pficon-help"></span> <label class="control-label" for="available">Available Roles <span tooltip-placement="right" tooltip="Realm roles that can be assigned to the user." class="fa fa-info-circle"></span>
</label> </label>
<select id="available" class="form-control" multiple size="5" <select id="available" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
@ -35,7 +35,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned">Assigned Roles <span tooltip-placement="right" tooltip="Realm roles mapped to the user" class="pficon pficon-help"></span> <label class="control-label" for="assigned">Assigned Roles <span tooltip-placement="right" tooltip="Realm roles mapped to the user" class="fa fa-info-circle"></span>
</label> </label>
<select id="assigned" class="form-control" multiple size=5 <select id="assigned" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
@ -47,7 +47,7 @@
- -
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="realm-composite">Effective Roles <span tooltip-placement="right" tooltip="All realm role mappings. Some roles here might be inherited from a mapped composite role." class="pficon pficon-help"></span> <label class="control-label" for="realm-composite">Effective Roles <span tooltip-placement="right" tooltip="All realm role mappings. Some roles here might be inherited from a mapped composite role." class="fa fa-info-circle"></span>
</label> </label>
<select id="realm-composite" class="form-control" multiple size=5 <select id="realm-composite" class="form-control" multiple size=5
ng-disabled="true" ng-disabled="true"
@ -62,7 +62,7 @@
<fieldset ng-show="applications.length > 0"> <fieldset ng-show="applications.length > 0">
<legend><span class="text">Application Roles</span> </legend> <legend><span class="text">Application Roles</span> </legend>
<div class="form-group input-select"> <div class="form-group input-select">
<label class="col-sm-2 control-label" for="applications">Application</label> <label class="col-sm-2 control-label" for="applications">Application <span tooltip-placement="right" tooltip="Select an application to view or modify additional roles to map." class="fa fa-info-circle"></span></label>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="input-group"> <div class="input-group">
<div class="select-kc"> <div class="select-kc">
@ -72,12 +72,12 @@
</div> </div>
</div> </div>
</div> </div>
<span tooltip-placement="right" tooltip="Select an application to view or modify additional roles to map." class="pficon pficon-help"></span>
</div> </div>
<div class="form-group" ng-show="application"> <div class="form-group" ng-show="application">
<div class="controls changing-selectors col-sm-10"> <div class="controls changing-selectors col-sm-10">
<div class="select-title"> <div class="select-title">
<label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Assignable roles from this application." class="pficon pficon-help"></span></label> <label class="control-label" for="available-app">Available Roles <span tooltip-placement="right" tooltip="Assignable roles from this application." class="fa fa-info-circle"></span></label>
<select id="available-app" class="form-control" multiple size="5" <select id="available-app" class="form-control" multiple size="5"
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationRoles" ng-model="selectedApplicationRoles"
@ -93,7 +93,7 @@
</button> </button>
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="assigned-app">Assigned Roles <span tooltip-placement="right" tooltip="Role mappings for this application." class="pficon pficon-help"></span></label> <label class="control-label" for="assigned-app">Assigned Roles <span tooltip-placement="right" tooltip="Role mappings for this application." class="fa fa-info-circle"></span></label>
<select id="assigned-app" class="form-control" multiple size=5 <select id="assigned-app" class="form-control" multiple size=5
ng-multiple="true" ng-multiple="true"
ng-model="selectedApplicationMappings" ng-model="selectedApplicationMappings"
@ -104,7 +104,7 @@
- -
</div> </div>
<div class="select-title"> <div class="select-title">
<label class="control-label" for="app-composite">Effective Roles <span tooltip-placement="right" tooltip="Role mappings for this application. Some roles here might be inherited from a mapped composite role." class="pficon pficon-help"></span></label> <label class="control-label" for="app-composite">Effective Roles <span tooltip-placement="right" tooltip="Role mappings for this application. Some roles here might be inherited from a mapped composite role." class="fa fa-info-circle"></span></label>
<select id="app-composite" class="form-control" multiple size=5 <select id="app-composite" class="form-control" multiple size=5
ng-disabled="true" ng-disabled="true"
ng-model="dummymodel" ng-model="dummymodel"

View file

@ -15,7 +15,7 @@
<div class="col-sm-4"> <div class="col-sm-4">
<input ng-disabled="true" class="form-control" type="text" id="notBefore" name="notBefore" data-ng-model="notBefore" autofocus> <input ng-disabled="true" class="form-control" type="text" id="notBefore" name="notBefore" data-ng-model="notBefore" autofocus>
</div> </div>
<span tooltip-placement="right" tooltip="Revoke any tokens issued before this date." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Revoke any tokens issued before this date." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="access.manageApplications"> <div class="pull-right form-actions" data-ng-show="access.manageApplications">

View file

@ -67,7 +67,7 @@
<div class="col-sm-5"> <div class="col-sm-5">
<input ng-model="user.enabled" name="userEnabled" id="userEnabled" onoffswitch /> <input ng-model="user.enabled" name="userEnabled" id="userEnabled" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="A disabled user cannot login." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="A disabled user cannot login." class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group clearfix block" data-ng-show="!create && user.federationLink"> <div class="form-group clearfix block" data-ng-show="!create && user.federationLink">
<label class="col-sm-2 control-label" for="userEnabled">Federation Link</label> <label class="col-sm-2 control-label" for="userEnabled">Federation Link</label>
@ -80,7 +80,7 @@
<div class="col-sm-5"> <div class="col-sm-5">
<input ng-model="user.emailVerified" name="emailVerified" id="emailVerified" onoffswitch /> <input ng-model="user.emailVerified" name="emailVerified" id="emailVerified" onoffswitch />
</div> </div>
<span tooltip-placement="right" tooltip="Has the user's email been verified?" class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Has the user's email been verified?" class="fa fa-info-circle"></span>
</div> </div>
<div class="form-group clearfix"> <div class="form-group clearfix">
<label class="col-sm-2 control-label" for="reqActions">Required User Actions</label> <label class="col-sm-2 control-label" for="reqActions">Required User Actions</label>
@ -90,7 +90,7 @@
<option ng-repeat="action in userReqActionList" value="{{action.id}}">{{action.text}}</option> <option ng-repeat="action in userReqActionList" value="{{action.id}}">{{action.text}}</option>
</select> </select>
</div> </div>
<span tooltip-placement="right" tooltip="Require an action when the user logs in. 'Verify email' sends an email to the user to verify their email address. 'Update profile' requires user to enter in new personal information. 'Update password' requires user to enter in a new password. 'Configure TOTP' requires setup of a mobile password generator." class="pficon pficon-help"></span> <span tooltip-placement="right" tooltip="Require an action when the user logs in. 'Verify email' sends an email to the user to verify their email address. 'Update profile' requires user to enter in new personal information. 'Update password' requires user to enter in a new password. 'Configure TOTP' requires setup of a mobile password generator." class="fa fa-info-circle"></span>
</div> </div>
</fieldset> </fieldset>
<div class="pull-right form-actions" data-ng-show="create && access.manageUsers"> <div class="pull-right form-actions" data-ng-show="create && access.manageUsers">

View file

@ -1288,6 +1288,9 @@ public class TokenService {
valid = matchesRedirects(resolveValidRedirects, r); valid = matchesRedirects(resolveValidRedirects, r);
} }
if (valid && redirectUri.startsWith("/")) {
redirectUri = relativeToAbsoluteURI(uriInfo, redirectUri);
}
redirectUri = valid ? redirectUri : null; redirectUri = valid ? redirectUri : null;
} }
@ -1302,20 +1305,26 @@ public class TokenService {
// If the valid redirect URI is relative (no scheme, host, port) then use the request's scheme, host, and port // If the valid redirect URI is relative (no scheme, host, port) then use the request's scheme, host, and port
Set<String> resolveValidRedirects = new HashSet<String>(); Set<String> resolveValidRedirects = new HashSet<String>();
for (String validRedirect : validRedirects) { for (String validRedirect : validRedirects) {
resolveValidRedirects.add(validRedirect); // add even relative urls.
if (validRedirect.startsWith("/")) { if (validRedirect.startsWith("/")) {
URI baseUri = uriInfo.getBaseUri(); validRedirect = relativeToAbsoluteURI(uriInfo, validRedirect);
String uri = baseUri.getScheme() + "://" + baseUri.getHost();
if (baseUri.getPort() != -1) {
uri += ":" + baseUri.getPort();
}
validRedirect = uri + validRedirect;
logger.debugv("replacing relative valid redirect with: {0}", validRedirect); logger.debugv("replacing relative valid redirect with: {0}", validRedirect);
resolveValidRedirects.add(validRedirect);
} }
resolveValidRedirects.add(validRedirect);
} }
return resolveValidRedirects; return resolveValidRedirects;
} }
public static String relativeToAbsoluteURI(UriInfo uriInfo, String relative) {
URI baseUri = uriInfo.getBaseUri();
String uri = baseUri.getScheme() + "://" + baseUri.getHost();
if (baseUri.getPort() != -1) {
uri += ":" + baseUri.getPort();
}
relative = uri + relative;
return relative;
}
private boolean checkSsl() { private boolean checkSsl() {
if (uriInfo.getBaseUri().getScheme().equals("https")) { if (uriInfo.getBaseUri().getScheme().equals("https")) {
return true; return true;

View file

@ -149,7 +149,7 @@ public class RelativeUriAdapterTest {
// test logout // test logout
String logoutUri = TokenService.logoutUrl(UriBuilder.fromUri("http://localhost:8081/auth")) String logoutUri = TokenService.logoutUrl(UriBuilder.fromUri("http://localhost:8081/auth"))
.queryParam(OAuth2Constants.REDIRECT_URI, "http://localhost:8081/customer-portal").build("demo").toString(); .queryParam(OAuth2Constants.REDIRECT_URI, "/customer-portal").build("demo").toString();
driver.navigate().to(logoutUri); driver.navigate().to(logoutUri);
Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL)); Assert.assertTrue(driver.getCurrentUrl().startsWith(LOGIN_URL));
driver.navigate().to("http://localhost:8081/product-portal"); driver.navigate().to("http://localhost:8081/product-portal");