2017-07-25 2 views
0

Je crée donc un programme de bureau Java. Ce programme va à une page Web d'authentification fonctionnant sur jsp. Et le fait en utilisant le webview javafx (qui fonctionne sur WebKit)Détecter Javafx webview

Ma question est de savoir comment puis-je détecter si la page Web est accessible en utilisant java webview, sinon déconnecter ou rediriger le client afin d'aider à réduire la demande d'authentification spam .

Répondre

2

JavaFX WebView vous permet de définir une chaîne d'agent utilisateur à l'aide de user agent property sur WebEngine. Vous pouvez l'utiliser pour définir l'agent utilisateur sur tout ce que vous souhaitez. Ensuite, lorsque le client WebView demande une page Web, il fournit cette valeur dans l'en-tête de l'agent utilisateur. Votre code serveur peut interroger l'en-tête de l'agent utilisateur, puis prendre les mesures qu'il juge nécessaires en fonction du résultat.

De this answer, la sortie par défaut pour la chaîne de l'agent utilisateur est:

User Agent:  Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.44 (KHTML, like Gecko) JavaFX/8.0 Safari/537.44 

Comme il est indiqué dans la documentation WebEngine, cette valeur peut changer entre les versions JavaFX et systèmes d'exploitation. Très probablement, la valeur par défaut inclura toujours le texte JavaFX, donc vous pouvez simplement vérifier sur le serveur si la chaîne de l'agent utilisateur contient le texte JavaFX. Sinon, si vous voulez être sur-assuré, vous pouvez coder votre client JavaFX pour définir explicitement la chaîne de l'agent utilisateur sur une valeur que vous vérifiez sur votre serveur.

Pour voir comment vérifier un agent utilisateur dans un JSP, reportez-vous à:

qui indiquerait que vous écrire quelque chose comme ceci:

<c:if test="${fn:contains(header['User-Agent'],'JavaFX')}"></c:if>