好好玩弄东西,我找到了一个似乎对我有用的解决方案:
首先,我无法更改插件加载的顺序,因为安全包装器对spring bean执行了很多操作,并且必须在核心插件之后加载才能使用。经过一番挖掘后( DefaultSecurityConfig.groovy )我注意到你可以设置以下属性:
grails.plugin.springsecurity.failureHandler.defaultFailureUrl = '/login/authfail? login_error=1' grails.plugin.springsecurity.failureHandler.ajaxAuthFailUrl = '/login/authfail?ajax=true' grails.plugin.springsecurity.auth.loginFormUrl = '/login/auth'
所以我创建了一个自定义控制器和登录页面,它与核心插件中使用的名称不同,并将这些属性更改为指向我的位置。
为了解决这个问题,在包装器的UrlMappings中(命名为:SecWrapperUrlMappings),我将/ login / **的映射放到/ seclogin / **。
确保这些新位置没有被锁定,以便人们可以访问它们,这似乎运作良好。我现在可靠地知道,无论他们使用我的登录页面和登录控制器加载哪个顺序。