Frage

Ich habe geschaut, in eine Weise, den Client-IP sowie die Benutzer-ID und Passwort von einer JAAS Login-Seite zur JAAS Login-Modul Implementierung vorbei in meinem Web-Code. JAAS ermöglicht nur der Benutzer-ID und das Passwort zum Login-Modul übergeben werden. Meine Idee ist es, ein Java-Script-Code zu haben, die IP-Adresse an den Benutzer-ID anhängen und rufen Sie dann das Formular aus. Ich habe einfach nicht den richtigen Java-Script-Code, dies zu tun. Können Sie helfen?

Die Webseite verfügt über zwei Eingabefelder, j_userid und j_password, die der JAAS Code kennt, es zu suchen. Also, was JavaScript-Code kann ich die IP-Adresse das j_userid Feld vor dem Formular hinzuzufügen. Ich dachte an ‚ip-Adresse # Benutzer-ID‘ und dann in meinem Login-Modul ich aus der Benutzer-ID die IP-Adresse nehmen würde.

War es hilfreich?

Lösung

Ich habe diese zwei JavaScript-Funktionen.

function addIpSubmit() 
{                 
    var theForm = document.getElementById("login_form");
    var userName = theForm.username.value;
    userName = theForm.clientip.value + "#" + userName;
    theForm.j_username.value = userName;
    if( validate_required( theForm.username, "User ID is required" ) )
    {
        if(  validate_required( theForm.j_password, "Password is required" ) )
        {
            theForm.submit();
        }
    }
}  

function validate_required( field, alerttxt )
{
    with (field)
    {
        if (value==null||value=="")
        {
            alert(alerttxt);
            return false;
        }
        else
        {
            return true;
        }
    }
}

addIpSubmit wird von einer Login-Taste aufgerufen. Sie können sehen, ich eine Bohne haben die IP-Adresse in ein verstecktes Feld zu setzen. Das j_username JAAS Feld ist auch versteckt und wird durch die addIpSubmit () Funktion ausgefüllt.

<input id="clientip" type="hidden" name="clientip" value="#{loginMBean.ip}"/>
<input id="j_username" type="hidden" name="j_username" />
<input type="button" name="OtherLogin" value="Login" onclick="addIpSubmit()" />

Es mungs die IP auf den Benutzernamen und ruft die JAAS-Funktionen vor. Dann in der Login-Modul bekomme ich die IP-Adresse und den Benutzernamen aus.

String userid = username;

if( username.contains( "#" ) )
{
    ip = username.split( "#" )[0];
    userid = username.split( "#" )[1];
}

Denken Sie daran, dass die FacesContext.getCurrentInstance (). GetExternalContext (). GetRemoteUser () nun die IP-# Benutzer-ID in sich hat.

Andere Tipps

Sorry, ich glaube nicht, dass es einen Weg gibt, die IP auf der Client-Seite im Klar Javascript.

zu erhalten

, um die Remote-IP-Test auf der Server-Seite ist wahrscheinlich keine Lösung, wenn Sie nicht die Infrastruktur zwischen dem Client steuern können und den Server (Last-Balancern, Proxies ...). Wenn Sie die Remote-IP die IP des Clients sind zuversichtlich ist, sollten Sie in der Lage ein tomcat Ventil oder einen Servlet-Filter zu hacken.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top