0

我正在尝试使用 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/

4

0 回答 0