Проблема обновления Spring Security Core Plugin 2.0-RC2?
У меня есть проект grails, и я только что обновил свой плагин Spring Security Core до последней версии, однако при попытке запустить приложение я получаю следующее сообщение:
| Error Compilation error: startup failed:
Compile error during compilation with javac.
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/DatabaseOnlyLdapAuthoritiesPopulator.java:20: cannot find symbol
symbol : class GrailsUserDetailsService
location: package org.codehaus.groovy.grails.plugins.springsecurity
import org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserDetailsService;
^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/DatabaseOnlyLdapAuthoritiesPopulator.java:37: cannot find symbol
symbol : class GrailsUserDetailsService
location: class org.codehaus.groovy.grails.plugins.springsecurity.ldap.DatabaseOnlyLdapAuthoritiesPopulator
private GrailsUserDetailsService _userDetailsService;
^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/DatabaseOnlyLdapAuthoritiesPopulator.java:71: cannot find symbol
symbol : class GrailsUserDetailsService
location: class org.codehaus.groovy.grails.plugins.springsecurity.ldap.DatabaseOnlyLdapAuthoritiesPopulator
public void setUserDetailsService(final GrailsUserDetailsService service) {
^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/GrailsLdapAuthoritiesPopulator.java:20: cannot find symbol
symbol : class GrailsUserDetailsService
location: package org.codehaus.groovy.grails.plugins.springsecurity
import org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserDetailsService;
^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/GrailsLdapAuthoritiesPopulator.java:36: cannot find symbol
symbol : class GrailsUserDetailsService
location: class org.codehaus.groovy.grails.plugins.springsecurity.ldap.GrailsLdapAuthoritiesPopulator
private GrailsUserDetailsService _userDetailsService;
^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/GrailsLdapAuthoritiesPopulator.java:147: cannot find symbol
symbol : class GrailsUserDetailsService
location: class org.codehaus.groovy.grails.plugins.springsecurity.ldap.GrailsLdapAuthoritiesPopulator
public void setUserDetailsService(final GrailsUserDetailsService service) {
^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/GrailsLdapUserDetailsManager.java:3: cannot find symbol
symbol : class GrailsUserDetailsService
location: package org.codehaus.groovy.grails.plugins.springsecurity
import org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserDetailsService;
^
/home/dev/.grails/2.1.0/projects/app/plugins/spring-security-ldap-1.0.6/src/java/org/codehaus/groovy/grails/plugins/springsecurity/ldap/GrailsLdapUserDetailsManager.java:13: cannot find symbol
symbol: class GrailsUserDetailsService
public class GrailsLdapUserDetailsManager extends LdapUserDetailsManager implements GrailsUserDetailsService {
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
8 errors
Может кто-нибудь, пожалуйста, помогите с этим?
Спасибо
** РЕДАКТИРОВАТЬ * ** *
Теперь я просмотрел плагины и основные файлы и убедился, что все новые импорта Spring Security выполнены правильно. Приложение теперь прекрасно компилируется, однако, когда я запускаю его и пытаюсь получить доступ к домашней странице, я получаю следующие ошибки:
| Running Grails application
Configuring Spring Security UI ...
... finished configuring Spring Security UI
Configuring Spring Security Core ...
... finished configuring Spring Security Core
| Error 2014-03-10 11:44:51,598 [pool-7-thread-1] ERROR plugins.DefaultGrailsPluginManager - Error configuring dynamic methods for plugin [springSecurityCore:2.0-RC2]: null
Message: null
Line | Method
->> 308 | compileStaticRules in grails.plugin.springsecurity.web.access.intercept.AnnotationFilterInvocationDefinition
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 218 | initialize in ''
| 738 | initializeFromAnnotations in SpringSecurityCoreGrailsPlugin
| 599 | doCall in SpringSecurityCoreGrailsPlugin$_closure3
| 303 | innerRun . . . . . . . . in java.util.concurrent.FutureTask$Sync
| 138 | run in java.util.concurrent.FutureTask
| 895 | runTask . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
| 918 | run in ''
^ 662 | run . . . . . . . . . . . in java.lang.Thread
| Server running. Browse to http://localhost:8080/my_app
| Error 2014-03-10 11:49:36,541 [http-bio-8080-exec-2] ERROR [/my_app].[gsp] - Servlet.service() for servlet [gsp] in context with path [/my_app] threw exception
Message: null
Line | Method
->> 273 | isAjax in grails.plugin.springsecurity.SpringSecurityUtils
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 45 | determineUrlToUseForThisRequest in grails.plugin.springsecurity.web.authentication.AjaxAwareAuthenticationEntryPoint
| 53 | doFilter . . . . . . . . . . . in grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter
| 49 | doFilter in grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
| 82 | doFilter . . . . . . . . . . . in grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
| 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
| 918 | run . . . . . . . . . . . . . . in ''
^ 662 | run in java.lang.Thread
Может кто-нибудь предложить какие-либо рекомендации по этому вопросу?
Спасибо
3 ответа
Возможно, вам придется обновить плагин spring-security-ldap до 2.0-RC2, чтобы использовать Spring Security Core 2.0_RC2.
Причина: обратите внимание на изменение имени пакета в последней версии плагина ядра безопасности.
org.codehaus.groovy.grails.plugins.springsecurity.GrailsUserDetailsService
grails.plugin.springsecurity.userdetails.GrailsUserDetailsService
Попробуйте очистить все выходные артефакты
grails clean-all
Убейте все процессы Java. Очистите кэши вашей IDE, перезапустите IDE и повторите попытку.
Я получил эту ошибку, когда при использовании Intellij Idea и класса ReflectionUtils было противоречивое поведение. Возможно, проблема с кэшированием классов.
Я обнаружил, что если вы используете аннотации, вам нужно предоставить массив ролей, а не одну строку:
@Secured ([ 'IS_AUTHENTICATED_FULLY'])