Я создал эти две функции javaScript.
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 вызывается с помощью кнопки входа в систему. Вы можете видеть, что у меня есть бин, чтобы поместить IP-адрес в скрытое поле. Поле JAAS имени j_username также скрыто и заполняется функцией addIpSubmit ().
<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()" />
Он подключает ip к имени пользователя и вызывает функции отправки JAAS. Затем в модуле входа в систему я получаю IP-адрес и имя пользователя.
String userid = username;
if( username.contains( "#" ) )
{
ip = username.split( "#" )[0];
userid = username.split( "#" )[1];
}
Просто помните, что FacesContext.getCurrentInstance (). GetExternalContext (). GetRemoteUser () теперь содержит идентификатор пользователя ip #.