ЯАС для людей
Я имею трудное время понимание в систему jaas. Все это кажется более сложным, чем должно быть (особенно Sun tutorials). Мне нужен простой учебник или пример о том, как реализовать безопасность (аутентификация + авторизация) в java-приложении на основе Struts + Spring + Hibernate с пользовательским репозиторием пользователей. Может быть реализован с помощью ACEGI.
6 ответов:
вот некоторые из ссылок, которые я использовал, чтобы помочь разобраться В систему jaas:
http://www.owasp.org/index.php/JAAS_Tomcat_Login_Module
http://www.javaworld.com/jw-09-2002/jw-0913-jaas.html
http://jaasbook.wordpress.com/
также взгляните на конфигурацию Apache tomcat realms how-to:
другие пользователи предоставляют некоторые очень полезные ссылки выше, поэтому я не буду беспокоиться о ссылках. Я провел аналогичное исследование в JAAS для веб-приложений и столкнулся с "блокпостом ума", пока я, наконец, не понял, что JAAS-это структура, решающая проблемы безопасности на другом "уровне", а затем веб-приложения в мире Java. Он построен для решения проблем безопасности в Java SE, а не Java EE.
JAAS-это структура безопасности, построенная для обеспечения безопасности на гораздо более низком уровне, чем web-приложение. Некоторые примеры таких вещей-это код и ресурсы, доступные на уровне JVM, следовательно, все эти возможности для установки файлов политики на уровне JVM.
однако, поскольку Java EE построен поверх Java SE, несколько модулей из JAAS были повторно использованы в безопасности Java EE, таких как LoginModules и обратные вызовы.
обратите внимание, что в дополнение к безопасности Java EE, есть также Spring security (ранее известный как Acegi), который похож на родной Java EE security решает много более высокий "уровень" в проблеме обеспечения безопасности веб-приложения. Это отдельная реализация безопасности и не построена поверх стандартной безопасности Java EE, хотя она ведет себя аналогично во многих отношениях.
подводя итог, если вы не хотите защитить ресурсы на уровне Java SE (классы, системные ресурсы), я не вижу никакого реального использования JAAS, кроме использования общего класса и интерфейсов. Просто сосредоточьтесь на использовании Spring Security или простой старой безопасности Java EE, которые оба решают много общих проблем безопасности веб-приложений.
javax.безопасность-это imho overcomplicated API. В результате появляются разработчики не только LoginModules, но и всего api аутентификации и авторизации, который создает уровень абстракции выше, например менеджеры аутентификации и авторизации.
для начала, это хорошо для печати этой в вашей памяти.
во-вторых, imho самая простая, setup & go библиотека для JAAS - это Jboss PicketBox. Он говорит, как это сделать аутентификация и авторизация через JBossAuthenticationManager и JBossAuthorizationManager ... Легко настраивается с помощью XML или аннотаций. Вы можете использовать его для управления веб-приложений и приложений.
Если вам нужна часть авторизации для управления доступом к репозиторию, с точки зрения ACL для ресурсов, это то, что вы ищете наверняка.
проблема с безопасностью заключается в том, что обычно вам нужно настроить его под свои нужды, поэтому вы можете в конечном итоге реализовать :
LoginModule - проверяет имя пользователя + пароль
CallbackHandler используется такой
new LoginContext("Sample", new MyCallbackHandler());CallbackHandler передается базовым LoginModules, чтобы они могли общаться и взаимодействовать с пользователями - запрашивая имя пользователя и пароль через графический интерфейс пользователя, например. Таким образом, внутри обработчика вы получаете имя пользователя и пароль от пользователя, и он передается Элементов.
LoginContext - тогда вы просто позвоните lc.войти (); и аутентифицировать учетные данные. Logincontext является заполняется с проверкой подлинности предмета.
однако JBoss picketbox дает вам очень простой способ пойти, если вам не нужно что-то конкретное.
ответ lsiu-один из немногих ответов здесь, которые действительно "получают его";)
добавление к ответу, очень хорошая ссылка на эту тему что бы ни случилось в jaas?.
это объясняет, как JASPIC является связью в Java EE между сервлетом и моделями безопасности EJB и потенциально модулем входа JAAS, но во многих случаях роль JAAS сводится к относительно простому поставщику имени пользователя и ролей в Java EE.
от того же автор - это ЯАС на предприятии, который является более старой статьей, но предоставляет много исторической информации о том, почему модели Java SE (JAAS) и Java EE расходились так, как они это делали.
В целом, но несколько типов из JAAS непосредственно используются в Java EE, в основном
Principal,SubjectиCallbackHandler. Последние два в основном используются яшмой. Я объяснил ДЖАСПИКА в статье реализация аутентификации контейнера в Java EE с помощью JASPIC.
Я не могу говорить слишком много, чтобы сам jaas, но этот "предлагаемые действия" руководства на весенней безопасности и справочник оба довольно хорошие ресурсы по безопасности Spring - если ваша настройка близка к простой, вам действительно не нужно делать намного больше, чем читать их.
для чисто JAAS учебник проверить этой. Он старый, но должен помочь с основами JAAS.
Comments