подключаемый модуль Grails spring-security-core

Используя spring-security-core: 2.0-RC5 plugin, и добавил

@Secured('ROLE_USER')

к контроллеру Human, когда я перехожу по этому URL-адресу

http://localhost:8080/MyApp/human/index

предполагается, что меня перенаправят на страницу входа, поскольку это действие защищено, но вместо этого оно дает мне this page can't be displayed, как показано ниже. как это можно исправить.

введите здесь описание изображения


person grails    schedule 17.12.2015    source источник


Ответы (2)


Я не уверен, почему он не работает без квадратных скобок, но работает, как показано ниже

@Secured (['ROLE_USER'])

or as

@Secured (значение = ["hasRole ('ROLE_USER')"])

Из @Secured(['ROLE_USER']) очевидно, что он берет список ролей, а не одну строку ролей. Чтобы указать роль в виде строки, вы должны использовать атрибут value из аннотации Secured, а затем вызвать hasRole ('your_role').

Надеюсь, это поможет!

Изменить

Дополнительно проверьте настройки безопасности Spring. Ниже находятся шахты:

grails.plugin.springsecurity.logout.postOnly = false
grails.plugin.springsecurity.userLookup.userDomainClassName = 'com..User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'com.UserRole'
grails.plugin.springsecurity.authority.className = 'com.Role'
grails.plugin.springsecurity.authority.groupAuthorityNameField = 'authorities'
grails.plugin.springsecurity.useRoleGroups = false
grails.plugin.springsecurity.securityConfigType = "Annotation"
grails.plugin.springsecurity.rejectIfNoRule = false
grails.plugin.springsecurity.fii.rejectPublicInvocations = false
grails.plugin.springsecurity.successHandler.defaultTargetUrl="/home/index"
grails.plugin.springsecurity.controllerAnnotations.staticRules  = [
        '/':                ['permitAll'],
        '/error':           ['permitAll'],
        '/index':           ['permitAll'],
        '/index.gsp':       ['permitAll'],
        '/shutdown':        ['permitAll'],
        '/assets/**':       ['permitAll'],
        '/**/js/**':        ['permitAll'],
        '/**/css/**':       ['permitAll'],
        '/fonts/**':        ['permitAll'],
        '/**/images/**':    ['permitAll'],
        '/**/favicon.ico':  ['permitAll'],
        '/login/**':        ['permitAll'],
        '/logout/**':       ['permitAll'],
        '/dbconsole/**':    ['ROLE_ADMIN'],

]

Надеюсь, это поможет!

person Vinay Prajapati    schedule 17.12.2015
comment
изменил его, как вы предложили, но все равно получил тот же результат. - person grails; 17.12.2015
comment
Кажется, есть проблема с другими настройками безопасности Spring. Вы проверили настройки безопасности Spring. Это правильно? - person Vinay Prajapati; 17.12.2015
comment
какие конфигурации безопасности Spring мне нужно проверить? - person grails; 17.12.2015
comment
Да! Позвольте мне отредактировать и предоставить вам мою конфигурацию пружины. Может быть, это поможет! - person Vinay Prajapati; 17.12.2015
comment
У меня есть некоторые из опубликованных вами конфигураций, и я не менял их с тех пор, как установил плагин: grails.plugin.springsecurity.userLookup.userDomainClassName = 'com.security.Users' grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'com.security.UsersRoles' grails.plugin.springsecurity.authority.className = 'com.security.Roles' grails.plugin.springsecurity.auth.loginFormUrl = '/login/auth' - person grails; 17.12.2015

при просмотре моего файла конфигурации я обнаружил:

grails.plugin.springsecurity.auth.forceHttps = true

когда я прокомментировал это, все работало нормально.

person grails    schedule 17.12.2015
comment
если мой ответ вам нравится. Пожалуйста, примите это. Вы пробовали использовать квадратные скобки или квадратные скобки? - person Vinay Prajapati; 17.12.2015