Проще говоря, кто-нибудь может объяснить мне разницу между JAAS, JACC и JASPIC?
Я буду честен Я уже довольно давно занимаюсь разработкой, но впервые слышу о JACC и JASPIC. Я понимаю, что это стандарты, используемые поставщиками авторизации, но как именно они отличаются от JAAS? и когда мы будем использовать один над другим?
Я провел некоторые начальные исследования, не то чтобы я ленился это делать. Просто чтение статей о JACC и JASPIC своего рода немного ошеломило меня, и мне нужно узнать об этом в кратчайшие сроки, потому что мне нужно реализовать это в одном из моих будущих проектов. Просто ищу начало моего понимания.
1 ответ
JAAS включен в Java SE и в основном полезен для Java SE. Речь идет о безопасности на уровне кода (вы доверяете коду).
Он не является полезным для Java EE, который касается безопасности на уровне пользователя (доверяете ли вы пользователю).
Некоторые серверы Java EE могут использовать для аутентификации что-то, основанное на JAAS LoginModules, но такое использование JAAS нестандартно и чрезвычайно поверхностно по сравнению с тем, что оно делает в Java SE. По той или иной причине люди думают, что безопасность в Java EE называется JAAS, но все наоборот.
JASPIC - это точка расширения, которую серверы Java EE 6+ должны создавать и подключать дополнительные механизмы аутентификации. Вы можете использовать это для создания таких вещей, как механизмы OAuth, OpenID и т. Д. JASPIC - это взаимодействие с вашим пользователем. В нем ничего не говорится о получении пользовательских данных из таких вещей, как LDAP или из базы данных. Вы можете сделать это с помощью своего собственного кода или позвонив в JAAS LoginModule. JASPIC определяет, как JAAS LoginModules могут быть подключены к вашему пользовательскому механизму более стандартным способом. Жаль, что это еще не 100% стандарт, но лучше, по крайней мере.
JACC - это еще одна точка расширения, но для механизмов авторизации. Вы можете использовать его для другой авторизации или просто для проверки авторизации. JACC также делает все ограничения безопасности, которые вы определили в web.xml, доступными для вашего кода. Вы можете использовать это, чтобы заранее проверить, будет ли пользователь иметь доступ к странице. В отличие от JASPIC, JACC очень сложно активировать в вашем приложении. Вам нужно возиться с аргументами JVM и т. Д.