2015-06-28 2 views
3

Я новичок в Spring mvc. В моем существующем проекте есть один администратор, и у них есть права на обновление данных, но теперь мне нужно создать 2 новых администратора, admin1 и admin2 , которые могут только см. страницу с ограниченным доступом при входе в систему:Spring MVC Role and Permission to Admin

при входе в систему администратора, они могут видеть Добавить данные, обновить данные, Опубликовать страницы сообщений в строке меню. , но в случае Admin1, вы можете видеть только страницу сообщений в меню в строке меню.

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

ответ

2

вы должны рассмотреть вопрос об использовании Spring безопасности для достижения this.check следующие

<http auto-config="true"> 
<intercept-url pattern="/admin*" access="ROLE_ADMIN" /> 
</http> 

Это означает, что только пользователь с властью «ROLE_ADMIN» разрешен доступ к URI/админ *. Если неавторизованный пользователь попытается получить к нему доступ, отобразится страница «http 403 access denied page».

вы должны настроить адреса и разрешен доступ к ним

простой пример на http://www.mkyong.com/spring-security/spring-security-access-control-example/

0

Вам нужно, конечно, две роли. - Тогда вы можете либо - проверить на роль Admin1 or Admin2 или Admin1 где угодно. - Но уже упоминался более подходящий подход: отдельные роли и привилегии: назначить роли пользователям и привилегии для ролей, чтобы пользователь получал свои привилегии через свои роли. Теперь вам просто нужно проверить привилегии, чтобы разрешить доступ к функции.

Весна уже построена в 14.4 Hierarchical Roles concept, но я чувствую, что она неуклюжие, потому что она требует, чтобы каждый Избиратель ее понял. Поэтому я реализовал my own solution, что очень просто и основано только на Spring-Security-Roles. Поэтому нужно только изменить Поставщик роли, но не более того.

0

Вам нужно создать две роли в Spring security с различным доступом.

<http auto-config="true"> 
    <intercept-url pattern="/addData" access="ADMIN_2" /> 
    <intercept-url pattern="/updateData" access="ADMIN_2" /> 
    <intercept-url pattern="/postMessage" access="ADMIN_1" /> 
</http>