keycloak-aplcache

boolean mapper property types

3/3/2015 2:00:40 PM

Details

diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/protocols.js b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/protocols.js
index f6cef81..b1b2956 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/protocols.js
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/js/controllers/protocols.js
@@ -33,6 +33,8 @@ module.controller('ProtocolMapperCtrl', function($scope, realm, serverInfo, prot
     $scope.mapper = angular.copy(mapper);
     var oldCopy = angular.copy($scope.realm);
     $scope.changed = false;
+    $scope.boolval = true;
+    $scope.boolvalId = 'boolval';
 
     console.log('protocol: ' + protocol);
     var protocolMappers = serverInfo.protocolMapperTypes[protocol];
diff --git a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/protocol-mapper-detail.html b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/protocol-mapper-detail.html
index 7fb569d..6ec92d3 100755
--- a/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/protocol-mapper-detail.html
+++ b/forms/common-themes/src/main/resources/theme/admin/base/resources/partials/protocol-mapper-detail.html
@@ -76,9 +76,12 @@
                 <div data-ng-repeat="option in mapperType.properties" class="form-group">
                     <label class="col-sm-2 control-label">{{option.label}} </label>
 
-                    <div class="col-sm-4">
+                    <div class="col-sm-4" data-ng-hide="option.type == 'boolean'">
                         <input class="form-control" type="text" data-ng-model="mapper.config[ option.name ]" >
                     </div>
+                    <div class="col-sm-4" data-ng-show="option.type == 'boolean'">
+                        <input ng-model="mapper.config[ option.name ]" value="'true'" name="option.name" id="option.name" onoffswitchmodel />
+                    </div>
                     <span tooltip-placement="right" tooltip="{{option.helpText}}" class="fa fa-info-circle"></span>
                 </div>
 
diff --git a/services/src/main/java/org/keycloak/protocol/oidc/mappers/OIDCUserModelMapper.java b/services/src/main/java/org/keycloak/protocol/oidc/mappers/OIDCUserModelMapper.java
index 5efa6c6..91cb5ad 100755
--- a/services/src/main/java/org/keycloak/protocol/oidc/mappers/OIDCUserModelMapper.java
+++ b/services/src/main/java/org/keycloak/protocol/oidc/mappers/OIDCUserModelMapper.java
@@ -46,13 +46,6 @@ public class OIDCUserModelMapper extends AbstractOIDCProtocolMapper implements O
         property.setHelpText("JSON type that should be used to populate the json claim in the token.  long, int, boolean, and String are valid values.");
         configProperties.add(property);
         property = new ConfigProperty();
-        property.setName(OIDCAttributeMapperHelper.JSON_TYPE);
-        property.setLabel(OIDCAttributeMapperHelper.JSON_TYPE);
-        property.setType(ConfigProperty.BOOLEAN_TYPE);
-        property.setDefaultValue("true");
-        property.setHelpText("JSON type that should be used to populate the json claim in the token.  long, int, boolean, and String are valid values.");
-        configProperties.add(property);
-        property = new ConfigProperty();
         property.setName(OIDCAttributeMapperHelper.INCLUDE_IN_ID_TOKEN);
         property.setLabel(OIDCAttributeMapperHelper.INCLUDE_IN_ID_TOKEN_LABEL);
         property.setType(ConfigProperty.BOOLEAN_TYPE);
diff --git a/services/src/main/java/org/keycloak/protocol/oidc/OIDCLoginProtocolFactory.java b/services/src/main/java/org/keycloak/protocol/oidc/OIDCLoginProtocolFactory.java
index 8d3a636..8b172c3 100755
--- a/services/src/main/java/org/keycloak/protocol/oidc/OIDCLoginProtocolFactory.java
+++ b/services/src/main/java/org/keycloak/protocol/oidc/OIDCLoginProtocolFactory.java
@@ -6,11 +6,16 @@ import org.keycloak.models.ProtocolMapperModel;
 import org.keycloak.models.RealmModel;
 import org.keycloak.protocol.AbstractLoginProtocolFactory;
 import org.keycloak.protocol.LoginProtocol;
+import org.keycloak.protocol.ProtocolMapperUtils;
 import org.keycloak.protocol.oidc.mappers.OIDCAddressMapper;
+import org.keycloak.protocol.oidc.mappers.OIDCAttributeMapperHelper;
 import org.keycloak.protocol.oidc.mappers.OIDCFullNameMapper;
 import org.keycloak.protocol.oidc.mappers.OIDCUserModelMapper;
 import org.keycloak.services.managers.AuthenticationManager;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
  * @version $Revision: 1 $
@@ -64,6 +69,10 @@ public class OIDCLoginProtocolFactory extends AbstractLoginProtocolFactory {
             fullName.setConsentRequired(true);
             fullName.setConsentText("full name");
             fullName.setAppliedByDefault(true);
+            Map<String, String> config = new HashMap<String, String>();
+            config.put(OIDCAttributeMapperHelper.INCLUDE_IN_ACCESS_TOKEN, "true");
+            config.put(OIDCAttributeMapperHelper.INCLUDE_IN_ID_TOKEN, "true");
+            fullName.setConfig(config);
             realm.addProtocolMapper(fullName);
         }
 
@@ -75,6 +84,10 @@ public class OIDCLoginProtocolFactory extends AbstractLoginProtocolFactory {
             address.setConsentRequired(true);
             address.setConsentText("address");
             address.setAppliedByDefault(false);
+            Map<String, String> config = new HashMap<String, String>();
+            config.put(OIDCAttributeMapperHelper.INCLUDE_IN_ACCESS_TOKEN, "true");
+            config.put(OIDCAttributeMapperHelper.INCLUDE_IN_ID_TOKEN, "true");
+            address.setConfig(config);
             realm.addProtocolMapper(address);
         }
 
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 efe3fd4..722717f 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
@@ -157,7 +157,7 @@ public class AccountTest {
         });
     }
 
-    //@Test @Ignore
+    @Test @Ignore
     public void runit() throws Exception {
         Thread.sleep(10000000);
     }