keycloak-aplcache
Changes
forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js 14(+10 -4)
Details
diff --git a/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js b/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js
index 810aef7..0b599bf 100755
--- a/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js
+++ b/forms/common-themes/src/main/resources/theme/base/admin/resources/js/controllers/clients.js
@@ -310,17 +310,23 @@ module.controller('ClientCertificateExportCtrl', function($scope, $location, $ht
data: $scope.jks,
headers: {
'Content-Type': 'application/json',
- 'Accept': 'client/octet-stream'
+ 'Accept': 'application/octet-stream'
}
}).success(function(data){
var blob = new Blob([data], {
- type: 'client/octet-stream'
+ type: 'application/octet-stream'
});
var ext = ".jks";
if ($scope.jks.format == 'PKCS12') ext = ".p12";
saveAs(blob, 'keystore' + ext);
- }).error(function(){
- Notifications.error("Error downloading.");
+ }).error(function(data) {
+ var errorMsg = 'Error downloading';
+ try {
+ var error = JSON.parse(String.fromCharCode.apply(null, new Uint8Array(data)));
+ errorMsg = error['error_description'] ? error['error_description'] : errorMsg;
+ } catch (err) {
+ }
+ Notifications.error(errorMsg);
});
}
diff --git a/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/client-saml-keys.html b/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/client-saml-keys.html
index eff7050..540fa9d 100755
--- a/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/client-saml-keys.html
+++ b/forms/common-themes/src/main/resources/theme/base/admin/resources/partials/client-saml-keys.html
@@ -30,9 +30,9 @@
</div>
<div class="form-group">
<div class="col-md-10 col-md-offset-2" data-ng-show="access.manageRealm">
- <button class="btn btn-primary" type="submit" data-ng-click="generateSigningKey()">Generate new keys</button>
- <button class="btn btn-primary" type="submit" data-ng-click="importSigningKey()">Import</button>
- <button class="btn btn-primary" type="submit" data-ng-hide="!signingKeyInfo.certificate" data-ng-click="exportSigningKey()">Export</button>
+ <button class="btn btn-default" type="submit" data-ng-click="generateSigningKey()">Generate new keys</button>
+ <button class="btn btn-default" type="submit" data-ng-click="importSigningKey()">Import</button>
+ <button class="btn btn-default" type="submit" data-ng-hide="!signingKeyInfo.certificate" data-ng-click="exportSigningKey()">Export</button>
</div>
</div>
</fieldset>
@@ -56,9 +56,9 @@
</div>
<div class="form-group">
<div class="col-md-10 col-md-offset-2" data-ng-show="access.manageRealm">
- <button class="btn btn-primary" type="submit" data-ng-click="generateEncryptionKey()">Generate new keys</button>
- <button class="btn btn-primary" type="submit" data-ng-click="importEncryptionKey()">Import</button>
- <button class="btn btn-primary" type="submit" data-ng-hide="!encryptionKeyInfo.certificate" data-ng-click="exportEncryptionKey()">Export</button>
+ <button class="btn btn-default" type="submit" data-ng-click="generateEncryptionKey()">Generate new keys</button>
+ <button class="btn btn-default" type="submit" data-ng-click="importEncryptionKey()">Import</button>
+ <button class="btn btn-default" type="submit" data-ng-hide="!encryptionKeyInfo.certificate" data-ng-click="exportEncryptionKey()">Export</button>
</div>
</div>
</fieldset>
diff --git a/services/src/main/java/org/keycloak/services/resources/admin/ClientAttributeCertificateResource.java b/services/src/main/java/org/keycloak/services/resources/admin/ClientAttributeCertificateResource.java
index 03ddcfd..d988aaa 100755
--- a/services/src/main/java/org/keycloak/services/resources/admin/ClientAttributeCertificateResource.java
+++ b/services/src/main/java/org/keycloak/services/resources/admin/ClientAttributeCertificateResource.java
@@ -11,6 +11,7 @@ import org.keycloak.models.ClientModel;
import org.keycloak.models.KeycloakSession;
import org.keycloak.models.RealmModel;
import org.keycloak.models.utils.KeycloakModelUtils;
+import org.keycloak.services.ErrorResponseException;
import org.keycloak.util.CertificateUtils;
import org.keycloak.util.PemUtils;
@@ -21,6 +22,7 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.io.ByteArrayOutputStream;
@@ -281,10 +283,10 @@ public class ClientAttributeCertificateResource {
throw new NotFoundException("keypair not generated for client");
}
if (privatePem != null && config.getKeyPassword() == null) {
- throw new BadRequestException("Need to specify a key password for jks download");
+ throw new ErrorResponseException("password-missing", "Need to specify a key password for jks download", Response.Status.BAD_REQUEST);
}
if (config.getStorePassword() == null) {
- throw new BadRequestException("Need to specify a store password for jks download");
+ throw new ErrorResponseException("password-missing", "Need to specify a store password for jks download", Response.Status.BAD_REQUEST);
}
final KeyStore keyStore;
try {