【问题标题】:How to work "Remember Me?" Funcitonality without using Cookie in Java?如何工作“记住我?”在 Java 中不使用 Cookie 的功能?
【发布时间】:2013-03-18 16:54:05
【问题描述】:

首先道歉要问这个重复的问题,但我对此有很多困惑..

其实在我的spring Application中有Home.jsp、login.jsp和LoginController.java、LoginForm。 (听说 Login.jsp 包含 Home.jsp) 登录.jsp:

    <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<fieldset id="signin_menu">
    <form:form action="login/processLogin" modelAttribute="LOGIN">
        <label for="username">Username or email</label>
        <form:input path="userName" tabindex="4" />
        </p>
        <p>
            <label for="password">Password</label>
            <form:password path="password" tabindex="5" />
        </p>

        <p class="remember">
            <input id="signin_submit" value="Sign in" tabindex="6" type="submit">
            <form:checkbox path="remember" id="remember" name="remember_me"
                value="1" tabindex="7" />
            <label for="remember">RememberMe</label>
        </p>
    </form:form>
</fieldset>

登录表单:

public class LoginForm {
private String userName;
private String password;
private boolean remember;
//Setter and getter}

LoginController.java

@Controller
@RequestMapping(value="login")
public class LoginController {
    @Autowired
    private UserService userService;
    @Autowired
    private SessionData sessionData;

    @RequestMapping(value = "processLogin", method = RequestMethod.POST)
    public String processLogin(LoginForm loginForm, BindingResult result,
            Model model) {

        if (userService.authenticateUser(loginForm.getUserName(),
                loginForm.getPassword())) {
            sessionData.setUser(userService.getUser(loginForm.getUserName()));
        }
        model.addAttribute(FormType.LOGIN.name(), loginForm);
        return "redirect:/home";
    }}

当我启动服务器时:http://localhost:8080/EClass/home 当单击登录按钮(Login.jsp)和单击Submit 按钮请求转到并重定向到主页时,再次显示:http://localhost:8080/EClass/home

所以听说没有 Cookie 来获取它。如何工作还记得我吗?这种情况的选择..

我真的卡住了这一点..所以请帮助我..

【问题讨论】:

  • 你使用过spring-security吗?这个框架为你处理这个功能
  • No.. 这个怎么用?给出一些示例代码。如果这个 Spring-secutity 需要任何 Jar?
  • 你的问题有点不清楚:a) 确实记得我在你的应用程序中工作,你问它为什么/如何工作,b) 它不工作,你要求支持让它运行?
  • 不,它不工作,给我建议与记住我一起工作?不带 Cookie 的选项..

标签: java spring jsp cookies remember-me


【解决方案1】:

您必须做大量工作(主要是阅读文档和教程)才能了解 Spring 安全性并记住我在运行,但这样做非常值得。

spring security homepage开始,他们有一个很好的getting started section

如果您有更多时间并想了解 Spring Security 的工作原理,那么我强烈建议您阅读Spring Security 3.1 book


你问

如何工作“记住我?”在 Java 中不使用 Cookie 的功能?

答案:不是——它需要 cookie 来识别用户/客户端。


另外一个非常重要的提示:如果您寻找任何关于 Spring Security 的教程、文档、...,请确保它们参考的是 3.x 版! (版本 2.x 和更早的“acegi”与版本 3 有很大不同)

【讨论】:

    【解决方案2】:

    “记住我”功能由spring security framewok 提供,如果您在基于 spring 的应用程序中进行身份验证和授权,这是必须的

    【讨论】:

      猜你喜欢
      • 2014-07-24
      • 1970-01-01
      • 2013-05-16
      • 2011-01-13
      • 2015-04-23
      • 2015-01-24
      • 1970-01-01
      • 2015-10-10
      相关资源
      最近更新 更多