我正在尝试使用 jCription 在 struts2 项目中加密用户名密码。我添加了一个动作类并添加了本文提到的密钥生成代码。
下面是执行方法中的操作,(我在下面的代码之后返回了 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/