Centralize logic for checking if user is public

This commit is contained in:
Chris Eykamp 2017-09-29 19:47:18 -07:00
parent f94aee19ab
commit ddb69646a5
4 changed files with 13 additions and 15 deletions

View File

@ -56,11 +56,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("isPublic")) {
isPublic = customer.getAdditionalInfo().get("isPublic").asBoolean();
}
infoObject.put("isPublic", isPublic);
infoObject.put("isPublic", customer.isPublic());
return infoObject;
} catch (Exception e) {
throw handleException(e);

View File

@ -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());

View File

@ -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));

View File

@ -61,6 +61,14 @@ public class Customer extends ContactBased<CustomerId> implements HasName {
this.title = title;
}
public boolean isPublic() {
if (getAdditionalInfo() != null && getAdditionalInfo().has("isPublic")) {
return getAdditionalInfo().get("isPublic").asBoolean();
}
return false;
}
@Override
@JsonProperty(access = Access.READ_ONLY)
public String getName() {