code: public InternalFeature getAttributes(VectorLayer layer, InternalFeature feature, Object featureBean)
  			throws LayerException {
  		String layerId = layer.getId();
  
  		Map<String, Attribute> featureAttributes = getRealAttributes(layer, featureBean);
  		feature.setAttributes(featureAttributes); // to allow isAttributeReadable to see full object
  		addSyntheticAttributes(feature, featureAttributes, layer);
  		if (securityContext.isFeatureVisible(layerId, feature)) {
  
  			feature.setAttributes(filterAttributes(layerId, layer.getLayerInfo().getFeatureInfo().getAttributesMap(),
  					feature, featureAttributes));
  
  			feature.setEditable(securityContext.isFeatureUpdateAuthorized(layerId, feature));
  			feature.setDeletable(securityContext.isFeatureDeleteAuthorized(layerId, feature));
  
  			return feature;
  		}
  		return null;
  	}
docs: Get the attributes for a feature, and put them in the feature object.
  <p/>
  The attributes are converted lazily if requested by the layer.
  <p/>
  The feature is filled into the passed feature object. If the feature should not be visible according to security,
  null is returned (the original (passed) feature should be discarded in that case). The attributes are filtered
  according to security settings. The editable and deletable states for the feature are also set.
  
  @param layer layer which contains the feature
  @param feature feature for the result
  @param featureBean plain object for feature
  @return feature with filled attributes or null when feature not visible
  @throws LayerException problem converting attributes