разрешить только зарегистрированному пользователю доступ к личной странице - PullRequest
1 голос
/ 19 января 2011

Я работаю над проектом MIS и в настоящее время я создаю систему входа в систему для этого.Я использую сервлет на стороне сервера и jquery на стороне клиента для вызовов ajax.

их страница входа в систему, которая сначала проверяет состояние входа через вызов ajax, и если пользователь уже вошел в систему, то он меняет расположение страницына «services.html».

при загрузке services.html я снова проверяю состояние входа в систему, а если пользователь не вошел в систему, то я меняю местоположение страницы на «Login.html», используя
document.location='Login.html';

Код выглядит следующим образом

$(document).ready(function() {
$("#login").hide();
    $.post("checkLogin",function(xml) {
    var status = $(xml).find("result").text();
    if (status == "yes") {
       document.location='Login.html';
    }
    else{
        // Do Nothing.
    }
});

Теперь проблема со страницей services.html заключается в том, что она проверяет состояние входа в систему после полной загрузки страницы в браузер..

Я не знаю другого хорошего способа ограничить пользователей, не вошедших в систему, доступом к странице services.html.Поскольку этот проект довольно большой, мне нужно создать большое количество личных страниц, похожих на «services.html», например «stuInfo.html», для доступа к информации о студентах и ​​т. Д.это.

Ответы [ 3 ]

3 голосов
/ 19 января 2011

Вы должны проверить это на стороне сервера, а не на стороне клиента.JavaScript работает на стороне клиента и может быть отключен, взломан и подделан.Вы не хотите, чтобы ваше приложение было таким слабым.

Поместите все запрещенные страницы в какую-то папку, например, /secured, а затем создайте Filter, который отображается на <url-pattern> из /secured/*и проверяет присутствие вошедшего в систему пользователя в методе doFilter().

Пример можно найти на информационной странице тега servlet-filters .

0 голосов
/ 19 января 2011

Аутентификация - это то, что лучше всего делать на уровне сервера приложений или инфраструктуры.Контейнеры и фреймворки J2EE (как упомянуто выше в Spring) выполняют всю работу, поэтому вы просто настраиваете, какие страницы лежат внутри, а какие - вне аутентифицируемой области.

Простые старые сервлеты могут использоваться для аутентификации и т. Д., Но помнитебудут проблемы, с которыми вы столкнетесь при расширении приложения.Один из способов сделать это с помощью сервлетов - это иметь все ваши привилегированные страницы за / loggedin / services.html .

Тогда у вас есть сервлет, определенный для / loggedin / ..., который перенаправляетна страницу входа в систему, если параметры аутентификации не могут быть найдены в сеансе или запросе, или если вы это делаете.

Надеюсь, это поможет

0 голосов
/ 19 января 2011

Посмотрите на Spring Security .

В вашем случае вы почти наверняка будете использовать какую-то аутентификацию на основе форм, но она также поддерживает аутентификацию HTTP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...