当前位置:  开发笔记 > 程序员 > 正文

Spring Security:如何获取初始目标URL

如何解决《SpringSecurity:如何获取初始目标URL》经验,为你挑选了2个好方法。

我正在使用弹簧安全来限制网址.我想在同一页面上提供注册和登录页面.

登录时,spring security会转移到受限页面.但是我试图将目标URL传递给注册过程,以便在注册后我们可以重定向到受限制的页面.

如何获取用户重定向的实际URL.

有任何想法吗?



1> Spring Monke..:

这就是我从Spring Security获取URL的方式.

SavedRequest savedRequest = (SavedRequest)session.getAttribute(
    AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY);
String requestUrl = savedRequest.getFullRequestUrl();



2> stevevls..:

他们在spring security 3.0中移动了一些东西,所以上面的代码片段不再起作用了.不过这样做有诀窍:

protected String getRedirectUrl(HttpServletRequest request) {
    HttpSession session = request.getSession(false);
    if(session != null) {
        SavedRequest savedRequest = (SavedRequest) session.getAttribute(WebAttributes.SAVED_REQUEST);
        if(savedRequest != null) {
            return savedRequest.getRedirectUrl();
        }
    }

    /* return a sane default in case data isn't there */
    return request.getContextPath() + "/";
}


@TilmanHausherr WebAttributes.SAVED_REQUEST可以用Spring 3.1中的字符串"SPRING_SECURITY_SAVED_REQUEST"替换,这使得上述解决方案再次起作用.
3.1中不再存在"WebAttributes.SAVED_REQUEST",但是[此解决方案](http://stackoverflow.com/a/5389357/535646)可以正常工作.
推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有