Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 还记得我使用Spring3.1不在HTTP会话上工作吗_Java_Spring_Spring Security - Fatal编程技术网

Java 还记得我使用Spring3.1不在HTTP会话上工作吗

Java 还记得我使用Spring3.1不在HTTP会话上工作吗,java,spring,spring-security,Java,Spring,Spring Security,我正在尝试实现Spring3.1中的“记住我”功能,以允许客户在以前在登录表单中选择该选项时自动登录。以下是我的实际实现: 在spring-security-config.xml中: <security:http auto-config="false" entry-point-ref="myEntryPoint" request-matcher="regex" disable-url-rewriting="true"> ... <security:remembe

我正在尝试实现Spring3.1中的“记住我”功能,以允许客户在以前在登录表单中选择该选项时自动登录。以下是我的实际实现:

在spring-security-config.xml中:

<security:http auto-config="false" entry-point-ref="myEntryPoint" request-matcher="regex" disable-url-rewriting="true">
    ...
    <security:remember-me key="mykey" authentication-success-handler-ref="rememberMeAuthenticationSuccessHandler"/>
</security:http>

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider ref="acceleratorAuthenticationProvider" />
    <security:authentication-provider ref="rememberMeAuthenticationProvider"/>
 </security:authentication-manager>

    <bean id="rememberMeAuthenticationSuccessHandler" class="uk.co.portaltech.qlaccelerator.storefront.security.RememberMeAuthenticationSuccessHandler" scope="tenant">
    <property name="myCookieStrategy" ref="myCookieStrategy" />
    <property name="customerFacade" ref="customerFacade" />
</bean>

    <bean id="rememberMeAuthenticationProvider" class="org.springframework.security.authentication.RememberMeAuthenticationProvider">
    <property name="key" value="myKey" />
</bean>
My login.jsp包含spring Rememmeber me复选框:

<form:checkbox id="_spring_security_remember_me" class="rememberMe" path="_spring_security_remember_me" />
当我第一次通过HTTP会话访问站点时,它不会自动让我登录,但只要我通过HTTPS会话单击登录按钮,它就会自动让我登录


这就是它应该工作的方式,还是我在配置中遗漏了一些东西,让Spring在我访问站点时让我登录?

记住我让应用程序在会话间记住用户。也就是说,如果服务器反弹,或者用户关闭浏览器并重新打开浏览器。在这些情况下,不会再次要求用户提供其凭据

在您描述的案例中,您输入了用户的凭据,然后才登录?“自动”是什么意思

htlpful链接:


检查“记住我”cookie是否在浏览器的cookie列表中标记为安全外观。如果是这样,它将不会通过HTTP连接发送,这将解释您看到的内容


默认情况下,如果请求通过HTTPS,则创建安全cookie。您可以使用正在使用的RememberServices实现的更改此选项。

如果用户关闭浏览器并重新打开浏览器,则自动表示您所说的内容。问题是,因为当我通过HTTP重新打开网站主页上的浏览器时,cookie被标记为安全的,因此用户不会自动登录,而如果我在此时单击HTTPS上的/login url,则用户会在不询问凭据的情况下登录。更清楚地说,我需要做的是强制客户登录,甚至是访问非安全页面,因为当访问安全页面时,“记住我”功能工作正常,跳过登录表单,用户自动登录。