docs: @Override
      public Set<String> getDisplayAttributes(ExternalContext externalContext) {
          final PortletRequest portletRequest = (PortletRequest) externalContext.getNativeRequest();
          final PortletPreferences preferences = portletRequest.getPreferences();
  
          final Set<String> displayAttributes;
          final String[] configuredAttributes =
                  preferences.getValues(PERSON_LOOKUP_PERSON_DETAILS_DETAILS_ATTRIBUTES, null);
          final String[] excludedAttributes =
                  preferences.getValues(
                          PERSON_LOOKUP_PERSON_DETAILS_DETAILS_ATTRIBUTES_EXCLUDES, null);
  
          // If attributes are configured in portlet prefs use those the user has
          if (configuredAttributes != null) {
              displayAttributes = new LinkedHashSet<>();
              displayAttributes.addAll(Arrays.asList(configuredAttributes));
          }
          // Otherwise provide all available attributes from the IPersonAttributes
          else {
              displayAttributes = new TreeSet<>(personAttributeDao.getPossibleUserAttributeNames());
          }
  
          // Remove any excluded attributes
          if (excludedAttributes != null) {
              for (final String excludedAttribute : excludedAttributes) {
                  displayAttributes.remove(excludedAttribute);
              }
          }
  
          return displayAttributes;
      }