diff --git a/application/src/main/java/org/thingsboard/server/controller/CustomerController.java b/application/src/main/java/org/thingsboard/server/controller/CustomerController.java index 93180e7168..c54973f0bc 100644 --- a/application/src/main/java/org/thingsboard/server/controller/CustomerController.java +++ b/application/src/main/java/org/thingsboard/server/controller/CustomerController.java @@ -59,11 +59,7 @@ public class CustomerController extends BaseController { ObjectMapper objectMapper = new ObjectMapper(); ObjectNode infoObject = objectMapper.createObjectNode(); infoObject.put("title", customer.getTitle()); - boolean isPublic = false; - if (customer.getAdditionalInfo() != null && customer.getAdditionalInfo().has(IS_PUBLIC)) { - isPublic = customer.getAdditionalInfo().get(IS_PUBLIC).asBoolean(); - } - infoObject.put(IS_PUBLIC, isPublic); + infoObject.put(IS_PUBLIC, customer.isPublic()); return infoObject; } catch (Exception e) { throw handleException(e); diff --git a/application/src/main/java/org/thingsboard/server/service/security/auth/jwt/RefreshTokenAuthenticationProvider.java b/application/src/main/java/org/thingsboard/server/service/security/auth/jwt/RefreshTokenAuthenticationProvider.java index 811f39f5d1..be5e546aaf 100644 --- a/application/src/main/java/org/thingsboard/server/service/security/auth/jwt/RefreshTokenAuthenticationProvider.java +++ b/application/src/main/java/org/thingsboard/server/service/security/auth/jwt/RefreshTokenAuthenticationProvider.java @@ -103,13 +103,11 @@ public class RefreshTokenAuthenticationProvider implements AuthenticationProvide if (publicCustomer == null) { throw new UsernameNotFoundException("Public entity not found by refresh token"); } - boolean isPublic = false; - if (publicCustomer.getAdditionalInfo() != null && publicCustomer.getAdditionalInfo().has("isPublic")) { - isPublic = publicCustomer.getAdditionalInfo().get("isPublic").asBoolean(); - } - if (!isPublic) { + + if (!publicCustomer.isPublic()) { throw new BadCredentialsException("Refresh token is not valid"); } + User user = new User(new UserId(UUIDBased.EMPTY)); user.setTenantId(publicCustomer.getTenantId()); user.setCustomerId(publicCustomer.getId()); diff --git a/application/src/main/java/org/thingsboard/server/service/security/auth/rest/RestAuthenticationProvider.java b/application/src/main/java/org/thingsboard/server/service/security/auth/rest/RestAuthenticationProvider.java index af10674294..661502319b 100644 --- a/application/src/main/java/org/thingsboard/server/service/security/auth/rest/RestAuthenticationProvider.java +++ b/application/src/main/java/org/thingsboard/server/service/security/auth/rest/RestAuthenticationProvider.java @@ -108,11 +108,7 @@ public class RestAuthenticationProvider implements AuthenticationProvider { if (publicCustomer == null) { throw new UsernameNotFoundException("Public entity not found: " + publicId); } - boolean isPublic = false; - if (publicCustomer.getAdditionalInfo() != null && publicCustomer.getAdditionalInfo().has("isPublic")) { - isPublic = publicCustomer.getAdditionalInfo().get("isPublic").asBoolean(); - } - if (!isPublic) { + if (!publicCustomer.isPublic()) { throw new BadCredentialsException("Authentication Failed. Public Id is not valid."); } User user = new User(new UserId(UUIDBased.EMPTY)); diff --git a/common/data/src/main/java/org/thingsboard/server/common/data/Customer.java b/common/data/src/main/java/org/thingsboard/server/common/data/Customer.java index bf00292de8..7754e88ecd 100644 --- a/common/data/src/main/java/org/thingsboard/server/common/data/Customer.java +++ b/common/data/src/main/java/org/thingsboard/server/common/data/Customer.java @@ -15,6 +15,7 @@ */ package org.thingsboard.server.common.data; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty.Access; import org.thingsboard.server.common.data.id.CustomerId; @@ -61,6 +62,15 @@ public class Customer extends ContactBased implements HasName { this.title = title; } + @JsonIgnore + public boolean isPublic() { + if (getAdditionalInfo() != null && getAdditionalInfo().has("isPublic")) { + return additionalInfo.get("isPublic").asBoolean(); + } + + return false; + } + @Override @JsonProperty(access = Access.READ_ONLY) public String getName() { @@ -149,5 +159,4 @@ public class Customer extends ContactBased implements HasName { builder.append("]"); return builder.toString(); } - }