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 или база данных. Вы можете сделать это со своим собственным кодом или вызовом JMAS LoginModule. JASPIC определяет, как JAAS LoginModules может быть подключен к вашему пользовательскому механизму более стандартным образом. Жаль, что это не стандарт на 100%, но, по крайней мере, лучше.
JACC - еще одна точка расширения, но для механизмов авторизации. Вы можете использовать его для авторизации по-другому или просто для проверки авторизации. JACC также предоставляет все ограничения безопасности, определенные вами в web.xml для вашего кода. Вы можете использовать это для проверки заранее, если у пользователя будет доступ к странице. В отличие от JASPIC, JACC очень сложно активировать в вашем приложении. Вам нужно возиться с аргументами JVM и т. Д.
Спасибо за ответ. –
Очень ценится - это было прямо к делу! Я использую JBoss, который поставляется с JACC из коробки, который должен получить авторизацию. Но как насчет аутентификации? Должен ли я использовать JAAS LoginModules для аутентификации или что-то еще? Благодаря! –
@MatthewCachia «javax.security.auth.message.module.ServerAuthModule' (SAM) - это все, что вам нужно реализовать в отношении переносимой проверки подлинности. Однако, если вы также намерены интегрировать свой SAM с JBoss переносимым образом, вам также придется реализовать «AuthConfigProvider» (плюс «ServletContextInitializer», служащий в качестве регистратора прежнего с предоставленным контейнером «AuthConfigFactory»), ' ServerAuthConfig' и 'ServerAuthContext'. Для распространенного варианта использования одного SAM, защищающего одно приложение, это относительно безболезненно для автора. – Uux