Réglage personnalisé en-tête de requête sur une page de redirection
J'ai une application web qui vous permet de l'appeler serveur1:8080/amcd cette application dispose d'une option qui permet à un utilisateur d'être automatiquement connecté lorsque je passe personnalisé dans un en-tête de requête dans la page demande. Cet en-tête personnalisé est appelé "REMOTE_USER".
Mon plan est d'avoir une autre page sur une autre application web, permet de l'appeler server2:8080/ssoRedirect/test.html cette application sur le serveur 2 est en agissant comme un filtre, où je vais passer en paramètre d'URL tels que server2:8080/ssoRedirect/test.le html?Nom d'utilisateur=user1 cette page vous permettra de prendre le "user1" paramètre et rediriger vers serveur1:8080/amcd page lors de l'injection de "user1", "REMOTE_USER" demande de page.
Des conseils de comment je pourrais y arriver?
J'ai été à la recherche à un certain javascript simple comme ci-dessous, mais ne pouvait pas le faire fonctionner.
<script>
var url = "http://localhost:8080/index.html?userName=user1"; //or window.location.href for current url
var usernameParam = /userName=([^&]+)/.exec(url)[1];
var result = usernameParam ? usernameParam : 'myDefaultValue';
function customHeader(remoteinput, userinput) {
var client = new XMLHttpRequest();
client.open("POST", "/log");
client.setRequestHeader(remoteinput, userinput);
}
window.location.href = "http://ephesoft.eastus2.cloudapp.azure.com:8080/dcma/";
</script>
Je suis en mesure de faire ce travail lorsque j'utilise le Modifier l'en-tête plugin pour chrome et firefox.
Image de demande pas d'en-tête de page
XMLHttpRequest
ne joue aucun rôle dans la redirection.Une solution alternative serait d'avoir un serveur proxy pour un autre serveur; plutôt que de rediriger, vous auriez serveur1 effectuer la demande auprès de server2 avec l'en-tête, puis retourner la réponse de server2.
Donc si je pouvais écrire une servlet Java et de l'utiliser comme un proxy? Je ne Pouvais pas trouver un moyen de rediriger sur une servlet
OriginalL'auteur cmac | 2016-02-06
Vous devez vous connecter pour publier un commentaire.
Une page web ne peut pas définir-têtes de requête HTTP, sauf si vous effectuez une demande asynchrone à l'aide de XMLHttpRequest. Dans ce cas, vous n'êtes pas, vous faites une redirection, par exemple en cliquant sur un href. Au lieu de s'appuyer sur les en-têtes personnalisés, en fonction de votre backend utiliser l'un de ces:
OriginalL'auteur kamikazeOvrld