keycloak-uncached
Changes
forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/oauth-clients.js 2(+1 -1)
forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-list.html 3(+0 -3)
forms/common-themes/src/main/resources/theme/admin/base/resources/partials/oauth-client-list.html 3(+0 -3)
forms/common-themes/src/main/resources/theme/admin/base/resources/templates/kc-navigation-application.html 2(+1 -1)
integration/adapter-core/pom.xml 2(+1 -1)
pom.xml 109(+109 -0)
Details
diff --git a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
index 243479a..3346371 100755
--- a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
@@ -61,8 +61,8 @@ public class RealmRepresentation {
protected String accountTheme;
protected String adminTheme;
protected String emailTheme;
- protected boolean eventsEnabled;
- protected long eventsExpiration;
+ protected Boolean eventsEnabled;
+ protected Long eventsExpiration;
protected List<String> eventsListeners;
public String getId() {
@@ -445,7 +445,7 @@ public class RealmRepresentation {
this.failureFactor = failureFactor;
}
- public boolean isEventsEnabled() {
+ public Boolean isEventsEnabled() {
return eventsEnabled;
}
@@ -453,7 +453,7 @@ public class RealmRepresentation {
this.eventsEnabled = eventsEnabled;
}
- public long getEventsExpiration() {
+ public Long getEventsExpiration() {
return eventsExpiration;
}
diff --git a/core/src/main/java/org/keycloak/util/UriUtils.java b/core/src/main/java/org/keycloak/util/UriUtils.java
index 8532c5b..3f0f9af 100644
--- a/core/src/main/java/org/keycloak/util/UriUtils.java
+++ b/core/src/main/java/org/keycloak/util/UriUtils.java
@@ -8,7 +8,7 @@ import java.util.regex.Pattern;
*/
public class UriUtils {
- private static final Pattern originPattern = Pattern.compile("(http://|https://)[\\w]+(\\.[\\w]+)*(:[\\d]{2,5})?");
+ private static final Pattern originPattern = Pattern.compile("(http://|https://)[\\w-]+(\\.[\\w-]+)*(:[\\d]{2,5})?");
public static String getOrigin(URI uri) {
return getOrigin(uri.toString());
diff --git a/core/src/test/java/org/keycloak/util/UriUtilsTest.java b/core/src/test/java/org/keycloak/util/UriUtilsTest.java
index 52d484d..af89777 100644
--- a/core/src/test/java/org/keycloak/util/UriUtilsTest.java
+++ b/core/src/test/java/org/keycloak/util/UriUtilsTest.java
@@ -24,6 +24,8 @@ public class UriUtilsTest {
assertValid("http://192.168.123.123");
assertValid("https://192.168.123.123");
assertValid("https://192.168.123.123:8080");
+ assertValid("https://sub-sub.test.com");
+ assertValid("https://sub.test-test.com");
assertInvalid("https://test/");
assertInvalid("{");
diff --git a/docbook/reference/en/en-US/modules/server-installation.xml b/docbook/reference/en/en-US/modules/server-installation.xml
index 9e595a1..5ca0cd8 100755
--- a/docbook/reference/en/en-US/modules/server-installation.xml
+++ b/docbook/reference/en/en-US/modules/server-installation.xml
@@ -625,29 +625,74 @@ keycloak-war-dist-all-&project.version;/
<literal>X-Forwarded-Proto</literal> headers on the requests made to Keycloak. Next you need to enable
<literal>proxy-address-forwarding</literal> on the Keycloak http connector. Assuming that your reverse
proxy doesn't use port 8443 for SSL you also need to configure what port http traffic is redirected to.
- This is done by editing <literal>standalone/configuration/standalone.xml</literal>.
</para>
- First add <literal>proxy-address-forwarding</literal> and <literal>redirect-socket</literal> to the <literal>http-listener</literal>
- element:
- <para>
+
+ <section>
+ <title>WildFly</title>
+
+ <para>
+ Open <literal>standalone/configuration/standalone.xml</literal> in your favorite editor.
+ </para>
+
+ <para>
+ First add <literal>proxy-address-forwarding</literal> and <literal>redirect-socket</literal> to
+ the <literal>http-listener</literal> element:
<programlisting><![CDATA[<subsystem xmlns="urn:jboss:domain:undertow:1.1">
...
- <http-listener name="default" socket-binding="http" proxy-address-forwarding="true" redirect-socket="proxy-https"/>
+ <http-listener name="default" socket-binding="http"
+ proxy-address-forwarding="true" redirect-socket="proxy-https"/>
...
</subsystem>
]]></programlisting>
- Then add a new <literal>socket-binding</literal> element to the <literal>socket-binding-group</literal> element:
+ </para>
+ <para>
+ Then add a new <literal>socket-binding</literal> element to the <literal>socket-binding-group</literal> element:
<programlisting><![CDATA[
-<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
+<socket-binding-group name="standard-sockets" default-interface="public"
+ port-offset="${jboss.socket.binding.port-offset:0}">
...
<socket-binding name="proxy-https" port="443"/>
...
</socket-binding-group>
]]></programlisting>
- </para>
- <para>
- Check the <ulink url="https://docs.jboss.org/author/display/WFLY8/Undertow+(web)+subsystem+configuration">WildFly</ulink> documentation for more information.
- </para>
+ </para>
+ <para>
+ Check the <ulink url="https://docs.jboss.org/author/display/WFLY8/Undertow+(web)+subsystem+configuration">WildFly</ulink> documentation for more information.
+ </para>
+ </section>
+
+ <section>
+ <title>AS7/EAP</title>
+
+ <para>
+ Open <literal>standalone/configuration/standalone.xml</literal> in your favorite editor.
+ </para>
+
+ <para>
+ You need to add <literal>redirect-port</literal> to http <literal>connector</literal> element and
+ add the <literal>RemoteIpValve</literal> valve:
+<programlisting><![CDATA[
+<subsystem xmlns="urn:jboss:domain:web:1.5"
+ default-virtual-server="default-host" native="false">
+ <connector name="http" protocol="HTTP/1.1" scheme="http"
+ socket-binding="http"
+ redirect-port="443"/>
+ <virtual-server name="default-host" enable-welcome-root="true">
+ <alias name="localhost"/>
+ <alias name="example.com"/>
+ </virtual-server>
+ <valve name="remoteipvalve" module="org.jboss.as.web"
+ class-name="org.apache.catalina.valves.RemoteIpValve">
+ <param param-name="protocolHeader" param-value="x-forwarded-proto"/>
+ </valve>
+</subsystem>
+]]></programlisting>
+ </para>
+
+
+
+ </section>
+
</section>
<section>
diff --git a/events/api/src/main/java/org/keycloak/events/EventType.java b/events/api/src/main/java/org/keycloak/events/EventType.java
index bdfdb0e..d41fb81 100755
--- a/events/api/src/main/java/org/keycloak/events/EventType.java
+++ b/events/api/src/main/java/org/keycloak/events/EventType.java
@@ -40,9 +40,9 @@ public enum EventType {
SEND_VERIFY_EMAIL_ERROR,
SEND_RESET_PASSWORD,
SEND_RESET_PASSWORD_ERROR,
- SOCIAL_LOGIN,
- SOCIAL_LOGIN_ERROR,
+
INVALID_SIGNATURE_ERROR,
REGISTER_NODE,
UNREGISTER_NODE
+
}
diff --git a/forms/common-themes/src/main/resources/theme/account/base/messages/messages.properties b/forms/common-themes/src/main/resources/theme/account/base/messages/messages.properties
index 9dfa90a..6feedf5 100755
--- a/forms/common-themes/src/main/resources/theme/account/base/messages/messages.properties
+++ b/forms/common-themes/src/main/resources/theme/account/base/messages/messages.properties
@@ -1,4 +1,4 @@
-authenticatorCode=One-time-password
+authenticatorCode=One-time code
email=Email
errorHeader=Error!
firstName=First name
@@ -23,8 +23,8 @@ invalidTotp=Invalid authenticator code
readOnlyUser=You can't update your account as it is read only
readOnlyPassword=You can't update your password as your account is read only
-successTotp=Google authenticator configured.
-successTotpRemoved=Google authenticator removed.
+successTotp=Mobile authenticator configured.
+successTotpRemoved=Mobile authenticator removed.
accountUpdated=Your account has been updated
accountPasswordUpdated=Your password has been updated
diff --git a/forms/common-themes/src/main/resources/theme/account/base/totp.ftl b/forms/common-themes/src/main/resources/theme/account/base/totp.ftl
index d05dd8b..d480337 100755
--- a/forms/common-themes/src/main/resources/theme/account/base/totp.ftl
+++ b/forms/common-themes/src/main/resources/theme/account/base/totp.ftl
@@ -12,25 +12,32 @@
</thead>
<tbody>
<tr>
- <td class="provider"><span class="social googleplus">FreeOTP</span></td>
+ <td class="provider">Mobile</td>
<td class="action">
- <a id="remove-google" href="${url.totpRemoveUrl}"><i class="pficon pficon-delete"></i></a>
+ <a id="remove-mobile" href="${url.totpRemoveUrl}"><i class="pficon pficon-delete"></i></a>
</td>
</tr>
</tbody>
</table>
<#else>
- <h2>Google Authenticator Setup</h2>
+ <h2>Authenticator</h2>
<hr/>
<ol>
- <li>Download the <a href="https://fedorahosted.org/freeotp/" target="_blank">FreeOTP app</a> in your device.</li>
- <li>Create an account in FreeOTP and scan the barcode or type in the provided key below.<br/>
+ <li>
+ Install <a href="https://fedorahosted.org/freeotp/" target="_blank">FreeOTP</a> or
+ <a href="http://code.google.com/p/google-authenticator/" target="_blank">Google Authenticator</a>
+ on your mobile
+ </li>
+ <li>
+ Open the application and scan the barcode or enter the key<br/>
<img src="${totp.totpSecretQrCodeUrl}" alt="Figure: Barcode"><br/>
<span class="code">${totp.totpSecretEncoded}</span>
</li>
- <li>Enter the one-time-password provided by FreeOTP below and click Submit to finish the setup.</li>
+ <li>
+ Enter the one-time code provided by the application and click Submit to finish the setup.
+ </li>
</ol>
<hr/>
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/oauth-clients.js b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/oauth-clients.js
index 87dece9..5fe70a7 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/oauth-clients.js
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/oauth-clients.js
@@ -282,7 +282,7 @@ module.controller('OAuthClientInstallationCtrl', function($scope, realm, install
$scope.installation = installation;
$scope.download = function() {
- saveAs(new Blob([$scope.installation], { type: $scope.type }), 'keycloak.json');
+ saveAs(new Blob([angular.toJson($scope.installation, true)], { type: 'application/json' }), 'keycloak.json');
}
});
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-list.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-list.html
index 364b4c7..27a7d92 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-list.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/application-list.html
@@ -1,8 +1,5 @@
<div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
<div id="content-area" class="col-md-9" role="main">
- <ul class="nav nav-tabs nav-tabs-pf">
- <li class="active"><a href="">Application List</a></li>
- </ul>
<h2></h2>
<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="fa fa-info-circle"></span></h2>
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/oauth-client-list.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/oauth-client-list.html
index f5638b4..69e687e 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/oauth-client-list.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/oauth-client-list.html
@@ -1,8 +1,5 @@
<div class="bs-sidebar col-md-3 clearfix" data-ng-include data-src="'partials/realm-menu.html'"></div>
<div id="content-area" class="col-md-9" role="main">
- <ul class="nav nav-tabs nav-tabs-pf">
- <li class="active"><a href="">OAuth List</a></li>
- </ul>
<h2></h2>
<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="fa fa-info-circle"></span></h2>
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/templates/kc-navigation-application.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/templates/kc-navigation-application.html
index 0234327..cb4d44a 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/templates/kc-navigation-application.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/templates/kc-navigation-application.html
@@ -1,4 +1,4 @@
-<ul class="nav nav-tabs nav-tabs-pf" data-ng-show="!create">
+<ul class="nav nav-tabs nav-tabs-pf" data-ng-hide="create && !path[4]">
<li ng-class="{active: !path[4]}"><a href="#/realms/{{realm.realm}}/applications/{{application.id}}">Settings</a></li>
<li ng-class="{active: path[4] == 'credentials'}" data-ng-show="!application.publicClient && application.protocol != 'saml'"><a href="#/realms/{{realm.realm}}/applications/{{application.id}}/credentials">Credentials</a></li>
<li ng-class="{active: path[4] == 'saml'}" data-ng-show="application.protocol == 'saml' && (application.attributes['saml.client.signature'] == 'true' || application.attributes['saml.encrypt'] == 'true')"><a href="#/realms/{{realm.realm}}/applications/{{application.id}}/saml/keys">SAML Keys</a></li>
diff --git a/forms/common-themes/src/main/resources/theme/login/base/login-config-totp.ftl b/forms/common-themes/src/main/resources/theme/login/base/login-config-totp.ftl
index 4848255..d71536c 100755
--- a/forms/common-themes/src/main/resources/theme/login/base/login-config-totp.ftl
+++ b/forms/common-themes/src/main/resources/theme/login/base/login-config-totp.ftl
@@ -30,13 +30,16 @@
<#elseif section = "info" >
<ol id="kc-totp-settings">
<li>
- <p>${rb.loginTotpStep1_1} <a href="https://fedorahosted.org/freeotp/" target="_blank">${rb.loginTotpStep1_2}</a> ${rb.loginTotpStep1_3}</p>
+ <p>${rb.loginTotpStep1}</p>
</li>
<li>
<p>${rb.loginTotpStep2}</p>
<img src="${totp.totpSecretQrCodeUrl}" alt="Figure: Barcode"><br/>
<span class="code">${totp.totpSecretEncoded}</span>
</li>
+ <li>
+ <p>${rb.loginTotpStep3}</p>
+ </li>
</ol>
</#if>
</@layout.registrationLayout>
diff --git a/forms/common-themes/src/main/resources/theme/login/base/messages/messages.properties b/forms/common-themes/src/main/resources/theme/login/base/messages/messages.properties
index ff0e6ad..6b12161 100755
--- a/forms/common-themes/src/main/resources/theme/login/base/messages/messages.properties
+++ b/forms/common-themes/src/main/resources/theme/login/base/messages/messages.properties
@@ -26,7 +26,7 @@ submit=Submit
yes=Yes
no=No
-authenticatorCode=One-time-password
+authenticatorCode=One-time code
clientCertificate=Client Certificate
invalidUser=Invalid username or password.
@@ -47,8 +47,8 @@ invalidPasswordExisting=Invalid existing password
invalidPasswordConfirm=Password confirmation doesn't match
invalidTotp=Invalid authenticator code
-successTotp=FreeOTP authenticator configured.
-successTotpRemoved=FreeOTP authenticator removed.
+successTotp=Mobile authenticator configured.
+successTotpRemoved=Mobile authenticator removed.
usernameExists=Username already exists
emailExists=Email already exists
@@ -60,13 +60,11 @@ loginOauthTitle=Temporary access.
loginOauthTitleHtml=Temporary access requested. Login to grant access.
loginForgot=Forgot
-loginTotpTitle=FreeOTP Authenticator Setup
-loginTotpStep1_1=Download the
-loginTotpStep1_2=FreeOTP Authenticator app
-loginTotpStep1_3=in your device.
-loginTotpStep2=Create an account in FreeOTP and scan the barcode or type in the provided key below.
-loginTotpStep3=Enter the one-time-password provided by FreeOTP below and click Submit to finish the setup.
-loginTotpOneTime=One-time-password
+loginTotpTitle=Mobile Authenticator Setup
+loginTotpStep1=Install <a href="https://fedorahosted.org/freeotp/" target="_blank">FreeOTP</a> or <a href="http://code.google.com/p/google-authenticator/" target="_blank">Google Authenticator</a> on your mobile
+loginTotpStep2=Open the application and scan the barcode or enter the key
+loginTotpStep3=Enter the one-time code provided by the application and click Submit to finish the setup
+loginTotpOneTime=One-time code
loginProfileTitle=Update Account Information
loginProfileWarning=Your account is not enabled because you need to update your account information.
@@ -91,7 +89,7 @@ errorTitle=We're sorry...
errorTitleHtml=We're <strong>sorry</strong> ...
errorGenericMsg=Something happened and we could not process your request.
actionWarningHeader=Your account is not enabled.
-actionTotpWarning=You need to set up the FreeOTP Authenticator to activate your account.
+actionTotpWarning=You need to set up Mobile Authenticator to activate your account.
actionProfileWarning=You need to update your user profile to activate your account.
actionPasswordWarning=You need to change your password to activate your account.
actionEmailWarning=You need to verify your email address to activate your account.
integration/adapter-core/pom.xml 2(+1 -1)
diff --git a/integration/adapter-core/pom.xml b/integration/adapter-core/pom.xml
index 9d1e964..07a4ccc 100755
--- a/integration/adapter-core/pom.xml
+++ b/integration/adapter-core/pom.xml
@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>keycloak-adapter-core</artifactId>
- <name>Keycloak AS7 Integration</name>
+ <name>Keycloak Adapter Core</name>
<description/>
<dependencies>
diff --git a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
index 31e26c3..9610395 100755
--- a/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
+++ b/model/api/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
@@ -52,6 +52,9 @@ public class RepresentationToModel {
if (rep.getQuickLoginCheckMilliSeconds() != null) newRealm.setQuickLoginCheckMilliSeconds(rep.getQuickLoginCheckMilliSeconds());
if (rep.getMaxDeltaTimeSeconds() != null) newRealm.setMaxDeltaTimeSeconds(rep.getMaxDeltaTimeSeconds());
if (rep.getFailureFactor() != null) newRealm.setFailureFactor(rep.getFailureFactor());
+ if (rep.isEventsEnabled() != null) newRealm.setEventsEnabled(rep.isEventsEnabled());
+ if (rep.getEventsExpiration() != null) newRealm.setEventsExpiration(rep.getEventsExpiration());
+ if (rep.getEventsListeners() != null) newRealm.setEventsListeners(new HashSet<String>(rep.getEventsListeners()));
if (rep.getNotBefore() != null) newRealm.setNotBefore(rep.getNotBefore());
@@ -263,6 +266,9 @@ public class RepresentationToModel {
if (rep.getAccountTheme() != null) realm.setAccountTheme(rep.getAccountTheme());
if (rep.getAdminTheme() != null) realm.setAdminTheme(rep.getAdminTheme());
if (rep.getEmailTheme() != null) realm.setEmailTheme(rep.getEmailTheme());
+ if (rep.isEventsEnabled() != null) realm.setEventsEnabled(rep.isEventsEnabled());
+ if (rep.getEventsExpiration() != null) realm.setEventsExpiration(rep.getEventsExpiration());
+ if (rep.getEventsListeners() != null) realm.setEventsListeners(new HashSet<String>(rep.getEventsListeners()));
if (rep.getPasswordPolicy() != null) realm.setPasswordPolicy(new PasswordPolicy(rep.getPasswordPolicy()));
pom.xml 109(+109 -0)
diff --git a/pom.xml b/pom.xml
index 5b3f154..430aea1 100755
--- a/pom.xml
+++ b/pom.xml
@@ -516,6 +516,29 @@
<excludePackageNames>
com.restfully.*:org.jboss.resteasy.examples.*:se.unlogic.*:org.jboss.resteasy.tests.*
</excludePackageNames>
+ <archive>
+ <index>true</index>
+ <manifest>
+ <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
+ <manifestEntries>
+ <Implementation-URL>${project.url}</Implementation-URL>
+ <Java-Version>${java.version}</Java-Version>
+ <Java-Vendor>${java.vendor}</Java-Vendor>
+ <Os-Name>${os.name}</Os-Name>
+ <Os-Arch>${os.arch}</Os-Arch>
+ <Os-Version>${os.version}</Os-Version>
+ <Scm-Url>${project.scm.url}</Scm-Url>
+ <Scm-Connection>${project.scm.connection}</Scm-Connection>
+ <Scm-Revision>${buildNumber}</Scm-Revision>
+ <Build-Timestamp>${build.datetime}</Build-Timestamp>
+ <Specification-Vendor>JBoss (http://www.jboss.org/)</Specification-Vendor>
+ <Implementation-URL>http://www.jboss.org/</Implementation-URL>
+ <Implementation-Vendor>JBoss by Red Hat, Inc</Implementation-Vendor>
+ <Implementation-Vendor-Id>http://www.jboss.org/</Implementation-Vendor-Id>
+ </manifestEntries>
+ </archive>
</configuration>
</plugin>
<plugin>
@@ -530,6 +553,31 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.1.2</version>
+ <configuration>
+ <archive>
+ <index>true</index>
+ <manifest>
+ <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
+ <manifestEntries>
+ <Implementation-URL>${project.url}</Implementation-URL>
+ <Java-Version>${java.version}</Java-Version>
+ <Java-Vendor>${java.vendor}</Java-Vendor>
+ <Os-Name>${os.name}</Os-Name>
+ <Os-Arch>${os.arch}</Os-Arch>
+ <Os-Version>${os.version}</Os-Version>
+ <Scm-Url>${project.scm.url}</Scm-Url>
+ <Scm-Connection>${project.scm.connection}</Scm-Connection>
+ <Scm-Revision>${buildNumber}</Scm-Revision>
+ <Build-Timestamp>${build.datetime}</Build-Timestamp>
+ <Specification-Vendor>JBoss (http://www.jboss.org/)</Specification-Vendor>
+ <Implementation-URL>http://www.jboss.org/</Implementation-URL>
+ <Implementation-Vendor>JBoss by Red Hat, Inc</Implementation-Vendor>
+ <Implementation-Vendor-Id>http://www.jboss.org/</Implementation-Vendor-Id>
+ </manifestEntries>
+ </archive>
+ </configuration>
<executions>
<execution>
<phase>verify</phase>
@@ -566,6 +614,31 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
+ <configuration>
+ <archive>
+ <index>true</index>
+ <manifest>
+ <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+ <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+ </manifest>
+ <manifestEntries>
+ <Implementation-URL>${project.url}</Implementation-URL>
+ <Java-Version>${java.version}</Java-Version>
+ <Java-Vendor>${java.vendor}</Java-Vendor>
+ <Os-Name>${os.name}</Os-Name>
+ <Os-Arch>${os.arch}</Os-Arch>
+ <Os-Version>${os.version}</Os-Version>
+ <Scm-Url>${project.scm.url}</Scm-Url>
+ <Scm-Connection>${project.scm.connection}</Scm-Connection>
+ <Scm-Revision>${buildNumber}</Scm-Revision>
+ <Build-Timestamp>${build.datetime}</Build-Timestamp>
+ <Specification-Vendor>JBoss (http://www.jboss.org/)</Specification-Vendor>
+ <Implementation-URL>http://www.jboss.org/</Implementation-URL>
+ <Implementation-Vendor>JBoss by Red Hat, Inc</Implementation-Vendor>
+ <Implementation-Vendor-Id>http://www.jboss.org/</Implementation-Vendor-Id>
+ </manifestEntries>
+ </archive>
+ </configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
@@ -604,6 +677,11 @@
<!-- set to ${liquibase.version} once Liquibase 3.2.3 is released (https://liquibase.jira.com/browse/CORE-1987) -->
<version>3.1.1</version>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <version>1.3</version>
+ </plugin>
</plugins>
</pluginManagement>
@@ -658,6 +736,37 @@
<artifactId>maven-clover2-plugin</artifactId>
<version>3.1.6</version>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>buildnumber-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>get-build-timestamp</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>create-timestamp</goal>
+ </goals>
+ <configuration>
+ <!-- Example date: Wed, 4 Jul 2001 12:08:56 -0700 -->
+ <timestampFormat>EEE, d MMM yyyy HH:mm:ss Z</timestampFormat>
+ <timestampPropertyName>build.datetime</timestampPropertyName>
+ </configuration>
+ </execution>
+ <execution>
+ <id>get-scm-revision</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>create</goal>
+ </goals>
+ <configuration>
+ <doCheck>false</doCheck>
+ <doUpdate>false</doUpdate>
+ <revisionOnScmFailure>UNKNOWN</revisionOnScmFailure>
+ <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
diff --git a/services/src/main/java/org/keycloak/services/resources/SocialResource.java b/services/src/main/java/org/keycloak/services/resources/SocialResource.java
index ce40497..195a9bf 100755
--- a/services/src/main/java/org/keycloak/services/resources/SocialResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/SocialResource.java
@@ -121,7 +121,7 @@ public class SocialResource {
RealmModel realm = clientSession.getRealm();
EventBuilder event = new EventsManager(realm, session, clientConnection).createEventBuilder()
- .event(EventType.SOCIAL_LOGIN)
+ .event(EventType.LOGIN)
.client(clientSession.getClient())
.detail(Details.REDIRECT_URI, clientSession.getRedirectUri())
.detail(Details.AUTH_METHOD, authMethod);
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java
index cffdda8..a3329d8 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/account/AccountTest.java
@@ -348,7 +348,7 @@ public class AccountTest {
totpPage.configure(totp.generate(totpPage.getTotpSecret()));
- Assert.assertEquals("Google authenticator configured.", profilePage.getSuccess());
+ Assert.assertEquals("Mobile authenticator configured.", profilePage.getSuccess());
events.expectAccount(EventType.UPDATE_TOTP).assertEvent();
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/AssertEvents.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/AssertEvents.java
index 0a3f6c3..c8b41c2 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/AssertEvents.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/AssertEvents.java
@@ -125,7 +125,7 @@ public class AssertEvents implements TestRule, EventListenerProviderFactory {
}
public ExpectedEvent expectSocialLogin() {
- return expect(EventType.SOCIAL_LOGIN)
+ return expect(EventType.LOGIN)
.detail(Details.CODE_ID, isCodeId())
.detail(Details.USERNAME, DEFAULT_USERNAME)
.detail(Details.AUTH_METHOD, "form")
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/AccountTotpPage.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/AccountTotpPage.java
index 99716a2..da59926 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/AccountTotpPage.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/AccountTotpPage.java
@@ -44,7 +44,7 @@ public class AccountTotpPage extends AbstractAccountPage {
@FindBy(css = "button[type=\"submit\"]")
private WebElement submitButton;
- @FindBy(id = "remove-google")
+ @FindBy(id = "remove-mobile")
private WebElement removeLink;
public void configure(String totp) {
diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginConfigTotpPage.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginConfigTotpPage.java
index edb8cc5..4f6a5ab 100755
--- a/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginConfigTotpPage.java
+++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/pages/LoginConfigTotpPage.java
@@ -48,7 +48,7 @@ public class LoginConfigTotpPage extends AbstractPage {
}
public boolean isCurrent() {
- return driver.getTitle().equals("FreeOTP Authenticator Setup");
+ return driver.getTitle().equals("Mobile Authenticator Setup");
}
public void open() {