JAAS для человека

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


person Dan    schedule 09.03.2009    source источник
comment
Удивительный вопрос. Отличное содержательное название для законной ошибки в документации.   -  person Guido Anselmi    schedule 25.11.2013
comment
Лучшие вопросы и ответы на JAAS. Мне было очень трудно начать с этого.   -  person cristiandley    schedule 02.12.2015
comment
@mattb, я хотел бы сделать дополнение, если это возможно. Я считаю, что мой ответ может помочь понять ваш вопрос. Концептуально говоря.   -  person pss1suporte    schedule 05.04.2017


Ответы (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:

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

person Martlark    schedule 09.03.2009
comment
Ссылка для jaasbook мертва. Теперь он перемещен на jaasbook.wordpress.com. - person Eric B.; 21.06.2016
comment
@Martlark, я хотел бы сделать дополнение, если это возможно. Я считаю, что мой ответ может помочь понять ваш ответ. Концептуально говоря. - person pss1suporte; 05.04.2017

Другие пользователи предоставили несколько очень полезных ссылок выше, поэтому я не буду заморачиваться со ссылками. Я провел аналогичное исследование JAAS для веб-приложений и столкнулся с «блокпостом ума», пока наконец не понял, что JAAS — это фреймворк, обеспечивающий безопасность на другом «уровне», чем веб-приложения в мире Java. Он создан для решения проблем безопасности в Java SE, а не в Java EE.

JAAS — это инфраструктура безопасности, созданная для защиты вещей на гораздо более низком уровне, чем веб-приложение. Некоторыми примерами таких вещей являются код и ресурсы, доступные на уровне JVM, следовательно, все эти возможности устанавливать файлы политик на уровне JVM.

Однако, поскольку Java EE построена поверх Java SE, несколько модулей из JAAS были повторно использованы в системе безопасности Java EE, например LoginModules и Callbacks.

Обратите внимание, что в дополнение к безопасности Java EE существует также безопасность Spring (ранее известная как Acegi), которая, подобно собственной безопасности Java EE, решает гораздо более высокий «уровень» в проблеме защиты веб-приложений. Это отдельная реализация безопасности, и она не построена поверх стандартной безопасности Java EE, хотя во многих отношениях ведет себя аналогично.

Подводя итог, если вы не хотите защищать ресурсы на уровне Java SE (классы, системные ресурсы), я не вижу никакого реального использования JAAS, кроме использования общего класса и интерфейсов. Просто сосредоточьтесь на использовании Spring Security или старой простой безопасности Java EE, которые решают множество распространенных проблем безопасности веб-приложений.

person lsiu    schedule 29.03.2009
comment
Учебник по Java EE 6 предполагает понимание основных концепций безопасности, поэтому небольшой обзор JAAS не помешает. - person jacktrades; 03.12.2012
comment
Лучшее объяснение JAAS! - person David Hofmann; 27.03.2016
comment
@isiu, я хотел бы сделать дополнение, если это возможно. Я считаю, что мой ответ может помочь понять ваш ответ. Концептуально говоря. - person pss1suporte; 05.04.2017

javax.security - это слишком сложный API. В результате есть разработчики не только LoginModules, но и всего API аутентификации и авторизации, который создает уровень абстракции выше, например менеджеры аутентификации и авторизации.

Для начала хорошо распечатать этот в вашу память.

Во-вторых, имхо, самой простой библиотекой для установки и запуска JAAS является Jboss PicketBox. В нем говорится, как выполнять аутентификацию и авторизацию через JBossAuthenticationManager и JBossAuthorizationManager... Легко настраивается с помощью XML или аннотаций. Вы можете использовать его для управления как веб-приложениями, так и автономными приложениями.

Если вам нужна часть авторизации для управления доступом к репозиторию с точки зрения ACL для ресурсов, это то, что вы точно ищете.

Проблема с безопасностью заключается в том, что обычно вам нужно настроить ее в соответствии с вашими потребностями, поэтому вы можете в конечном итоге реализовать:

LoginModule — проверяет имя пользователя и пароль.

CallbackHandler используется следующим образом new LoginContext("Sample", new MyCallbackHandler());

CallbackHandler передается базовым модулям LoginModules, чтобы они могли общаться и взаимодействовать с пользователями, например, запрашивая имя пользователя и пароль через графический интерфейс пользователя. Таким образом, внутри обработчика вы получаете имя пользователя и пароль от пользователя, и они передаются в LoginModule.

LoginContext — тогда вы просто вызываете lc.login(); и подтвердить подлинность учетных данных. LoginContext заполняется аутентифицированным субъектом.

Однако пикетбокс Jboss дает вам очень простой способ, если вам не нужно что-то конкретное.

person lisak    schedule 21.06.2011

Ответ lsiu - один из немногих ответов, которые действительно «понимают»;)

В дополнение к этому ответу действительно хорошим справочником по этой теме является Что случилось с JAAS?.

Это объясняет, как JASPIC является связующим звеном в Java EE между моделями безопасности Servlet и EJB и, возможно, модулем входа JAAS, но во многих случаях роль JAAS сводится к роли относительно простого имени пользователя и поставщика ролей в Java EE.

JAAS in the Enterprise от того же автора. исторический фон о том, почему модели Java SE (JAAS) и Java EE расходятся так, как они это сделали.

В целом, несколько типов из JAAS напрямую используются в Java EE, в основном Principal , Subject и CallbackHandler. Последние два в основном используются JASPIC. Я объяснил JASPIC в статье Реализация проверки подлинности контейнера в Java EE с помощью ЯСПИК.

person Arjan Tijms    schedule 03.05.2013

Я не могу слишком много говорить о самом JAAS, но это "предлагаемые шаги " руководство по Spring Security и справочное руководство оба довольно хороших ресурса по Spring Security - если ваша установка близка к простой, вам действительно не нужно делать намного больше, чем читать их.

person matt b    schedule 09.03.2009
comment
Предлагаемое руководство перемещено сюда: static.springsource.org/spring- безопасность/сайт/start-here.html - person aliopi; 13.12.2011

Чтобы ознакомиться с учебным пособием исключительно по JAAS, ознакомьтесь с этим. . Он старый, но должен помочь с основами JAAS.

person Mark    schedule 09.03.2009