Если вы не знаете, почему и какие сферы существуют для веб-приложений JAVA, аутентификация и авторизация могут обрабатываться либо приложением, либо контейнером (Tomcat и т. Д.). Если вы решите использовать контейнер, вам нужно указать хранилище пользователей (место, где хранятся имена пользователей, надеюсь, зашифрованные пароли, роли и т. Д.). Это может быть даже ваш Tomcat-пользователи xml для Tomcat. Или вы можете использовать базу данных (MYSQL и т. Д.) Или каталог (Active Directory и т. Д.). Tomcat подключается к базе данных с использованием JDBC (ваша область JDBC) и в каталог с использованием JNDI (ваш DataSourceRealm).
Приходит на ваш вопрос. Связи JDBC дороги, ограничены пулом и страдают от высокой синхронизации, что означает, что в приложении с высокой нагрузкой проверка подлинности может быть неудачной для некоторых запросов из-за недоступности JDBC. JNDI лучше оптимизируется для чтения, и, как таковая, обеспечивает лучшую производительность.
Спасибо за ваш ответ! Я попытался создать ресурс без JDBC в Glassfish, но что мне следует записывать в JNDI-имя (поскольку JDBC начинается с jdbc, что здесь) и что такое фабричный класс? : O –
Или тот, который вы рекомендовали вообще не на базе db? (на основе файлов) Мне нужно хранилище db из-за возможности динамической регистрации. –
Основанный на файлах, безусловно, не самый лучший способ. Как я уже сказал, есть что-то, называемое каталогом хранилища пользователей a.k.a (например, Microsoft Active Directory), которое используется для хранения пользовательских данных. Каталоги читаются оптимизированными, то есть операции чтения намного быстрее, чем операции записи. В зависимости от того, насколько велика аудитория вашего приложения, вы можете решить, что лучше всего подходит для вашего приложения. Большинство организаций с более чем тысячей человек используют каталог для пользовательских данных. Вы также можете использовать БД, если нет большой проблемы с производительностью, основанной на количестве ожидаемых пользователей. –