Spring security - 将参数传递给登录页面

Aru*_*run 1 parameters spring login

我正在开发基于 Java/J2EE 和 Spring 的 Web 应用程序。我们正在使用 spring 安全配置进行登录。我有一个要求,但不知道如何实现它。要求:每当匿名用户点击主页上的“查看地址簿”链接时,他们应该被重定向到登录/注册页面。并且登录/注册页面的标题应设置为“请登录/注册以查看您的地址簿”。

现在,在这里我不是基于我应该更改登录/注册页面标题的参数。

请建议。参考特定文件/步骤将不胜感激。

问候, 阿伦

mir*_*sif 5

您可以使用SavedRequest接口。Spring security 使用SavedRequest类型来存储重定向 url 和参数。

  1. 创建一个自定义登录控制器来为您的 login.jsp 视图提供服务。
  2. 从 HttpSessionRequestCache 获取 SavedRequest 对象
  3. 获取请求的url和参数savedRequest。
  4. 将它作为模型属性传递给 login.jsp 页面。

    @Controller
    public class LoginController {
        @RequestMapping("/login")
        public ModelAndView showLoginPage(HttpServletRequest request, HttpServletResponse response) {
    
            SavedRequest savedRequest = new HttpSessionRequestCache().getRequest(request, response);
    
            String requestedUrl  = savedRequest.getRedirectUrl();
            ModelAndView model =  new ModelAndView("login");
            model.addObject("requestedUrl",requestedUrl);
            return model;
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    您还可以通过以下方式获取请求参数

    savedRequest.getParameterValues("parameterName");
    
    Run Code Online (Sandbox Code Playgroud)