Аутентификация на основе формы Worklight: j_security_check не найден

Я попытался реализовать очень простую аутентификацию на основе форм с помощью приложения 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);
}

Любая идея, что может быть причиной этого? Есть ли скрытые настройки проекта, которые я пропустил? Спасибо!


person René    schedule 22.04.2013    source источник


Ответы (3)


Может быть, вы пытаетесь отправить свои учетные данные до того, как придет ответ с формой? Это объясняет получение 404 j_security_check not found.

person Idan Adar    schedule 22.04.2013
comment
Не то чтобы я в курсе. Я запускаю функцию continueWithLogin, когда пользователь нажимает кнопку входа в систему после ввода имени пользователя и пароля. До этого я ничего не делаю для входа в систему. - person René; 23.04.2013
comment
Это происходит каждый раз, когда вы пытаетесь войти в систему, или только один раз время от времени. Я видел ту же проблему - но это только изредка 404s. - person RenegadeAndy; 23.04.2013
comment
Можете ли вы опубликовать свой код на стороне сервера Java, используемый для аутентификации, потому что именно там обрабатывается вызов - person RenegadeAndy; 23.04.2013
comment
Похоже, это была проблема с проектом Worklight. Я создал новый проект и скопировал все, и теперь он работает. Не знаю, в чем была проблема, но она ушла. Спасибо хоть :) - person René; 24.04.2013

Похоже, это была проблема с проектом Worklight. Я создал новый проект и скопировал все, и теперь он работает. Не знаю, в чем была проблема, но она ушла.

person René    schedule 24.04.2013

Я думаю, что вы не развернули адаптер. Можете ли вы попробовать протестировать после развертывания DummyAdapter, щелкнув его правой кнопкой мыши -> Запустить от имени -> Развернуть адаптер.

person Arun Shankar    schedule 12.06.2013