【问题标题】:Worklight form based authentication: j_security_check not found基于 Worklight 表单的身份验证:未找到 j_security_check
【发布时间】:2013-04-15 04:58:24
【问题描述】:

我尝试使用 Worklight 应用程序实现一个非常简单的基于表单的身份验证。但是,当我激活登录功能时,它会因 404 错误而停止,说 /apps/services/j_security_check 找不到。奇怪的是,当我从 IBM 的 developerWorks 站点运行基于表单的身份验证示例时,它运行良好。我不知道有什么区别,与身份验证有关的所有功能都完全相同,但使用我自己的应用程序时,我会收到此错误消息。以下是来源的相关部分:

   var sampleAppRealmChallengeHandler = WL.Client.createChallengeHandler("SampleAppRealm");

sampleAppRealmChallengeHandler.isCustomResponse = function(response) {
    if (!response || response.responseText === null) {
        return false;
    }
    var indicatorIdx = response.responseText.search('j_security_check');

    if (indicatorIdx >= 0){
        return true;
    }
    return false;
};

sampleAppRealmChallengeHandler.handleChallenge = function(response) {
    $.mobile.changePage($('#Login'));
    $('#passwordInputField').val('');
};

sampleAppRealmChallengeHandler.submitLoginFormCallback = function(response) {
    var isLoginFormResponse = sampleAppRealmChallengeHandler.isCustomResponse(response);
    if (isLoginFormResponse){
        sampleAppRealmChallengeHandler.handleChallenge(response);
    } else {
        $.mobile.changePage($('#page0'));
        sampleAppRealmChallengeHandler.submitSuccess();
    }
};

function proceedWithLogin() {

    console.log("proceedWithLogin");

    var reqURL = '/j_security_check';
    var options = {};
    options.parameters = {
        j_username : $('#loginEmail').val(),
        j_password : $('#loginPassword').val()
    };
    options.headers = {};
    sampleAppRealmChallengeHandler.submitLoginForm(reqURL, options, sampleAppRealmChallengeHandler.submitLoginFormCallback);
}

知道是什么原因造成的吗?是否有我忽略的隐藏项目设置?谢谢!

【问题讨论】:

    标签: authentication ibm-mobilefirst j-security-check


    【解决方案1】:

    我认为您尚未部署适配器。您可以在部署 DummyAdapter 后通过右键单击它进行测试->运行方式->部署适配器。

    【讨论】:

      【解决方案2】:

      看起来这是 Worklight 项目的问题。我已经建立了一个新项目并复制了所有内容,现在它可以工作了。不知道是什么问题,但它消失了。

      【讨论】:

        【解决方案3】:

        您是否尝试在表单的响应到达之前发送您的凭据?这可以解释收到 404 j_security_check not found。

        【讨论】:

        • 我不知道。当用户在输入用户名和密码后单击登录按钮时,我会触发函数proceedWithLogin。在此之前,我没有做任何登录方面的事情。
        • 每次尝试登录时都会发生这种情况,还是时不时地发生一次。我也看到过同样的问题 - 但它只是偶尔出现 404。
        • 您能否发布用于身份验证的 Java 服务器端代码 - 因为这是处理挑战的地方
        • 看起来这是 Worklight 项目的问题。我已经建立了一个新项目并复制了所有内容,现在它可以工作了。不知道问题是什么,但它消失了。不过谢谢:)
        猜你喜欢
        • 2014-08-18
        • 2018-10-01
        • 2014-12-13
        • 1970-01-01
        • 2012-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多