keycloak-memoizeit
Changes
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 e2e5f48..8ef7c4a 100755
--- a/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
+++ b/core/src/main/java/org/keycloak/representations/idm/RealmRepresentation.java
@@ -18,6 +18,7 @@ public class RealmRepresentation {
protected boolean sslNotRequired;
protected boolean cookieLoginAllowed;
protected boolean registrationAllowed;
+ protected boolean social;
protected String privateKey;
protected String publicKey;
protected List<RoleRepresentation> roles;
@@ -205,4 +206,12 @@ public class RealmRepresentation {
public void setRegistrationAllowed(boolean registrationAllowed) {
this.registrationAllowed = registrationAllowed;
}
+
+ public boolean isSocial() {
+ return social;
+ }
+
+ public void setSocial(boolean social) {
+ this.social = social;
+ }
}
diff --git a/examples/as7-eap-demo/server/src/main/webapp/saas/admin/js/controllers.js b/examples/as7-eap-demo/server/src/main/webapp/saas/admin/js/controllers.js
index b01fd77..8680990 100755
--- a/examples/as7-eap-demo/server/src/main/webapp/saas/admin/js/controllers.js
+++ b/examples/as7-eap-demo/server/src/main/webapp/saas/admin/js/controllers.js
@@ -58,6 +58,8 @@ module.controller('RealmDropdownCtrl', function($scope, Realm, Current, Auth, $l
module.controller('RealmDetailCtrl', function($scope, Current, Realm, realm, $http, $location, Dialog, Notifications) {
$scope.createRealm = !realm.id;
+ console.log('RealmDetailCtrl');
+
if ($scope.createRealm) {
$scope.realm = {
enabled: true,
@@ -67,7 +69,9 @@ module.controller('RealmDetailCtrl', function($scope, Current, Realm, realm, $ht
tokenLifespanUnit: 'SECONDS',
accessCodeLifespan: 300,
accessCodeLifespanUnit: 'SECONDS',
- requiredCredentials: ['password']
+ requiredCredentials: ['password'],
+ requiredOAuthClientCredentials: ['password'],
+ requiredApplicationCredentials: ['password']
};
} else {
@@ -81,6 +85,7 @@ module.controller('RealmDetailCtrl', function($scope, Current, Realm, realm, $ht
}
if (Current.realm == null || Current.realm.id != realm.id) {
console.log('should be unreachable');
+ console.log('Why? ' + Current.realms.length + ' ' + Current.realm);
return;
}
$scope.realm = angular.copy(realm);
@@ -95,7 +100,7 @@ module.controller('RealmDetailCtrl', function($scope, Current, Realm, realm, $ht
$scope.userCredentialOptions = {
- 'multiple' : true,
+ 'multiple' : true,
'simple_tags' : true,
'tags' : ['password', 'totp', 'cert']
};
@@ -133,6 +138,7 @@ module.controller('RealmDetailCtrl', function($scope, Current, Realm, realm, $ht
});
} else {
console.log('updating realm...');
+ $scope.changed = false;
Realm.update(realmCopy, function() {
var id = realmCopy.id;
var data = Realm.query(function() {
@@ -140,6 +146,7 @@ module.controller('RealmDetailCtrl', function($scope, Current, Realm, realm, $ht
for (var i = 0; i < Current.realms.length; i++) {
if (Current.realms[i].id == id) {
Current.realm = Current.realms[i];
+ oldCopy = angular.copy($scope.realm);
}
}
});
diff --git a/examples/as7-eap-demo/server/src/main/webapp/saas/admin/partials/realm-detail.html b/examples/as7-eap-demo/server/src/main/webapp/saas/admin/partials/realm-detail.html
index 14d76e0..a5675d8 100755
--- a/examples/as7-eap-demo/server/src/main/webapp/saas/admin/partials/realm-detail.html
+++ b/examples/as7-eap-demo/server/src/main/webapp/saas/admin/partials/realm-detail.html
@@ -19,7 +19,7 @@
<fieldset>
<div class="control-group">
- <label for="realmForm-name" class="control-label">Name</label>
+ <label for="realmForm-name" class="control-label">Name <span class="required">*</span></label>
<div class="controls">
<input class="input-xlarge" type="text" name="name" data-ng-model="realm.realm" autofocus
@@ -118,12 +118,26 @@
</div>
</div>
<div class="control-group">
- <label class="control-label">User Required Credentials</label>
+ <label class="control-label">Required User Credentials</label>
<div class="controls">
<input style="width:250px" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredCredentials">
</div>
</div>
+ <div class="control-group">
+ <label class="control-label">Required Application Credentials</label>
+
+ <div class="controls">
+ <input style="width:250px" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredApplicationCredentials">
+ </div>
+ </div>
+ <div class="control-group">
+ <label class="control-label">Required OAuth Credentials</label>
+
+ <div class="controls">
+ <input style="width:250px" type="text" ui-select2="userCredentialOptions" ng-model="realm.requiredOAuthClientCredentials">
+ </div>
+ </div>
</fieldset>
<div class="form-actions" data-ng-show="createRealm">
<button type="submit" data-ng-click="save()" class="btn btn-primary" data-ng-show="changed">Save
diff --git a/services/src/main/java/org/keycloak/services/managers/RealmManager.java b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
index ce311aa..524fb88 100755
--- a/services/src/main/java/org/keycloak/services/managers/RealmManager.java
+++ b/services/src/main/java/org/keycloak/services/managers/RealmManager.java
@@ -69,6 +69,7 @@ public class RealmManager {
public void updateRealm(RealmRepresentation rep, RealmModel realm) {
if (rep.getRealm() != null) realm.setName(rep.getRealm());
realm.setEnabled(rep.isEnabled());
+ realm.setSocial(rep.isSocial());
realm.setCookieLoginAllowed(rep.isCookieLoginAllowed());
realm.setRegistrationAllowed(rep.isRegistrationAllowed());
realm.setSslNotRequired((rep.isSslNotRequired()));
@@ -78,7 +79,6 @@ public class RealmManager {
realm.updateRequiredOAuthClientCredentials(rep.getRequiredOAuthClientCredentials());
}
if (rep.getRequiredCredentials() != null) {
- logger.info("updating required credentials");
realm.updateRequiredCredentials(rep.getRequiredCredentials());
}
if (rep.getRequiredApplicationCredentials() != null) {
@@ -98,6 +98,7 @@ public class RealmManager {
public void importRealm(RealmRepresentation rep, RealmModel newRealm) {
newRealm.setName(rep.getRealm());
newRealm.setEnabled(rep.isEnabled());
+ newRealm.setSocial(rep.isSocial());
newRealm.setTokenLifespan(rep.getTokenLifespan());
newRealm.setAccessCodeLifespan(rep.getAccessCodeLifespan());
newRealm.setSslNotRequired(rep.isSslNotRequired());
@@ -233,6 +234,7 @@ public class RealmManager {
rep.setId(realm.getId());
rep.setRealm(realm.getName());
rep.setEnabled(realm.isEnabled());
+ rep.setSocial(realm.isSocial());
rep.setSslNotRequired(realm.isSslNotRequired());
rep.setCookieLoginAllowed(realm.isCookieLoginAllowed());
rep.setPublicKey(realm.getPublicKeyPem());
diff --git a/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmData.java b/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmData.java
index 9d791d5..0dc72b9 100755
--- a/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmData.java
+++ b/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmData.java
@@ -14,6 +14,7 @@ public class RealmData extends AbstractPartition {
private boolean sslNotRequired;
private boolean cookieLoginAllowed;
private boolean registrationAllowed;
+ private boolean social;
private int tokenLifespan;
private int accessCodeLifespan;
private String publicKeyPem;
@@ -45,6 +46,15 @@ public class RealmData extends AbstractPartition {
}
@AttributeProperty
+ public boolean isSocial() {
+ return social;
+ }
+
+ public void setSocial(boolean social) {
+ this.social = social;
+ }
+
+ @AttributeProperty
public boolean isSslNotRequired() {
return sslNotRequired;
}
diff --git a/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmEntity.java b/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmEntity.java
index 7d203be..e4b83c4 100755
--- a/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmEntity.java
+++ b/services/src/main/java/org/keycloak/services/models/picketlink/mappings/RealmEntity.java
@@ -35,6 +35,8 @@ public class RealmEntity implements Serializable {
@AttributeValue
private boolean registrationAllowed;
@AttributeValue
+ private boolean social;
+ @AttributeValue
private int tokenLifespan;
@AttributeValue
private int accessCodeLifespan;
@@ -94,6 +96,14 @@ public class RealmEntity implements Serializable {
this.registrationAllowed = registrationAllowed;
}
+ public boolean isSocial() {
+ return social;
+ }
+
+ public void setSocial(boolean social) {
+ this.social = social;
+ }
+
public int getTokenLifespan() {
return tokenLifespan;
}
diff --git a/services/src/main/java/org/keycloak/services/models/picketlink/RealmAdapter.java b/services/src/main/java/org/keycloak/services/models/picketlink/RealmAdapter.java
index 0885b97..2e7371a 100755
--- a/services/src/main/java/org/keycloak/services/models/picketlink/RealmAdapter.java
+++ b/services/src/main/java/org/keycloak/services/models/picketlink/RealmAdapter.java
@@ -26,6 +26,7 @@ import org.picketlink.idm.credential.TOTPCredentials;
import org.picketlink.idm.credential.UsernamePasswordCredentials;
import org.picketlink.idm.credential.X509CertificateCredentials;
import org.picketlink.idm.model.IdentityType;
+import org.picketlink.idm.model.annotation.AttributeProperty;
import org.picketlink.idm.model.sample.Grant;
import org.picketlink.idm.model.sample.Role;
import org.picketlink.idm.model.sample.SampleModel;
@@ -111,6 +112,16 @@ public class RealmAdapter implements RealmModel {
}
@Override
+ public boolean isSocial() {
+ return realm.isSocial();
+ }
+
+ @Override
+ public void setSocial(boolean social) {
+ realm.setSocial(social);
+ }
+
+ @Override
public boolean isSslNotRequired() {
return realm.isSslNotRequired();
}
diff --git a/services/src/main/java/org/keycloak/services/models/RealmModel.java b/services/src/main/java/org/keycloak/services/models/RealmModel.java
index b2a504d..605de11 100755
--- a/services/src/main/java/org/keycloak/services/models/RealmModel.java
+++ b/services/src/main/java/org/keycloak/services/models/RealmModel.java
@@ -120,4 +120,8 @@ public interface RealmModel {
void updateRequiredOAuthClientCredentials(Set<String> creds);
void updateRequiredApplicationCredentials(Set<String> creds);
+
+ boolean isSocial();
+
+ void setSocial(boolean social);
}