私がやりたいことを説明するための非常に簡単な例を以下に示します。私のJavaクラス「CommonUtils」には、文字列を暗号化および復号化するメソッドがあります。logonuidfield と logonpassfield を Cookie に書き込む前に暗号化したい。CommonUtils.xorEncode(~) を Javascript から直接呼び出すことができないことは理解していますが、Cookie が書き込まれる前にこれらのフィールドの値が CommonUtils.xorEncode(~) を介して渡されるという回避策は可能ですか?
暗号化メソッドを JavaScript で記述したくありません。私はそれがJavaクラスによって行われることを望みます。私の推測では、LiveConnect などを使用しないと、私がやろうとしていることは不可能です。
前もって感謝します。
<%@ page import="package.CommonUtils" %>
<HTML>
<SCRIPT LANGUAGE=JavaScript>
function setCookies() {
var email = document.getElementById("logonuidfield").value;
var password = document.getElementById("logonpassfield").value;
writeCookie("EmailText",email);
writeCookie("PasswordText",password);
}
function writeCookie(name, value) {
document.cookie = name + "=" + escape(value);
}
</script>
<body>
<tr>
<td>
<%
String message = "This is a test message.";
out.println("<Label>This is the original message: " + message + "</Label><br>");
out.println("<Label>Hex before encrypting : " + CommonUtils.printStringHex(message) + "</Label><br>");
message = CommonUtils.xorEncode(message);
out.println("<Label>Hex after encrypting : " + CommonUtils.printStringHex(message) + "</Label><br>");
message = CommonUtils.xorDecode(message);
out.println("<Label>Hex after decrypting : " + CommonUtils.printStringHex(message) + "</Label><br>");
out.println("<Label>This is the final message : " + message + "</Label><br>");
%>
</td>
</tr>
<FORM name="logonForm" id="logonForm" autocomplete="off" onsubmit="setCookies()" method="post" action="" >
<li>
<input type="text" id="logonuidfield" placeholder="email address*" style="width: 100%" name="j_user" type="email" value="" title="Email address *"/>
</li>
<li>
<input type="password" id="logonpassfield" placeholder="Password*" style="width: 100%" name="j_password" />
</li>
<li>
<input type="submit" value="Log in" name="uidPasswordLogon"/>
</li>
</form>