实施记住我没有钥匙

时间:2011-10-11 15:22:48

标签: spring spring-security

我找到了一些实用的样本,只记得我的功能

<remember-me/>

和其他示例将其实现为:

<remember-me key="_spring_security_remember_me"/>

我想知道两个声明之间有什么区别, _spring_security_remember_me 是预定义的键吗? 感谢。

3 个答案:

答案 0 :(得分:1)

documentation中,key属性用于散列存储在Cookie中的值。它可以防止恶意用户尝试解码cookie,因为如果没有密钥,他们就无法做到这一点(更难)。

答案 1 :(得分:1)

默认密钥可在AuthenticationConfigBuilder.createRememberMeFilter()

中找到
    final String DEF_KEY = "SpringSecured";

如果您未在<remember-me>

中指定一个值,则使用该值

答案 2 :(得分:0)

对于将来想要使用Rememberme()。key()功能的任何人,似乎从Spring Boot 2.2.6开始,如果没有提供密钥,则可以使用SecureRandom生成器来生成密钥。这是org.springframework.security.config.http.AuthenticationConfigBuilder.createRememberMeFilter

中的实现
private String createKey() {
    SecureRandom random = new SecureRandom();
    return Long.toString(random.nextLong());
}