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