2013-11-22 4 views
7

У меня установлен пружинный сердечник & spring-security-ui. также добавлен тестостерон в роли админ.Интерфейс пользователя Grails Spring Security, доступ пользователя и управления ролью

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

'Извините, у вас нет прав для просмотра этой страницы.'

Нужно ли добавить любую другую роль, чтобы получить доступ к пользовательскому интерфейсу и управлению ролью?

плагин версия.

компиляции ': весна-безопасности ядра: 2,0-RC2' компиляции ": весна-безопасности интерфейс: 1,0-RC1"

доступа к этому URL: //127.0.0.1:8080/sec- test/role/search

вот мой экран, после входа в систему.

enter image description here

+0

Вы пытались поставить @Secured (['ROLE_USER']) def index = {} перед каждым методом в контроллере – LynAs

+0

Да, это я добавил в своем приложении contoler, он работает. как я могу получить доступ к средствам управления ролью в плагинах безопасности? – sfgroups

+0

Насколько я знаю, нет контроллера управления ролями – LynAs

ответ

6

Сначала создайте свои роли и тестовых пользователей в BootStrap.groovy:

import springsecurity.User 
import springsecurity.Role 
import springsecurity.UserRole 

class BootStrap { 

    def init = { servletContext -> 

     def adminRole = new Role(authority: 'ROLE_ADMIN').save(flush: true) 
     def userRole = new Role(authority: 'ROLE_USER').save(flush: true) 

     def testUser = new User(username: 'testusername', password: '1234') 
     testUser.save(flush: true) 

     UserRole.create testUser, adminRole, true 

     assert User.count() == 1 
     assert Role.count() == 2 
     assert UserRole.count() == 1 

    } 
    def destroy = { 
    } 
} 

Тогда переопределять как предложено:

grails s2ui-override auth 
grails s2ui-override layout 
grails s2ui-override user package.name 
grails s2ui-override role package.name 

Наконец добавил защищенные аннотаций к контроллерам, т.е. :

package springsecurity 
import grails.plugin.springsecurity.annotation.Secured 

@Secured(['ROLE_ADMIN']) 
class RoleController extends grails.plugin.springsecurity.ui.RoleController { 
} 
+0

hi @ burt-beckwith, я обновил весеннее ядро ​​безопасности, acl и ui до последней версии, но теперь, если я попытаюсь войти в систему, я получаю Извините, у вас нет разрешения просматривать эту страницу. Нужно ли нам делать что-либо особенное, когда я обновляюсь от весеннего ядра 1.2, ui 0.2 и acl 1.1.1. –

+0

hi @sfgroups, сделал выше решение решить вашу проблему? Я получаю такую ​​же ошибку, я попробовал выше решение, но не смог добиться успеха. –

0

отображение пользовательской роли выполняются в UserController.

URL - http://127.0.0.1:8080/sec-test/user 
+0

Я не знал, что мне нужно создать пользователя и роль contoler для приложения. Спасибо – sfgroups

+0

Вам не нужно создавать их. Эти контроллеры обеспечиваются плагином UI весенней безопасности. – Naresha

+0

Не создавая их, как мы можем предоставить разрешение на доступ к группе ROLE_ADMIN? – sfgroups

1

После установки плагинов мне нужно, чтобы запустить этот s2ui-переопределение для создания контроллеров в приложении

grails s2ui-override auth 
grails s2ui-override layout 
grails s2ui-override user com.myApp 
grails s2ui-override role com.myApp 

Эта страница была помощь полностью.

http://ajibrans.wordpress.com/2012/02/04/spring-security-plugin-with-grails-1-3-7/

4

лучше способ сделать anounymous регистрации этих инструкциями:

grails s2ui-override auth, grails s2ui-override layout, grails s2ui-override user com.myApp, grails s2ui-override role com.myApp, grails s2ui-override register com.myApp

и добавить зарегистрированный контроллер:

import grails.plugin.springsecurity.annotation.Secured 

@Secured(['ROLE_ANONYMOUS']) 
class RegisterController extends  grails.plugin.springsecurity.ui.RegisterController { 
} 
2

По умолчанию Грааль использует пессимист подход для блокировки URL, что означает, что он показывает одно и то же сообщение «Извините, что вы не авторизованы для просмотра этого URL-адреса», если этот URL явно не указан белым цветом. Помимо добавления @Secured к контроллеру можно также добавить следующие строки в ваш файл config/conf.groovy и белый список URL:

'/action':     ['ROLE_ADMIN'] 

'/action' = 

URL на ваши действия.также может быть дубинкой с дикими картами, например:

'/**/css/**':     ['permitAll'] 

['ROLE_ADMIN'] = 

роль, которую может получить доступ к URL

0

в Config.groovy

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
'/':        ['permitAll'], 
'/**':        ['permitAll'], 
'/index':       ['permitAll'], 
'/user/search':     ['permitAll'], 
'/plugins/jquery-ui-1.10.3/**': ['permitAll'], 
'/index.gsp':      ['permitAll'], 
'/assets/**':      ['permitAll'], 
'/**/js/**':      ['permitAll'], 
'/**/css/**':      ['permitAll'], 
'/**/images/**':     ['permitAll'], 
'/**/favicon.ico':    ['permitAll'] 

Это позволяет предоставлять доступ ко всем этим .. Вы можете также вручную настройте его.

1

Как упоминалось выше, плагин заменен на пессимистичную блокировку, поэтому любая вещь без определенного уровня безопасности будет выбрасывать «Извините, у вас нет прав на просмотр этой страницы». сообщение.

Другие ответы уже сказал, что вы можете просто использовать сценарий s2ui переопределить для создания всех контроллеров и добавить @Secure аннотацию

grails s2ui-override user com.myApp 
grails s2ui-override role com.myApp 

затем редактировать добавить

import grails.plugin.springsecurity.annotation.Secured 
@Secured(['ROLE_ADMIN']) 
class UserController ... 

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

grails.plugin.springsecurity.controllerAnnotations.staticRules = [ 
    '/':        ['permitAll'], 
    '/**/css/**':      ['permitAll'], 
    '/**/images/**':     ['permitAll'], 
    <snip> 
    '/register/**':     ['permitAll'], 
    '/user/**':      ['ROLE_ADMIN'], 
    '/role/**':      ['ROLE_ADMIN'], 

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

Смежные вопросы