gpt4 book ai didi

java - Spring 安全3.1。带有 url 参数的自定义身份验证失败 url

转载 作者:搜寻专家 更新时间:2023-10-31 19:56:06 26 4
gpt4 key购买 nike

我在谷歌上搜索并尝试了几个小时的许多变体,但没有任何成功。请帮助我找到解决方案。

Spring 版本: Spring 3.1

我有登录页面。登录页面取决于 URL 参数:

/login?code=client1

/login?code=client2

所以client1和client2有不同的登录页面。

安全.xml:

<sec:form-login login-page="/login" default-target-url="/start" authentication-failure-url="/login"/>

因此,如果用户进行了错误的身份验证,我会向他显示/login 页面...但关键是我必须显示带有相应代码参数的登录页面。

我该怎么办?请问你有例子吗?

非常感谢您的提前。

更新 #1:

我创建了 FailureHandler 类:

public class GRSAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler implements AuthenticationFailureHandler {

@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) {

}

}

我应该在里面写什么才能重定向到所需的 URL?请给我更多详细信息。

非常感谢!

最佳答案

您可以使用 SimpleUrlAuthenticationFailureHandler并实现不同的 RedirectStrategy它重定向到配置的 URL 并将原始查询字符串添加到重定向的 URL。

public class QueryStringPropagateRedirectStrategy extends DefaultRedirectStrategy {

public void sendRedirect(HttpServletRequest request,
HttpServletResponse response, String url) throws IOException {
String urlWithOriginalQueryString = url + "?" + request.getQueryString();
super.sendRedirect(request, response, urlWithOriginalQueryString );
}

}


身份验证失败处理程序配置

<bean id="authenticationFailureHandler" class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
<property name="redirectStrategy" ref="queryStringPropagateRedirectStrategy" />
<property name="defaultFailureUrl" value="/login" />
</bean>

<bean id="queryStringPropagateRedirectStrategy" class="...QueryStringPropagateRedirectStrategy" />

关于java - Spring 安全3.1。带有 url 参数的自定义身份验证失败 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17199423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com