2009-02-12 2 views
11

Безопасность всегда стремится занять последнее место в новом проекте. Или вы используете фреймворк вроде Spring, где безопасность уже встроена и может быть легко включена. Я пытаюсь найти открытую инфраструктуру безопасности, которая может быть подключена как к Swing, так и к веб-приложениям (и JavaFX?), Может быть легко переваривается. Я посмотрел на простые JAAS, JGuard и JSecurity, но это было слишком сложно, чтобы начать. Любые рекомендации или опыт для обмена? Я работаю с NB, Glassfish и MySQL. Спасибо SvenJava Security Framework

+0

Изменен тег от jee5 до javaee, потому что вы не должны ограничивать себя последней версией! –

ответ

5

Я бы очень рекомендую учиться JAAS. Это действительно не так сложно подобрать, и есть некоторые полезные tutorials и reference guide на веб-сайте Sun.

По моему опыту, JAAS довольно широко используется, так что это определенно то, что вы сможете повторно использовать, как только узнаете об этом. Он также является одним из основных блоков механизма аутентификации Glassfish!

5

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

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

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

С другой стороны, Acegi, aka Spring Security, решает гораздо более высокий «уровень» в решении проблемы с веб-приложением. Он построен поверх безопасности J2EE, поэтому J2SE, следовательно, JAAS. Если вы не хотите защищать ресурсы на уровне J2SE (классы, системные ресурсы), я не вижу реального использования JAAS, кроме использования общего класса и интерфейсов. Просто сосредоточьтесь на использовании Acegi или простой старой безопасности J2EE, которая решает множество общих проблем безопасности веб-приложений.

В конце дня важно узнать, какой «слой» проблемы безопасности J2EE-J2SE вы решаете, и выберите инструмент (ы) для записи проблемы.

+0

Спустя некоторое время, глядя на варианты, я считаю, что JSecurity (теперь называемый Ki (http://incubator.apache.org/ki/) - хороший выбор. Все еще разрабатывается, но то, что я тестировал до сих пор, выглядит многообещающе. – javadude

+2

ki теперь называется shiro, просто примечание для победителей. –

8

я только что вид этого http://shiro.apache.org/

Apache Shiro является мощным и простых в использовании системы безопасности Java , которая выполняет аутентификацию, авторизацию , криптографию и управления сеансами. С простым в использовании API-интерфейсом Shiro вы можете быстро и легко защитить любое приложение - от самых маленьких мобильных приложений до самой большой сети и приложений для предприятий.

0

apache shiro ужасно терпит неудачу, когда вы подчеркиваете веб-приложение под JBoss (скажем, 2 миллиона запросов простого GET с параллелизмом 50 потоков). было очень неудобно, чтобы узнать это. Это происходит, когда вы используете фильтры.

+5

Это необоснованно без дополнительных доказательств. Я использовал Сиро в критически важных веб-приложениях, которые обрабатывают сотни тысяч запросов в секунду. Существуют сетевые проекты, которые используют Shiro для защиты конечных точек сети, которые ежедневно обрабатывайте сотни миллионов запросов. Я подозреваю, что ваша внутренняя архитектура или хранилища данных, которые сидели за Сиро, вызывали проблему. Я могу заверить вас в очень реальном опыте, что Сиро может масштабироваться очень хорошо. –

2

Я бы порекомендовал вас взглянуть на OACC (http://oaccframework.org). OACC был разработан для решения проблемы безопасности приложений. В отличие от большинства фреймворков OACC может хранить/управлять отношениями авторизации в вашем приложении. Модель авторизации OACC является более мощной, чем Shiro или Spring Security.