Я работаю над плагином Grails 3.2.2, в котором я пытаюсь переопределить RegisterController от spring-security-ui, а также register.gsp. Я использовал команду s2ui-override, которая создала мне необходимый контроллер, и на данный момент я только добавил println, чтобы увидеть, как он работает, но, похоже, все еще идет в исходное. До сих пор у меня есть:Grails 3.2.2 spring-security-ui override RegisterController не работает
RegisterController
import org.springframework.security.core.userdetails.UserDetailsService
import org.springframework.security.core.userdetails.UserDetails
import grails.plugin.springsecurity.ui.RegisterCommand
class RegisterController extends grails.plugin.springsecurity.ui.RegisterController {
static defaultAction = 'register'
UserDetailsService userDetailsService
@Override
def register(RegisterCommand registerCommand) {
println "IN MY CONTROLLER!!"
def registerReturn = super.register(registerCommand)
if (registerReturn?.emailSent) {
UserDetails createdUser = userDetailsService.loadUserByUsername(registerCommand.username)
println "New user ${createdUser}"
}
registerReturn
}
def otherAction() {
println "IN MY CONTROLLER!!"
println "userDetailsService = ${userDetailsService}"
"Hellloooo"
}
}
register.gsp же, как оригинал, только добавил
<p style="color:red;"> HELLLOOOOOOO </p>
сразу после тега тела
UrlMappings
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/"(view:"/index")
"500"(view:'/error')
"404"(view:'/notFound')
}
}
Результат при запуске приложения: я могу видеть свой образец красный текст в верхней части, но не может видеть вывод в консоли, хотя я получаю предупреждение при запуске приложения. Консольный вывод при переходе к «регистрации» URL:
Running application...
WARNING: The [register] action accepts a parameter of type [grails.plugin.springsecurity.ui.RegisterCommand] which does not implement grails.validation.Validateable. Data binding will still be applied to this command object but the instance will not be validateable.
@Override
^
Configuring Spring Security Core ...
... finished configuring Spring Security Core
Configuring Spring Security UI ...
... finished configuring Spring Security UI
Configuring Spring Security REST 2.0.0.M2...
... finished configuring Spring Security REST
Grails application running at http://localhost:8060 in environment: development
Хотя при переходе в «регистр/otherAction» Я получаю:
IN MY CONTROLLER
userDetailsService = [email protected]10ed50b0
Интересно, если я публикую плагин локально (мой .m2 dir) и импортировать его в приложение, я получаю мои printlns в консоли, BUT мой gsp теперь не используется (я не вижу свой красный текст Hello). Консольный выход:
IN MY CONTROLLER!!
// unimportant mailing error
New user [email protected]: Username: test; Password: [PROTECTED]; Enabled: true; AccountNonExpired: true; credentialsNonExpired: true; AccountNonLocked: false; Granted Authorities: ROLE_NO_ROLES
Кто-нибудь может помочь, где я буду не так? Я рад предоставить любые другие ресурсы, которые могут помочь.