diff --git a/maxkey-connectors/maxkey-connector-activedirectory/src/main/resources/application.properties b/maxkey-connectors/maxkey-connector-activedirectory/src/main/resources/application.properties index 45cd2b6ac755858e3d57dd6a74ad7980d4d8a603..35fac8d5cc7ae518609f09ddc47f18ff79dde570 100644 --- a/maxkey-connectors/maxkey-connector-activedirectory/src/main/resources/application.properties +++ b/maxkey-connectors/maxkey-connector-activedirectory/src/main/resources/application.properties @@ -15,7 +15,7 @@ spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.kafka.bootstrap-servers=localhost:9092 ###########【初始化消费者配置】########### # 默认的消费组ID -spring.kafka.consumer.properties.group.id=defaultConsumerGroup +spring.kafka.consumer.properties.group.id=ActiveDirectoryConsumerGroup # 是否自动提交offset spring.kafka.consumer.enable-auto-commit=true # 提交offset延时(接收到消息后多久提交offset) diff --git a/maxkey-connectors/maxkey-connector-ldap/src/main/resources/application.properties b/maxkey-connectors/maxkey-connector-ldap/src/main/resources/application.properties index 4597eff9a4d738be535f841569accf4899403253..063611c9a3f6e619c1c0c3def5a8aa9a6a42b7ef 100644 --- a/maxkey-connectors/maxkey-connector-ldap/src/main/resources/application.properties +++ b/maxkey-connectors/maxkey-connector-ldap/src/main/resources/application.properties @@ -17,7 +17,7 @@ spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.kafka.bootstrap-servers=localhost:9092 ###########【初始化消费者配置】########### # 默认的消费组ID -spring.kafka.consumer.properties.group.id=test-consumer-group +spring.kafka.consumer.properties.group.id=LdapConsumerGroup # 是否自动提交offset spring.kafka.consumer.enable-auto-commit=true # 提交offset延时(接收到消息后多久提交offset) diff --git a/maxkey-core/src/main/java/org/maxkey/json/JsonDateDeserializer.java b/maxkey-core/src/main/java/org/maxkey/json/JsonDateDeserializer.java new file mode 100644 index 0000000000000000000000000000000000000000..75b5ee02c60031cfd4e57a31dd43ef8d36a537e2 --- /dev/null +++ b/maxkey-core/src/main/java/org/maxkey/json/JsonDateDeserializer.java @@ -0,0 +1,33 @@ +package org.maxkey.json; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * JSON deserializer for Jackson to handle regular date instances as timestamps + * in ISO format. + * + */ +public class JsonDateDeserializer extends JsonDeserializer { + + private static final SimpleDateFormat dateFormat = + new SimpleDateFormat("yyyy-MM-dd"); + + @Override + public Date deserialize(JsonParser parser, DeserializationContext context) + throws IOException, JsonProcessingException { + try { + return dateFormat.parse(parser.getText()); + } catch (ParseException e) { + throw new JsonParseException(parser,"Could not parse date", e); + } + } + +} \ No newline at end of file diff --git a/maxkey-core/src/main/java/org/maxkey/json/JsonDateSerializer.java b/maxkey-core/src/main/java/org/maxkey/json/JsonDateSerializer.java index 292681e53c511772af8770f1b845d2523e5a1f9d..d6aa97525cf85d1206ee2809475c4172b47fbe13 100644 --- a/maxkey-core/src/main/java/org/maxkey/json/JsonDateSerializer.java +++ b/maxkey-core/src/main/java/org/maxkey/json/JsonDateSerializer.java @@ -1,28 +1,30 @@ package org.maxkey.json; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import org.springframework.stereotype.Component; - import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import org.springframework.stereotype.Component; /** - * 日期json序列化格式 + * 日期json序列化格式. + * * @author Crystal.Sea * */ + @Component -public class JsonDateSerializer extends JsonSerializer{ - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); +public class JsonDateSerializer extends JsonSerializer { + private static final SimpleDateFormat dateFormat = + new SimpleDateFormat("yyyy-MM-dd"); - @Override - public void serialize(Date date, JsonGenerator gen, SerializerProvider provider) - throws IOException, JsonProcessingException { - String formattedDate = dateFormat.format(date); - gen.writeString(formattedDate); - } + @Override + public void serialize(Date date, JsonGenerator gen, SerializerProvider provider) + throws IOException, JsonProcessingException { + String formattedDate = dateFormat.format(date); + gen.writeString(formattedDate); + } } diff --git a/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeDeserializer.java b/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeDeserializer.java index 1e4f16a8eef9dfba240dfc147c52471de09dae2b..80878b79e83a03f7350016aab5fcdca820297152 100644 --- a/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeDeserializer.java +++ b/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeDeserializer.java @@ -1,31 +1,32 @@ package org.maxkey.json; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; - import org.springframework.stereotype.Component; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; @Component -public class JsonDateTimeDeserializer extends JsonDeserializer{ - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - @Override - public Date deserialize(JsonParser jsonParser, DeserializationContext dc) - throws IOException, JsonProcessingException { - Date parserDate=null; - try { - parserDate = dateFormat.parse(jsonParser.getText()); - } catch (ParseException e) { +public class JsonDateTimeDeserializer extends JsonDeserializer { + private static final SimpleDateFormat dateFormat = + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - e.printStackTrace(); - } - return parserDate; - } + @Override + public Date deserialize(JsonParser parser, DeserializationContext dc) + throws IOException, JsonProcessingException { + Date parserDate = null; + try { + parserDate = dateFormat.parse(parser.getText()); + } catch (ParseException e) { + throw new JsonParseException(parser,"Could not parse date", e); + } + return parserDate; + } } diff --git a/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeSerializer.java b/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeSerializer.java index 2b54ceb812adfde21094c8b83d44677712ca73b9..edf4142e523489f49afd80744d81628c770321af 100644 --- a/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeSerializer.java +++ b/maxkey-core/src/main/java/org/maxkey/json/JsonDateTimeSerializer.java @@ -1,28 +1,28 @@ package org.maxkey.json; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import org.springframework.stereotype.Component; - import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; - +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; +import org.springframework.stereotype.Component; /** - * 日期时间json序列化格式 + * 日期时间json序列化格式. + * * @author Crystal.Sea * */ + @Component -public class JsonDateTimeSerializer extends JsonSerializer{ - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - - @Override - public void serialize(Date date, JsonGenerator gen, SerializerProvider provider) - throws IOException, JsonProcessingException { - String formattedDate = dateFormat.format(date); - gen.writeString(formattedDate); - } +public class JsonDateTimeSerializer extends JsonSerializer { + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + @Override + public void serialize(Date date, JsonGenerator gen, SerializerProvider provider) + throws IOException, JsonProcessingException { + String formattedDate = dateFormat.format(date); + gen.writeString(formattedDate); + } } diff --git a/maxkey-core/src/main/java/org/maxkey/json/JsonISODateDeserializer.java b/maxkey-core/src/main/java/org/maxkey/json/JsonISODateDeserializer.java index 0f1f1c42322b34c21767126830fa19707ee6feed..3c09c7568ec8fd39af1894f1af1281972ba5e207 100644 --- a/maxkey-core/src/main/java/org/maxkey/json/JsonISODateDeserializer.java +++ b/maxkey-core/src/main/java/org/maxkey/json/JsonISODateDeserializer.java @@ -1,47 +1,34 @@ -/* - * Cloud Foundry 2012.02.03 Beta - * Copyright (c) [2009-2012] VMware, Inc. All Rights Reserved. - * - * This product is licensed to you under the Apache License, Version 2.0 (the "License"). - * You may not use this product except in compliance with the License. - * - * This product includes a number of subcomponents with - * separate copyright notices and license terms. Your use of these - * subcomponents is subject to the terms and conditions of the - * subcomponent's license, as noted in the LICENSE file. - */ package org.maxkey.json; - -import java.io.IOException; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; /** - * JSON deserializer for Jackson to handle regular date instances as timestamps in ISO format. - * - * @author Dave Syer + * JSON deserializer for Jackson to handle regular date instances as timestamps + * in ISO format. * */ + public class JsonISODateDeserializer extends JsonDeserializer { - - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - - @Override - public Date deserialize(JsonParser parser, DeserializationContext context) throws IOException, JsonProcessingException { - try { - return dateFormat.parse(parser.getText()); - } - catch (ParseException e) { - throw new JsonParseException("Could not parse date", parser.getCurrentLocation(), e); - } - } - + + private static final SimpleDateFormat dateFormat = + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); + + @Override + public Date deserialize(JsonParser parser, DeserializationContext context) + throws IOException, JsonProcessingException { + try { + return dateFormat.parse(parser.getText()); + } catch (ParseException e) { + throw new JsonParseException(parser,"Could not parse date", e); + } + } + } \ No newline at end of file diff --git a/maxkey-core/src/main/java/org/maxkey/json/JsonISODateSerializer.java b/maxkey-core/src/main/java/org/maxkey/json/JsonISODateSerializer.java index 474153f6e84884ae8f02df2821b5b7a677c5c0ad..408b72098f100df0075aff037d4476846702e356 100644 --- a/maxkey-core/src/main/java/org/maxkey/json/JsonISODateSerializer.java +++ b/maxkey-core/src/main/java/org/maxkey/json/JsonISODateSerializer.java @@ -1,42 +1,28 @@ -/* - * Cloud Foundry 2012.02.03 Beta - * Copyright (c) [2009-2012] VMware, Inc. All Rights Reserved. - * - * This product is licensed to you under the Apache License, Version 2.0 (the "License"). - * You may not use this product except in compliance with the License. - * - * This product includes a number of subcomponents with - * separate copyright notices and license terms. Your use of these - * subcomponents is subject to the terms and conditions of the - * subcomponent's license, as noted in the LICENSE file. - */ package org.maxkey.json; - -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; - import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Date; /** - * JSON serializer for Jackson to handle regular date instances as timestamps in ISO format. - * - * @author Dave Syer - * + * JSON serializer for Jackson to handle regular date instances as timestamps in + * ISO format. */ + public class JsonISODateSerializer extends JsonSerializer { - private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); + private static final SimpleDateFormat dateFormat = + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); - @Override - public void serialize(Date date, JsonGenerator generator, SerializerProvider provider) throws IOException, - JsonProcessingException { - String formatted = dateFormat.format(date); - generator.writeString(formatted); - } + @Override + public void serialize(Date date, JsonGenerator generator, SerializerProvider provider) + throws IOException, JsonProcessingException { + String formatted = dateFormat.format(date); + generator.writeString(formatted); + } } \ No newline at end of file diff --git a/maxkey-identitys/maxkey-identity-scim/.classpath b/maxkey-identitys/maxkey-identity-scim/.classpath index 7f645964a4113aa9e04967e34174356f8daf7464..eca1d9e922f67f44537eb9210e63f30a561962b9 100644 --- a/maxkey-identitys/maxkey-identity-scim/.classpath +++ b/maxkey-identitys/maxkey-identity-scim/.classpath @@ -12,6 +12,20 @@ + + + + + + + + + + + + + + diff --git a/maxkey-identitys/maxkey-identity-scim/.settings/org.eclipse.wst.common.component b/maxkey-identitys/maxkey-identity-scim/.settings/org.eclipse.wst.common.component index 1e2b1677607230e9beed9d7e763dd947898353be..c20d1a875078fad086e6d6676fec219eae1862e3 100644 --- a/maxkey-identitys/maxkey-identity-scim/.settings/org.eclipse.wst.common.component +++ b/maxkey-identitys/maxkey-identity-scim/.settings/org.eclipse.wst.common.component @@ -1,8 +1,9 @@ - - + + + uses diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Enterprise.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Enterprise.java index b9cea8bebd15a35fc6728e779e590c9330a03f10..333ec17b629ebf6dd0b6790d9d00ed78990868d2 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Enterprise.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Enterprise.java @@ -3,11 +3,8 @@ package org.maxkey.identity.scim.resources; import java.io.Serializable; public class Enterprise implements Serializable { - - /** - * - */ private static final long serialVersionUID = -204619629148409697L; + private String employeeNumber; private String costCenter; private String organization; diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/EnterpriseUser.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/EnterpriseUser.java index bf8a57884e01c757fe2ca9ef9df1b6a149acab5f..4da66a74808d031d9b92668b9a6d495eb8acefba 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/EnterpriseUser.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/EnterpriseUser.java @@ -1,16 +1,29 @@ package org.maxkey.identity.scim.resources; +import java.util.HashSet; + +import com.fasterxml.jackson.annotation.JsonProperty; + public class EnterpriseUser extends User { - /** - * - */ private static final long serialVersionUID = 3212312511630459427L; public static final String SCHEMA = "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"; + @JsonProperty(SCHEMA) Enterprise enterprise; public EnterpriseUser() { + schemas =new HashSet(); + schemas.add(User.SCHEMA); + schemas.add(SCHEMA); + } + + public Enterprise getEnterprise() { + return enterprise; + } + + public void setEnterprise(Enterprise enterprise) { + this.enterprise = enterprise; } diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Group.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Group.java index 2b4a64d74a873818616cfa9c8635979ab9d38522..9d045d6b167e3ec6b685c110dd00e527ec9591cc 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Group.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Group.java @@ -1,13 +1,16 @@ package org.maxkey.identity.scim.resources; +import java.util.HashSet; import java.util.Set; -public class Group { +public class Group extends Resource{ + private static final long serialVersionUID = 404613567384513866L; public static final String SCHEMA = "urn:ietf:params:scim:schemas:core:2.0:Group"; - + private String displayName; private Set members; + public String getDisplayName() { return displayName; } @@ -20,7 +23,10 @@ public class Group { public void setMembers(Set members) { this.members = members; } + public Group() { + schemas =new HashSet(); + schemas.add(SCHEMA); } } diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Meta.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Meta.java index 92a74010297c170cb5279ff88fbbaeca77977783..b082e9e7d2b9d8e41635c8bf87ab6eb842e9ec8b 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Meta.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Meta.java @@ -4,6 +4,11 @@ import java.io.Serializable; import java.util.Date; import java.util.Set; +import org.maxkey.json.*; + +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + public class Meta implements Serializable { /** @@ -12,10 +17,20 @@ public class Meta implements Serializable { private static final long serialVersionUID = -2244662962968933591L; private String resourceType; + + @JsonSerialize(using = JsonISODateSerializer.class) + @JsonDeserialize(using = JsonISODateDeserializer.class) private Date created; + + @JsonSerialize(using = JsonISODateSerializer.class) + @JsonDeserialize(using = JsonISODateDeserializer.class) + private Date lastModified; + private String location; + private String version; + private Set attributes; diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/MultiValuedAttribute.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/MultiValuedAttribute.java index 138fa0d1759f271ef950f869186f56e4e931e4ab..770c647fb95516ff581b888ee7dc69689e0513db 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/MultiValuedAttribute.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/MultiValuedAttribute.java @@ -2,11 +2,16 @@ package org.maxkey.identity.scim.resources; import java.io.Serializable; +import com.fasterxml.jackson.annotation.JsonProperty; + public class MultiValuedAttribute implements Serializable { + private static final long serialVersionUID = 6878912593878245947L; + String value; String display; boolean primary; + @JsonProperty("$ref") String reference; String type; diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Resource.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Resource.java index c89579eee7f3f6a6a7b19a1a1ad605c63747b817..78c81611fd7bca152c3be3e5c32f2a0d5a74ac80 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Resource.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/Resource.java @@ -9,10 +9,11 @@ public class Resource implements Serializable { * */ private static final long serialVersionUID = -5159743553948621024L; + protected Set schemas; private String id; private String externalId; private Meta meta; - private Set schemas; + public Resource() { } diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/User.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/User.java index dd4f4003fc9daa27281aba431b351eeb69cd0305..14f7368c254a14da499190e49a5d41f455f30f9f 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/User.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/User.java @@ -1,5 +1,6 @@ package org.maxkey.identity.scim.resources; +import java.util.HashSet; import java.util.List; import java.util.Map; @@ -176,6 +177,8 @@ public class User extends Resource{ this.extensions = extensions; } public User() { + schemas =new HashSet(); + schemas.add(SCHEMA); } diff --git a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/UserPhoneNumber.java b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/UserPhoneNumber.java index 2faa4757d44ef4cb8e69e1c53c996913f3b60063..703c5899f2be5e58ba75ae346bd82b52727e35e6 100644 --- a/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/UserPhoneNumber.java +++ b/maxkey-identitys/maxkey-identity-scim/src/main/java/org/maxkey/identity/scim/resources/UserPhoneNumber.java @@ -2,7 +2,7 @@ package org.maxkey.identity.scim.resources; import java.io.Serializable; -public class UserPhoneNumber implements Serializable { +public class UserPhoneNumber extends MultiValuedAttribute implements Serializable { /** * diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ReadJson2String.java b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ReadJson2String.java new file mode 100644 index 0000000000000000000000000000000000000000..85cde08f93136046522c2eeec94dca154921eed1 --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ReadJson2String.java @@ -0,0 +1,24 @@ +package org.maxkey.identity.scim.resources; + +import java.io.File; +import java.util.List; + +import org.apache.commons.io.FileUtils; + +public class ReadJson2String { + + public static String read(String jsonFileName) { + try { + List list = FileUtils.readLines(new File(ReadJson2String.class.getResource(jsonFileName).getFile()),"UTF-8"); + StringBuilder sb = new StringBuilder(); + for (String ss : list) { + sb.append(ss); + } + System.out.println(sb.toString()); + return sb.toString(); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonString.json b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonString.json new file mode 100644 index 0000000000000000000000000000000000000000..2c6d5351cc1ccabc76a5eb5c38c0040f44726bed --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonString.json @@ -0,0 +1,48 @@ +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User", + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User" + ], + "id": "1111111111111", + "externalId": "UserName", + "meta": { + "resourceType": "User", + "created": "2020-06-15T23:06:00.129Z", + "lastModified": "2020-06-15T23:06:00.129Z", + "location": "https://example.com/v2/Users/2819c223...", + "version": "W\\/\"f250dd84f0671c3\"" + }, + "userName": "UserName", + "name": { + "formatted": "Ms. Barbara J Jensen, III", + "familyName": "Jensen", + "givenName": "Barbara", + "middleName": "Jane", + "honorificPrefix": "Ms.", + "honorificSuffix": "III" + }, + "emails": [ + { + "value": "bjensen@example.com", + "primary": false, + "type": "work" + } + ], + "phoneNumbers": [ + { + "value": "555-555-8377", + "primary": false, + "type": "home" + }, + { + "value": "555-555-8377", + "primary": false, + "type": "work" + } + ], + "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User": { + "employeeNumber": "k200908", + "costCenter": "1111", + "department": "de" + } +} \ No newline at end of file diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonString2ObjectTest.java b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonString2ObjectTest.java new file mode 100644 index 0000000000000000000000000000000000000000..dc9f88f523484b83fb564b353fbc973c62d55a20 --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonString2ObjectTest.java @@ -0,0 +1,18 @@ +package org.maxkey.identity.scim.resources; + +import org.maxkey.pretty.impl.JsonPretty; +import org.maxkey.util.JsonUtils; + +public class ScimEnterpriseUserJsonString2ObjectTest { + + public static void main(String[] args) { + + String userJsonString = ReadJson2String.read("ScimEnterpriseUserJsonString.json"); + EnterpriseUser u = JsonUtils.json2Object(userJsonString, EnterpriseUser.class); + + System.out.println( + (new JsonPretty()).format(JsonUtils.object2Json(u))); + System.out.println(u.getEnterprise().getCostCenter()); + } + +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonTest.java b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..2067d27f2e819af34743fcc169576951ab8c4ade --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimEnterpriseUserJsonTest.java @@ -0,0 +1,67 @@ +package org.maxkey.identity.scim.resources; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import org.maxkey.pretty.impl.JsonPretty; +import org.maxkey.util.JsonUtils; + +public class ScimEnterpriseUserJsonTest { + + public static void main(String[] args) { + + // TODO Auto-generated method stub + EnterpriseUser u = new EnterpriseUser(); + u.setUserName("UserName"); + u.setExternalId("UserName"); + u.setId("1111111111111"); + + Meta meta = new Meta(); + meta.setVersion("W\\/\"f250dd84f0671c3\""); + meta.setCreated(new Date()); + meta.setLocation("https://example.com/v2/Users/2819c223..."); + meta.setResourceType("User"); + meta.setLastModified(new Date()); + u.setMeta(meta); + + UserName un=new UserName(); + un.setFamilyName("Jensen"); + un.setFormatted("Ms. Barbara J Jensen, III"); + un.setGivenName("Barbara"); + un.setHonorificPrefix("Ms."); + un.setHonorificSuffix("III"); + un.setMiddleName("Jane"); + u.setName(un); + + List UserPhoneNumberList = new ArrayList(); + UserPhoneNumber pn =new UserPhoneNumber(); + pn.setValue("555-555-8377"); + pn.setType(UserPhoneNumber.UserPhoneNumberType.WORK); + + UserPhoneNumber pnh =new UserPhoneNumber(); + pnh.setValue("555-555-8377"); + pnh.setType(UserPhoneNumber.UserPhoneNumberType.HOME); + UserPhoneNumberList.add(pnh); + + UserPhoneNumberList.add(pn); + + u.setPhoneNumbers(UserPhoneNumberList); + + List ueList = new ArrayList(); + UserEmail ue =new UserEmail(); + ue.setValue("bjensen@example.com"); + ue.setType(UserEmail.UserEmailType.WORK); + ueList.add(ue); + u.setEmails(ueList); + + Enterprise ent =new Enterprise(); + ent.setCostCenter("1111"); + ent.setDepartment("de"); + ent.setEmployeeNumber("k200908"); + u.setEnterprise(ent); + + System.out.println( + (new JsonPretty()).format(JsonUtils.object2Json(u))); + } + +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonString.json b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonString.json new file mode 100644 index 0000000000000000000000000000000000000000..630e35036b6c2bb223d4fbef7e476627d45f6022 --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonString.json @@ -0,0 +1,33 @@ +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:Group" + ], + "meta": { + "resourceType": "User", + "created": "2020-06-15T23:08:50.698Z", + "lastModified": "2020-06-15T23:08:50.698Z", + "location": "https://example.com/v2/Users/2819c223...", + "version": "W\\/\"f250dd84f0671c3\"" + }, + "displayName": "Tour Guides", + "members": [ + { + "value": "2819c223-7f76-453a-919d-413861904646", + "display": "Babs Jensen", + "primary": false, + "$ref": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646" + }, + { + "value": "2819c223-7f76-453a-919d-413861904646", + "display": "Babs Jensen", + "primary": false, + "$ref": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646" + }, + { + "value": "2819c223-7f76-453a-919d-413861904646", + "display": "Babs Jensen", + "primary": false, + "$ref": "https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646" + } + ] +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonString2ObjectTest.java b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonString2ObjectTest.java new file mode 100644 index 0000000000000000000000000000000000000000..77fc0beadb40f23db01659cb1c735f97ba6dbe1f --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonString2ObjectTest.java @@ -0,0 +1,19 @@ +package org.maxkey.identity.scim.resources; + +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import org.maxkey.pretty.impl.JsonPretty; +import org.maxkey.util.JsonUtils; + +public class ScimGroupJsonString2ObjectTest { + public static void main(String[] args) { + String userJsonString = ReadJson2String.read("ScimGroupJsonString.json"); + Group g = JsonUtils.json2Object(userJsonString, Group.class); + + + System.out.println( + (new JsonPretty()).format(JsonUtils.object2Json(g))); + } +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonTest.java b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..1e01aeb7cbc75102fbfcbdf1140ca9533d846738 --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimGroupJsonTest.java @@ -0,0 +1,46 @@ +package org.maxkey.identity.scim.resources; + +import java.util.Date; +import java.util.HashSet; +import java.util.Set; + +import org.maxkey.pretty.impl.JsonPretty; +import org.maxkey.util.JsonUtils; + +public class ScimGroupJsonTest { + public static void main(String[] args) { + Group g= new Group(); + + Meta meta = new Meta(); + meta.setVersion("W\\/\"f250dd84f0671c3\""); + meta.setCreated(new Date()); + meta.setLocation("https://example.com/v2/Users/2819c223..."); + meta.setResourceType("User"); + meta.setLastModified(new Date()); + g.setMeta(meta); + + g.setDisplayName("Tour Guides"); + + Set mrSet =new HashSet(); + MemberRef mr1 =new MemberRef(); + mr1.setReference("https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"); + mr1.setValue("2819c223-7f76-453a-919d-413861904646"); + mr1.setDisplay("Babs Jensen"); + MemberRef mr2 =new MemberRef(); + mr2.setReference("https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"); + mr2.setValue("2819c223-7f76-453a-919d-413861904646"); + mr2.setDisplay("Babs Jensen"); + MemberRef mr3 =new MemberRef(); + mr3.setReference("https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646"); + mr3.setValue("2819c223-7f76-453a-919d-413861904646"); + mr3.setDisplay("Babs Jensen"); + mrSet.add(mr1); + mrSet.add(mr2); + mrSet.add(mr3); + + g.setMembers(mrSet); + + System.out.println( + (new JsonPretty()).format(JsonUtils.object2Json(g))); + } +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonString.json b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonString.json new file mode 100644 index 0000000000000000000000000000000000000000..35c91aa85fb0d00e9a2bdd863b79bf7ae408ffde --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonString.json @@ -0,0 +1,42 @@ +{ + "schemas": [ + "urn:ietf:params:scim:schemas:core:2.0:User" + ], + "id": "1111111111111", + "externalId": "UserName", + "meta": { + "resourceType": "User", + "created": "2020-06-15T23:09:30.763Z", + "lastModified": "2020-06-15T23:09:30.763Z", + "location": "https://example.com/v2/Users/2819c223...", + "version": "W\\/\"f250dd84f0671c3\"" + }, + "userName": "UserName", + "name": { + "formatted": "Ms. Barbara J Jensen, III", + "familyName": "Jensen", + "givenName": "Barbara", + "middleName": "Jane", + "honorificPrefix": "Ms.", + "honorificSuffix": "III" + }, + "emails": [ + { + "value": "bjensen@example.com", + "primary": false, + "type": "work" + } + ], + "phoneNumbers": [ + { + "value": "555-555-8377", + "primary": false, + "type": "home" + }, + { + "value": "555-555-8377", + "primary": false, + "type": "work" + } + ] +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonString2ObjectTest.java b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonString2ObjectTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ee6ce5784e9f4f7d592b2dcbc05c113de63b4139 --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonString2ObjectTest.java @@ -0,0 +1,16 @@ +package org.maxkey.identity.scim.resources; + +import org.maxkey.pretty.impl.JsonPretty; +import org.maxkey.util.JsonUtils; + +public class ScimUserJsonString2ObjectTest { + + public static void main(String[] args) { + + String userJsonString = ReadJson2String.read("ScimUserJsonString.json"); + User u = JsonUtils.json2Object(userJsonString, User.class); + System.out.println( + (new JsonPretty()).format(JsonUtils.object2Json(u))); + } + +} diff --git a/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonTest.java b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c4ddc7227b8b40de5b15fa24cb89f829b2d66fc7 --- /dev/null +++ b/maxkey-identitys/maxkey-identity-scim/src/test/java/org/maxkey/identity/scim/resources/ScimUserJsonTest.java @@ -0,0 +1,60 @@ +package org.maxkey.identity.scim.resources; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import org.maxkey.pretty.impl.JsonPretty; +import org.maxkey.util.JsonUtils; + +public class ScimUserJsonTest { + + public static void main(String[] args) { + // TODO Auto-generated method stub + User u = new User(); + u.setUserName("UserName"); + u.setExternalId("UserName"); + u.setId("1111111111111"); + + Meta meta = new Meta(); + meta.setVersion("W\\/\"f250dd84f0671c3\""); + meta.setCreated(new Date()); + meta.setLocation("https://example.com/v2/Users/2819c223..."); + meta.setResourceType("User"); + meta.setLastModified(new Date()); + u.setMeta(meta); + + UserName un=new UserName(); + un.setFamilyName("Jensen"); + un.setFormatted("Ms. Barbara J Jensen, III"); + un.setGivenName("Barbara"); + un.setHonorificPrefix("Ms."); + un.setHonorificSuffix("III"); + un.setMiddleName("Jane"); + u.setName(un); + + List UserPhoneNumberList = new ArrayList(); + UserPhoneNumber pn =new UserPhoneNumber(); + pn.setValue("555-555-8377"); + pn.setType(UserPhoneNumber.UserPhoneNumberType.WORK); + + UserPhoneNumber pnh =new UserPhoneNumber(); + pnh.setValue("555-555-8377"); + pnh.setType(UserPhoneNumber.UserPhoneNumberType.HOME); + UserPhoneNumberList.add(pnh); + + UserPhoneNumberList.add(pn); + + u.setPhoneNumbers(UserPhoneNumberList); + + List ueList = new ArrayList(); + UserEmail ue =new UserEmail(); + ue.setValue("bjensen@example.com"); + ue.setType(UserEmail.UserEmailType.WORK); + ueList.add(ue); + u.setEmails(ueList); + + System.out.println( + (new JsonPretty()).format(JsonUtils.object2Json(u))); + } + +}