Прувет. По-моему довольно интересный вопрос.
В struts есть встроенная поддержка ролей. Можно в struts-config.xml прописать, какие action'ы явл. доступными для определённых ролей.
Непонятным остаётся следующее: как для каждой конкретной сессии назначить роль?
Заранее спасибо за помощь.
Здравствуйте, ___mac___, Вы писали:
___>Прувет. По-моему довольно интересный вопрос.
___>В struts есть встроенная поддержка ролей. Можно в struts-config.xml прописать, какие action'ы явл. доступными для определённых ролей.
___>Непонятным остаётся следующее: как для каждой конкретной сессии назначить роль?
можно все сделать custom-способом (переопределяется strutsовский requestprocessor, а в нем — метод processRoles). как этот метод будет работать — так роли и придется подкладывать
а поставляемый в составе struts requestprocessor ориентирован на "стандартный" security, который в общем случае предполагает, что web-app защищается с помощью соотв. тегов в web.xml, а пользователи аутентифицируются при обращении к защищенным ресурсам с помощью jaas. при успешной аутентификации привилегии пользователя популируются в "нужное" место web-контейнера, после чего провайдер авторизации используемого сервера приложений (или свой, если его переопределить) будет корректно отзываться на метод request.isUserInRole(String roleName).
я делал обоими способами. второй мне нравится гораздо больше в силу своей "стандартности"
Здравствуйте, C0s, Вы писали:
C0s>можно все сделать custom-способом (переопределяется strutsовский requestprocessor, а в нем — метод processRoles). как этот метод будет работать — так роли и придется подкладывать
C0s>а поставляемый в составе struts requestprocessor ориентирован на "стандартный" security, который в общем случае предполагает, что web-app защищается с помощью соотв. тегов в web.xml, а пользователи аутентифицируются при обращении к защищенным ресурсам с помощью jaas.
Не факт. Все зависит от настройки контейнера, в котором крутится стратс. Например, томкат, использует для аутентификации реалмы и по-умолчанию настроен на простую реализацию, использующую xml файл (что-то вроде tomcat-users.xml), содержащий имена пользователей, пароли и группы, к которым относятся пользователи. Но конечно его (кота) можно настроить и на использование JAAS -> JAASRealm.
Здравствуйте, Lucker, Вы писали:
L>Здравствуйте, C0s, Вы писали:
C0s>>можно все сделать custom-способом (переопределяется strutsовский requestprocessor, а в нем — метод processRoles). как этот метод будет работать — так роли и придется подкладывать
C0s>>а поставляемый в составе struts requestprocessor ориентирован на "стандартный" security, который в общем случае предполагает, что web-app защищается с помощью соотв. тегов в web.xml, а пользователи аутентифицируются при обращении к защищенным ресурсам с помощью jaas.
L>Не факт. Все зависит от настройки контейнера, в котором крутится стратс. Например, томкат, использует для аутентификации реалмы и по-умолчанию настроен на простую реализацию, использующую xml файл (что-то вроде tomcat-users.xml), содержащий имена пользователей, пароли и группы, к которым относятся пользователи. Но конечно его (кота) можно настроить и на использование JAAS -> JAASRealm.
да я не возражаю против простых реализаций реалмов (у меня в BES просто по умолчанию используется Borland Security Service Realm, который сразу на JAAS ориентирован, поэтому в tomcat файловым реалмом я никогда не пользовался), просто когда уже заходит до гранулированной раздачи прав на экшны приложения, то скорее всего раздавать их тоже придется через какой-то adminGUI или его подобие, а не через редактирование простого файла. хотя, конечно, все зависит от размера и предназначения аппликухи