РЕДАКТИРОВАТЬ: я перечитал связанный вопрос и увидел, что пользователь установил плагин безопасности Spring в своем основном приложении. Я установил плагины Spring Security, и теперь код компилируется и запускается, но аутентификация LDAP не работает. Я знаю, что он действителен, так как работает в плагине, который я создал.

овном это почти так же, какэтот вопрос, Хотите установить плагины Spring Security только один раз, чтобы они использовались всеми моими приложениями. У меня есть плагин, в который я установил Spring Security Core и плагины LDAP. делаgrails run-app на плагине прекрасно работает. В моем основном приложении я хочу иметь аннотации безопасности на контроллерах. Когда я пытаюсь загрузить этот плагин в основное приложение, появляется сообщение об ошибкеunable to resolve class grails.plugin.springsecurity.annotation.Secured import grails.plugin.springsecurity.annotation.Secured, Когда я удаляю импорт и аннотацию из контроллера, безопасность даже не работает. Вот мой SecuritytreeGrailsPlugin.groovy с атрибутом, позволяющим объединить решение связанного вопроса и решение моего собственного. Что мне нужно добавить, чтобы все это работало? Я на Граале 2.3.11. Кстати, как бы я добавить другие статические правила в будущем? Нужно ли мне снова редактировать GrailsPlugin или я могу добавить его в приложение?Config.groovy?

SecuritytreeGrailsPlugin.groovy (некоторые настройки LDAP были специально пропущены)

import grails.plugin.springsecurity.SpringSecurityUtils
import grails.plugin.springsecurity.SecurityFilterPosition
import Securitytree.MyUserDetailsContextMapper
class SecuritytreeGrailsPlugin {
    // the plugin version
    def version = "0.1"
    // the version or versions of Grails the plugin is designed for
    def grailsVersion = "2.3 > *"
    // resources that are excluded from plugin packaging
    def pluginExcludes = [
        "grails-app/views/error.gsp"
    ]

    // TODO Fill in these fields
    def title = "Securitytree Plugin" // Headline display name of the plugin
    def author = "
    def authorEmail = ""
    def description = '''\

'''

    // URL to the plugin's documentation
    def documentation = "http://grails.org/plugin/de"

    // Extra (optional) plugin metadata

    // License: one of 'APACHE', 'GPL2', 'GPL3'
//    def license = "APACHE"

    // Details of company behind the plugin (if there is one)
//    def organization = [ name: "My Company", url: "http://www.my-company.com/" ]

    // Any additional developers beyond the author specified above.
//    def developers = [ [ name: "Joe Bloggs", email: "[email protected]" ]]

    // Location of the plugin's issue tracker.
//    def issueManagement = [ system: "JIRA", url: "http://jira.grails.org/browse/GPMYPLUGIN" ]

    // Online location of the plugin's browseable source code.
//    def scm = [ url: "http://svn.codehaus.org/grails-plugins/" ]

    def doWithWebDescriptor = { xml ->
        // TODO Implement additions to web.xml (optional), this event occurs before
    }


    def doWithSpring = {
        // TODO Implement runtime spring config (optional)
        beans = {

    ldapUserDetailsMapper(MyUserDetailsContextMapper) {
        // bean attributes
    }
    }
    }

    def doWithDynamicMethods = { ctx ->
        // TODO Implement registering dynamic methods to classes (optional)
    }

    def doWithApplicationContext = { ctx ->
        // TODO Implement post initialization spring config (optional)
        // Added by the Spring Security Core plugin:
    SpringSecurityUtils.securityConfig.userLookup.userDomainClassName = 'Securitytree.User'
    SpringSecurityUtils.securityConfig.userLookup.authorityJoinClassName = 'Securitytree.UserRole'
    SpringSecurityUtils.securityConfig.authority.className = 'Securitytree.Role'
    // LDAP using TrakFast server
    SpringSecurityUtils.securityConfig.ldap.context. managerDn = 'CN=Grails LDAP SA,DC=com,DC=trakfast'               
    SpringSecurityUtils.securityConfig.ldap.context. managerPassword = 'I3KU96oDK5'                                                                       
    SpringSecurityUtils.securityConfig.ldap.context. server = 'ldap://trakdomain01.trakfast.com:498'                                                                                  
    SpringSecurityUtils.securityConfig.ldap.search.filter= '(sAMAccountName={0})'                                                                                   
    SpringSecurityUtils.securityConfig.ldap.authorities.retrieveDatabaseRoles = true
    SpringSecurityUtils.securityConfig.controllerAnnotations.staticRules  = [
    '/':                ['permitAll'],
    '/index':           ['permitAll'],
    '/index.gsp':       ['permitAll'],
    '/assets/**':       ['permitAll'],
    '/**/js/**':        ['permitAll'],
    '/**/css/**':       ['permitAll'],
    '/**/images/**':    ['permitAll'],
    '/**/favicon.ico':  ['permitAll']
]

    // Added to change Denied Access page
    SpringSecurityUtils.securityConfig.adh.errorPage = null   
    SpringSecurityUtils.securityConfig.logout.postOnly = false

    }

    def onChange = { event ->
        // TODO Implement code that is executed when any artefact that this plugin is
        // watching is modified and reloaded. The event contains: event.source,
        // event.application, event.manager, event.ctx, and event.plugin.
    }

    def onConfigChange = { event ->
        // TODO Implement code that is executed when the project configuration changes.
        // The event is the same as for 'onChange'.
    }

    def onShutdown = { event ->
        // TODO Implement code that is executed when the application shuts down (optional)
    }
}

Я полагал, что нет смысла включать код контроллера, но если я ошибаюсь, то могу поделиться им.

РЕДАКТИРОВАТЬ: я перечитал связанный вопрос и увидел, что пользователь установил плагин безопасности Spring в своем основном приложении. Я установил плагины Spring Security, и теперь код компилируется и запускается, но аутентификация LDAP не работает. Я знаю, что он действителен, так как работает в плагине, который я создал.

Ответы на вопрос(0)

Ваш ответ на вопрос