当前位置: 首页 > 面试题库 >

Spring Security targetUrlParameter不重定向

高迪
2023-03-14
问题内容

我试图将用户重定向到他们单击登录链接的页面。(对于未经身份验证的用户,页面是只读的;对于已登录的用户,页面是可写的。)如何将用户重定向回他们登录后的来源?

我发送到用户登录页面此链接:/spring_security_login?redirect=/item5。登录后,我希望用户将被重定向到/item5页面。但是,它们总是被重定向到/页面。

这是我正在使用的配置:

<http use-expressions="true">
    <intercept-url pattern="/**" access="permitAll" />
    <form-login authentication-success-handler-ref="simpleUrlAuthenticationSuccessHandler"/>
</http>
<beans:bean id="simpleUrlAuthenticationSuccessHandler"
    class="org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler">
    <beans:property name="defaultTargetUrl" value="/"/>
    <beans:property name="targetUrlParameter" value="redirect"/>
</beans:bean>

看来targetUrlParameter并没有像预期的那样得到重视。我正在使用Spring Security 3.1.4


问题答案:

使用以下规则时,应遵循以下规则SimpleUrlAuthenticationSuccessHandler

  • 如果将alwaysUseDefaultTargetUrl属性设置为true,则将defaultTargetUrl属性用于目标。
  • 如果在请求中设置了与targetUrlParameter值匹配的参数,则该值将用作目标。默认情况下,其值为“ spring-security-
    redirect”。
  • 如果设置了useReferer属性,则将使用“ Referer” HTTP标头值(如果存在)。
  • 作为后备选项,将使用defaultTargetUrl值。

根据您的配置,这应该可行。我的猜测是,在以表单登录名referer发送POSThtml" target="_blank">请求时,您没有传播。通常,您应该将referer值写入登录页面的隐藏字段中,以便将referer参数传输到spring_security_login



 类似资料:
  • 所以我在phpMyadmin(在我的名为wordpress的数据库中)中从mysite.com到localhost:8888/mylocalsite/的wp选项 然后我去了wp配置。php文件,并将我的用户名/密码更改为root,将DB名称更改为wordpress。 在HTDOCS(我的根目录)中,我创建了一个名为wordpress的文件夹,我将所有文件放在其中。 现在,当我尝试在MAMP上运行它

  • 我有一个订单按钮应该是重定向用户到购物车页面与订购的项目 这是网上的路线。php 这是函数addToCart 但是当我点击按钮时,它不会重定向到购物车页面,它会一直加载到我所做的同一个位置 在函数上,它输出正确的结果

  • 我试图将用户重定向回他们单击登录链接的页面。(对于未经身份验证的用户,页面是只读的,但对于登录的用户,页面是可写的。)在用户登录后,如何将其重定向回其来源? 我正在向用户发送带有以下链接的登录页面:。登录后,我希望用户被重定向到页面。但是,他们总是被重定向到页面。 这是我正在使用的配置: 似乎没有像预期的那样提取targetUrlParameter。我正在使用Spring Security 3.1

  • 我一直在跟一门课,但似乎没有奏效(也可能是我太糟糕了,搞错了什么东西)。 我应该在contenidoactivity.java中输入一个名称,然后按下一个按钮(onclick:enviarNombre被选中),并将该名称获取到destinoactivity.java txt,但它只是停留在那里,当我单击该按钮时,它没有改变任何东西。我已经放了一个吐司“has seleccionado enviar

  • 我尝试从登录页面获取密码,然后尝试从mysql收集存储的密码。然后我将其与提交的密码进行比较。现在我想,如果两个密码匹配,然后重定向到一个页面。但问题是每次页面重定向时。如果密码与页面重定向不匹配。 我已经删除了这个功能,并试图以简单的方式做它。但仍然不起作用。编辑代码:

  • 我已经在selenium ide中录制了脚本,它可以很好地使用它。我有一个登录表单,成功登录后应该重定向到仪表板。但当我运行Selenium RC时,它不会在clickAndWait之后重定向到仪表板。Chrome说页面不可用,但当我重新加载页面时,它正在工作。帮助我。 Selenium RC:Selenium-server-standalone-2.34.0 Selenium版本:Seleniu