From 45029ab3bc4f6c293f3a59af233f015b71cc0c09 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Tue, 21 Mar 2017 09:30:03 +0000
Subject: [PATCH] #3527 fix - Ignoring unknown properties for unmarshall

---
 securis/src/main/java/net/curisit/securis/db/User.java |  329 ++++++++++++++++++++++++++----------------------------
 1 files changed, 161 insertions(+), 168 deletions(-)

diff --git a/securis/src/main/java/net/curisit/securis/db/User.java b/securis/src/main/java/net/curisit/securis/db/User.java
index e8b643b..e1e7396 100644
--- a/securis/src/main/java/net/curisit/securis/db/User.java
+++ b/securis/src/main/java/net/curisit/securis/db/User.java
@@ -19,6 +19,7 @@
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude.Include;
 import com.fasterxml.jackson.annotation.JsonProperty;
@@ -29,217 +30,209 @@
  */
 @JsonAutoDetect
 @JsonInclude(Include.NON_NULL)
+@JsonIgnoreProperties(ignoreUnknown = true)
 @Entity
 @Table(name = "user")
-@NamedQueries({
-        @NamedQuery(name = "list-users", query = "SELECT u FROM User u"),
-        @NamedQuery(name = "get-user", query = "SELECT u FROM User u where u.username = :username"),
-        @NamedQuery(name = "auth-user", query = "SELECT u FROM User u where u.username = :username and u.password = :password"),
-        @NamedQuery(name = "delete-all-users", query = "delete FROM User u")
-})
+@NamedQueries({ @NamedQuery(name = "list-users", query = "SELECT u FROM User u"), @NamedQuery(name = "get-user", query = "SELECT u FROM User u where u.username = :username"),
+		@NamedQuery(name = "auth-user", query = "SELECT u FROM User u where u.username = :username and u.password = :password"),
+		@NamedQuery(name = "delete-all-users", query = "delete FROM User u") })
 public class User implements Serializable {
 
-    private static final long serialVersionUID = 1L;
+	private static final long serialVersionUID = 1L;
 
-    @Id
-    private String username;
+	@Id
+	private String username;
 
-    private String password;
+	private String password;
 
-    @JsonProperty(value = "first_name")
-    @Column(name = "first_name")
-    private String firstName;
+	@JsonProperty(value = "first_name")
+	@Column(name = "first_name")
+	private String firstName;
 
-    @JsonProperty(value = "last_name")
-    @Column(name = "last_name")
-    private String lastName;
+	@JsonProperty(value = "last_name")
+	@Column(name = "last_name")
+	private String lastName;
 
-    private int roles;
+	private int roles;
 
-    @Column(name = "last_login")
-    private Date lastLogin;
+	@Column(name = "last_login")
+	private Date lastLogin;
 
-    @Column(name = "modification_timestamp")
-    private Date modificationTimestamp;
+	@Column(name = "modification_timestamp")
+	private Date modificationTimestamp;
 
-    @Column(name = "creation_timestamp")
-    @JsonProperty("creation_timestamp")
-    private Date creationTimestamp;
+	@Column(name = "creation_timestamp")
+	@JsonProperty("creation_timestamp")
+	private Date creationTimestamp;
 
-    private String lang;
+	private String lang;
 
-    private String email;
+	private String email;
 
-    @JsonIgnore
-    @ManyToMany
-    @JoinTable(name = "user_organization", //
-    joinColumns = {
-        @JoinColumn(name = "username", referencedColumnName = "username")
-    }, //
-    inverseJoinColumns = {
-        @JoinColumn(name = "organization_id", referencedColumnName = "id")
-    } //
-    )
-    private Set<Organization> organizations;
+	@JsonIgnore
+	@ManyToMany
+	@JoinTable(name = "user_organization", //
+			joinColumns = { @JoinColumn(name = "username", referencedColumnName = "username") }, //
+			inverseJoinColumns = { @JoinColumn(name = "organization_id", referencedColumnName = "id") } //
+	)
+	private Set<Organization> organizations;
 
-    public String getUsername() {
-        return username;
-    }
+	public String getUsername() {
+		return username;
+	}
 
-    public void setUsername(String username) {
-        this.username = username;
-    }
+	public void setUsername(String username) {
+		this.username = username;
+	}
 
-    @JsonProperty("password")
-    public String getDummyPassword() {
-        return null;
-    }
+	@JsonProperty("password")
+	public String getDummyPassword() {
+		return null;
+	}
 
-    public String getPassword() {
-        return password;
-    }
+	public String getPassword() {
+		return password;
+	}
 
-    public void setPassword(String password) {
-        this.password = password;
-    }
+	public void setPassword(String password) {
+		this.password = password;
+	}
 
-    public List<Integer> getRoles() {
-        if (roles == 0) {
-            return null;
-        }
-        List<Integer> aux = new ArrayList<>();
-        for (int rol : Rol.ALL) {
-            if ((roles & rol) != 0) { // Each rol is a number with only 1 bit ==
-                                      // 1 in binary representation
-                aux.add(rol);
-            }
-        }
-        return aux;
-    }
+	public List<Integer> getRoles() {
+		if (roles == 0) {
+			return null;
+		}
+		List<Integer> aux = new ArrayList<>();
+		for (int rol : Rol.ALL) {
+			if ((roles & rol) != 0) { // Each rol is a number with only 1 bit ==
+											// 1 in binary representation
+				aux.add(rol);
+			}
+		}
+		return aux;
+	}
 
-    public void setRoles(List<Integer> roles) {
-        this.roles = 0;
-        if (roles != null) {
-            for (Integer rol : roles) {
-                this.roles |= rol;
-            }
-        }
-    }
+	public void setRoles(List<Integer> roles) {
+		this.roles = 0;
+		if (roles != null) {
+			for (Integer rol : roles) {
+				this.roles |= rol;
+			}
+		}
+	}
 
-    public String getFirstName() {
-        return firstName;
-    }
+	public String getFirstName() {
+		return firstName;
+	}
 
-    public void setFirstName(String firstName) {
-        this.firstName = firstName;
-    }
+	public void setFirstName(String firstName) {
+		this.firstName = firstName;
+	}
 
-    public String getLastName() {
-        return lastName;
-    }
+	public String getLastName() {
+		return lastName;
+	}
 
-    public void setLastName(String lastName) {
-        this.lastName = lastName;
-    }
+	public void setLastName(String lastName) {
+		this.lastName = lastName;
+	}
 
-    public Date getLastLogin() {
-        return lastLogin;
-    }
+	public Date getLastLogin() {
+		return lastLogin;
+	}
 
-    public void setLastLogin(Date lastLogin) {
-        this.lastLogin = lastLogin;
-    }
+	public void setLastLogin(Date lastLogin) {
+		this.lastLogin = lastLogin;
+	}
 
-    public Date getModificationTimestamp() {
-        return modificationTimestamp;
-    }
+	public Date getModificationTimestamp() {
+		return modificationTimestamp;
+	}
 
-    public void setModificationTimestamp(Date modificationTimestamp) {
-        this.modificationTimestamp = modificationTimestamp;
-    }
+	public void setModificationTimestamp(Date modificationTimestamp) {
+		this.modificationTimestamp = modificationTimestamp;
+	}
 
-    public Date getCreationTimestamp() {
-        return creationTimestamp;
-    }
+	public Date getCreationTimestamp() {
+		return creationTimestamp;
+	}
 
-    public void setCreationTimestamp(Date creationTimestamp) {
-        this.creationTimestamp = creationTimestamp;
-    }
+	public void setCreationTimestamp(Date creationTimestamp) {
+		this.creationTimestamp = creationTimestamp;
+	}
 
-    @Override
-    public String toString() {
-        return "{User: " + username + " Name: " + firstName + " " + lastName + ", last login: " + lastLogin + "}";
-    }
+	@Override
+	public String toString() {
+		return "{User: " + username + " Name: " + firstName + " " + lastName + ", last login: " + lastLogin + "}";
+	}
 
-    public String getLang() {
-        return lang;
-    }
+	public String getLang() {
+		return lang;
+	}
 
-    public void setLang(String lang) {
-        this.lang = lang;
-    }
+	public void setLang(String lang) {
+		this.lang = lang;
+	}
 
-    public Set<Organization> getOrganizations() {
-        return organizations;
-    }
+	public Set<Organization> getOrganizations() {
+		return organizations;
+	}
 
-    public void setOrganizations(Set<Organization> organizations) {
-        this.organizations = organizations;
-    }
+	public void setOrganizations(Set<Organization> organizations) {
+		this.organizations = organizations;
+	}
 
-    @JsonProperty("organizations_ids")
-    public void setOrgsIds(List<Integer> orgsIds) {
-        organizations = new HashSet<>();
-        for (Integer orgid : orgsIds) {
-            Organization o = new Organization();
-            o.setId(orgid);
-            organizations.add(o);
-        }
-    }
+	@JsonProperty("organizations_ids")
+	public void setOrgsIds(List<Integer> orgsIds) {
+		organizations = new HashSet<>();
+		for (Integer orgid : orgsIds) {
+			Organization o = new Organization();
+			o.setId(orgid);
+			organizations.add(o);
+		}
+	}
 
-    @JsonProperty("organizations_ids")
-    public Set<Integer> getOrgsIds() {
-        if (organizations == null) {
-            return null;
-        }
-        Set<Integer> ids = new HashSet<>();
-        for (Organization org : organizations) {
-            ids.add(org.getId());
-        }
-        return ids;
-    }
+	@JsonProperty("organizations_ids")
+	public Set<Integer> getOrgsIds() {
+		if (organizations == null) {
+			return null;
+		}
+		Set<Integer> ids = new HashSet<>();
+		for (Organization org : organizations) {
+			ids.add(org.getId());
+		}
+		return ids;
+	}
 
-    @JsonIgnore
-    public Set<Integer> getAllOrgsIds() {
-        if (organizations == null) {
-            return null;
-        }
-        Set<Integer> ids = new HashSet<>();
-        includeAllOrgs(this.organizations, ids);
-        return ids;
-    }
+	@JsonIgnore
+	public Set<Integer> getAllOrgsIds() {
+		if (organizations == null) {
+			return null;
+		}
+		Set<Integer> ids = new HashSet<>();
+		includeAllOrgs(this.organizations, ids);
+		return ids;
+	}
 
-    private void includeAllOrgs(Set<Organization> list, Set<Integer> orgIds) {
-        for (Organization org : list) {
-            orgIds.add(org.getId());
-            includeAllOrgs(org.getChildOrganizations(), orgIds);
-        }
-    }
+	private void includeAllOrgs(Set<Organization> list, Set<Integer> orgIds) {
+		for (Organization org : list) {
+			orgIds.add(org.getId());
+			includeAllOrgs(org.getChildOrganizations(), orgIds);
+		}
+	}
 
-    public String getEmail() {
-        return email;
-    }
+	public String getEmail() {
+		return email;
+	}
 
-    public void setEmail(String email) {
-        this.email = email;
-    }
+	public void setEmail(String email) {
+		this.email = email;
+	}
 
-    public static class Rol {
-        public static final int ADVANCE = 0x01;
-        public static final int ADMIN = 0x02;
-        public static final int[] ALL = new int[] {
-                ADVANCE, ADMIN
-        };
-    }
+	public static class Rol {
+		public static final int ADVANCE = 0x01;
+		public static final int ADMIN = 0x02;
+		public static final int[] ALL = new int[] { ADVANCE, ADMIN };
+	}
 
 }

--
Gitblit v1.3.2