ACL объекта и безопасность канала - PullRequest
2 голосов
/ 10 октября 2011

Я заинтересован в создании веб-приложения с использованием игровой среды. Мне нравится то, что я вижу. Тем не менее, после прочтения документации по безопасности появляется только проверка подлинности контроллера / действия с использованием модуля безопасности.

Могу ли я спросить, есть ли дополнительная аутентификация на объекте модели? Похоже на Spring Security ACL?

Также в документации модуля нет упоминания о безопасности канала, так как я хотел бы обслуживать веб-приложение через HTTPS, когда пользователь аутентифицирован, и HTTP, если его нет.


Спасибо за информацию, ребята. Модули с безопасными и засованными болтами предназначены для обеспечения базовой безопасности контроллера, я ищу что-то с немного большей мощностью, которое может сравниться с Spring Security.

Я взглянул на Apache Shiro и, хотя он обеспечивает гораздо лучшую безопасность, чем модули инфраструктуры воспроизведения, он не обеспечивает функциональность для защиты объектов модели, аналогичных ACL Domain Object в Spring Security.

Жаль, что в пространстве безопасности Java нет серьезных претендентов на соперника Spring Security. Если бы только Spring Security не зависел от Servlet API, я бы хотел подключить его к своему приложению Play.

Ответы [ 2 ]

1 голос
/ 10 октября 2011
  • Проверьте защищенный модуль , который используется для защиты методов контроллера.

  • Хотя я не использовал его, есть такжеМодуль для авторизации называется deadbolt .

  • Документация / учебное пособие и примеры довольно исчерпывающие.Учебное пособие поможет вам добавить аутентификацию с защитой.

  • Ознакомьтесь с руководством по безопасности , которое даст вам представление о том, как проходит играбезопасность.

  • HTTPS не является проблемой.По моему опыту лучше использовать обратный прокси-сервер, такой как Apache, который обслуживает вашу игру!приложение.

0 голосов
/ 10 октября 2011

Если вам нужна более детальная защита, я бы рекомендовал использовать модуль security-permissions . Он позволяет вам определять контроль доступа на уровне экземпляра (а не на уровне класса или группы) и основан на drools .

Правило бы выглядеть следующим образом, но вы можете настроить последнюю строку в соответствии с конкретным пользователем, а действия также будут настраиваемыми, чтобы вы могли определить свое собственное.

/* Admins can only edit postcards and letters */
rule CanUserEditLetter
when
  $cs: Item(name == "letter")
  $c: PermissionCheck(target == $cs, action in ("delete", "update", "insert"))
  Role(name == "admin")
then
  $c.grant();
end
...