2017-01-12 1 views
0

J'ai un webservice (application OSGi) qui en cas d'erreur renvoie l'erreur en HTML, ce qui semble être le standard Domino.Comment remplacer la page d'erreur standard Domino pour un service Web REST?

enter image description here

Je sais que je peux utiliser les codes d'erreur fournis, mais je voudrais revenir à la place d'une erreur au format JSON.

Toute personne qui sait comment?

Ove

+1

Je suppose que vous parlez d'un service personnalisé. Vous pouvez peut-être nous montrer ce code afin que nous puissions vous montrer comment nous gérons les erreurs. – Newbs

+0

Oui. Je suis d'accord que du code serait bon. En outre, le code d'état HTTP dans votre message d'origine est 401 (non autorisé). Cette réponse est probablement renvoyée par le serveur Web Domino sans jamais accéder à votre code REST. Essayez-vous de retourner JSON juste dans ce cas (401) ou pour tous les codes de statut? –

+0

Le détail indique non authentifié. C'est même avant qu'il puisse vérifier l'autorisation. –

Répondre

3

Pour traiter la réponse 401 dans la base de données service REST vous devez permettre aux utilisateurs anonymes d'accéder au service REST puis dans le service REST répondre si l'utilisateur est anonyme. Cela peut être fait sans ouvrir la base de données à un accès significatif par les utilisateurs anonymes en conservant la liste de contrôle d'accès pour Anonymous à No Access BUT lui permettant de lire des documents publics. Ensuite, votre XPage qui contient le service REST est marquée comme Utilisateurs disponibles pour l'accès public.

+0

Bien sûr! Merci! –

+0

Mais que se passe-t-il si un utilisateur tente d'authentifier mais avec des informations d'identification incorrectes? –

+0

dans ce cas, utilisez le paramètre ACL par défaut comme aucun accès avec des documents publics de lecture et vérifiez NotesDatabase.getCurrentAccessLevel(). Si c'est zéro (0) alors aucun accès n'est autorisé. – Newbs