added optional_grant_types configuration for extensibility of grant_type