ЯАС для людей



Я имею трудное время понимание в систему jaas. Все это кажется более сложным, чем должно быть (особенно Sun tutorials). Мне нужен простой учебник или пример о том, как реализовать безопасность (аутентификация + авторизация) в java-приложении на основе Struts + Spring + Hibernate с пользовательским репозиторием пользователей. Может быть реализован с помощью ACEGI.

664   6  

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/

http://roneiv.wordpress.com/2008/02/18/jaas-authentication-mechanism-is-it-possible-to-force-j_security_check-to-go-to-a-specific-page/

также взгляните на конфигурацию Apache tomcat realms how-to:

http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html

другие пользователи предоставляют некоторые очень полезные ссылки выше, поэтому я не буду беспокоиться о ссылках. Я провел аналогичное исследование в 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

    Ничего не найдено.