public Map<String,String> getProperties() {
        synchronized (this) {
            if (properties == null) {
                try {
                    properties = UserManager.getUserPropertyProvider().loadProperties( username );
                } catch (UserNotFoundException e ) {
                    Log.error( "Unable to retrieve properties for user " + username, e );
                }
            }
        }
        // Return a wrapper that will intercept add and remove commands.
        return new PropertiesMap();
    }
Returns all extended properties of the user. Users have an arbitrary
number of extended properties. The returned collection can be modified
to add new properties or remove existing ones.

@return the extended properties.
xmppserver/src/main/java/org/jivesoftware/openfire/user/User.java