grails:如何为SimpleRuthenticationSuccessHandler/AbstractAuthenticationTargetUrlRequestHandler设置targetUrl参数

grails:如何为SimpleRuthenticationSuccessHandler/AbstractAuthenticationTargetUrlRequestHandler设置targetUrl参数,grails,Grails,我想在成功登录后根据某些条件动态重定向。所以我补充说 grails.plugin.springsecurity.successHandler.targetUrlParameter='myTargetUrlParam' 但是现在我想知道如何设置“targetUrlParameter”以便“AbstractAuthenticationTargetUrlRequestHandler”可以访问它。“request.getParameter(targetUrlParameter)”(在下面的第10行中)返

我想在成功登录后根据某些条件动态重定向。所以我补充说 grails.plugin.springsecurity.successHandler.targetUrlParameter='myTargetUrlParam' 但是现在我想知道如何设置“targetUrlParameter”以便“AbstractAuthenticationTargetUrlRequestHandler”可以访问它。“request.getParameter(targetUrlParameter)”(在下面的第10行中)返回null

protected String determineTargetUrl(HttpServletRequest request, HttpServletResponse response) {
    if (isAlwaysUseDefaultTargetUrl()) {
        return defaultTargetUrl;
    }

    // Check for the parameter and use that if available
    String targetUrl = null;

    if (targetUrlParameter != null  ) {
        targetUrl = request.getParameter(targetUrlParameter);

        if (StringUtils.hasText(targetUrl)) {
            logger.debug("Found targetUrlParameter in request: " + targetUrl);

            return targetUrl;
        }
    }

    if (useReferer && !StringUtils.hasLength(targetUrl)) {
        targetUrl = request.getHeader("Referer");
        logger.debug("Using Referer header: " + targetUrl);
    }

    if (!StringUtils.hasText(targetUrl)) {
        targetUrl = defaultTargetUrl;
        logger.debug("Using default Url: " + targetUrl);
    }

    return targetUrl;
}
我试过了

params.myTargetUrlParam = 'some url to redirect to'

在我的LoginController中,但没有成功。我做错了什么?

我认为您必须将目标url参数添加到用于提交登录表单的url中

例如,LoginController可能返回包含登录表单的视图:

<g:form url="/j_spring_security_check?myTargetUrlParam=your-redirect-url">
  <!-- fields for username and password -->
</g:form>

不,这不起作用,我认为“url”是错误的属性?我还尝试了'params=“[mySuperSecretParam:your redirect url]”,但也没有成功