我尝试使用jCription在struts2项目中输入用户名密码。我添加了一个动作类,并添加了本文提到的密钥生成代码。
下面是execute方法中的操作,(我在下面的代码后返回null)
JCryptionUtil jCryptionUtil = new JCryptionUtil();
KeyPair keys = null;
if (request.getSession().getAttribute("keys") == null) {
keys = jCryptionUtil.generateKeypair(512);
request.getSession().setAttribute("keys", keys);
}
StringBuffer output = new StringBuffer();
String e = JCryptionUtil.getPublicKeyExponent(keys);
String n = JCryptionUtil.getPublicKeyModulus(keys);
String md = String.valueOf(JCryptionUtil.getMaxDigits(512));
output.append("{\"e\":\"");
output.append(e);
output.append("\",\"n\":\"");
output.append(n);
output.append("\",\"maxdigits\":\"");
output.append(md);
output.append("\"}");
output.toString();
response.getOutputStream().print(
output.toString().replaceAll("\r", "").replaceAll("\n", "")
.trim());
我已经在struts.xml中映射了struts动作但是我还没有添加结果标记,因为这个动作是由ajax请求触发的,如下所示,它只是用来将密钥添加到会话中。
function getKeys() {
$.jCryption.getKeys("encryptionAction?generateKeypair=true", function(
receivedKeys) {
keys = receivedKeys;
});
}
问题是上面的请求不会触发动作类? 我在这里缺少什么?我需要在struts.xml中添加任何特定的附加代码来指定结果是json object /