Как проверить, зарегистрирован ли пользователь или не в Сервлетах?

Вот как я делаю это в кувшине (git HEAD во время этого ответа):

e = some_array_object
M = hashlib.md5()
M.update('np.ndarray')
M.update(pickle.dumps(e.dtype))
M.update(pickle.dumps(e.shape))
try:
    buffer = e.data
    M.update(buffer)
except:
    M.update(e.copy().data)

Причина в том, что e.data доступен только для некоторых массивов. (смежные массивы). То же самое с a.view(np.uint8) (который завершается ошибкой неописательного типа, если массив не является смежным).

9
задан Jens Piegsa 6 March 2015 в 05:02
поделиться

2 ответа

HttpServletRequest # getUserPrincipal () , как указано в другом ответе, применяется только тогда, когда вы используете Java EE, обеспечивающую безопасность, управляемую контейнером, как описано здесь ].

Если вы, тем не менее, создаете собственную безопасность, вам нужно положиться на HttpSession . Это не так сложно, вот обзор того, что вам нужно реализовать на каждом этапе:

При входе в систему получите пользователя из БД и сохраните его в сеансе в сервлете doPost () :

User user = userDAO.find(username, password);
if (user != null) {
    session.setAttribute("user", user);
} else {
    // Show error like "Login failed, unknown user, try again.".
}

При выходе просто аннулируйте сеанс в сервлете doPost () . Это уничтожит сеанс и очистит все атрибуты.

session.invalidate();

Чтобы проверить, вошел ли Пользователь в систему или нет, создайте фильтр , который сопоставлен с шаблоном URL , который охватывает запрещенные страницы, например / secured / * , / protected / * и т. д. и реализовать doFilter () , как показано ниже:

if (session.getAttribute("user") == null) {
    response.sendRedirect(request.getContectPath() + "/login"); // Not logged in, redirect to login page.
} else {
    chain.doFilter(request, response); // Logged in, just continue chain.
}

Это в основном все.

См. также:

11
ответ дан 3 November 2019 в 01:02
поделиться
0
ответ дан 3 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: