Gymterview
middle

Какие способы аутентификации доступны сервлету

Спецификация сервлетов определяет четыре стандартных типа аутентификации, настраиваемых через web.xml.

Тип Метод Описание
BASIC HTTP Basic Authentication Браузер показывает стандартное окно ввода логина/пароля. Credentials передаются в Base64 (не зашифрованы)
FORM Form Based Login Используется кастомная HTML-форма для ввода учётных данных
DIGEST HTTP Digest Authentication Пароль хешируется перед передачей (более безопасно, чем BASIC)
CLIENT-CERT HTTPS Client Certificate Аутентификация через клиентский SSL-сертификат

Настройка FORM-аутентификации

Пример
<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/login.html</form-login-page>
        <form-error-page>/error.html</form-error-page>
    </form-login-config>
</login-config>

BASIC подходит для простых API и внутренних сервисов. FORM — для веб-приложений с пользовательским интерфейсом. CLIENT-CERT — для высокобезопасных enterprise-систем. На практике в Spring-приложениях аутентификация реализуется через Spring Security, который предоставляет гораздо более гибкие механизмы: OAuth2, JWT, LDAP, SAML.

На собеседовании: перечислите четыре типа и скажите, что в реальных проектах используется Spring Security. BASIC без HTTPS — уязвимость, потому что Base64 легко декодируется.