0

У меня есть простое веб-приложение, в котором я тестирую. Он имеет два уровня: администратор и обычный пользователь. Проект также имеет три объекта. То, что я пытаюсь достичь, - это пример, когда пользователь не может удалить какую-либо запись в первом объекте, хотя он может ее создать.Уровни полномочий Роуз Весны

Я считаю, что использование @RequestMapping - это способ достичь этого, но не совсем уверен, как реализовать, а если нет, то какие существуют другие способы? Код фрагмента будет оценен.

Заранее спасибо.

ответ

0

Вы можете скрыть кнопку удаления в вашем представлении jspx, если вы только блокируете доступ через пользовательский интерфейс, а затем запретите вызов метода удаления через ваши контроллеры. Вы также можете использовать дополнительные методы, чтобы запретить пользователям выполнять определенные операции.

1. Интерфейс пользователя

Однако, вам нужно будет выполнить ручную проверку на контроллерах, чтобы убедиться, что неавторизованные пользователи не выполняют операцию удаления.

Для этого сначала нужно импортировать пространство имен библиотеки тегов Spring JSP Spring в файл jspx.

xmlns:sec="http://www.springframework.org/security/tags" 

Затем используйте теги безопасности Spring, которые вы только что импортировали, чтобы окружать элементы, которые необходимо отображать на уровне пользователя.

Для примера:

<sec:authorize access="hasRole('ROLE_ADMIN')"> 
     <p>User is an administrator</p> 
     <!-- Delete button goes here --> 
    </sec:authorize> 

Для получения дополнительной информации о библиотеке тегов, пожалуйста, посетите http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.html

2. Контроллер

Вы можете перехватывать URL, чтобы запретить пользователям, которые не у вас есть ROLE_ADMIN, добавив в ваш applicationContext-security.xml

<intercept-url pattern="/countries/**" access="hasRole('ROLE_ADMIN')" method="DELETE"/> 

Если это не сработает, попробуйте перевести следующую ссылку.

http://forum.springsource.org/showthread.php?123781-intercept-url-method-attribute-not-work-with-put-and-delete

Для интересного урока о визите Spring Security http://static.springsource.org/spring-security/site/petclinic-tutorial.html

Приветствия.