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

使用spring security告诉ajax请求登录页面在哪里

苏骏
2023-03-14
问题内容

我有一些用spring保护的网址(通过xml配置)。有用。但是,当我尝试使用ajax请求到达该端点时,得到了302(找到)响应。这会将我的ajax调用重定向到登录页面(因此我获取html)。但是,我想获得一个401(未经授权)响应,其中包含客户端应用程序可用的登录页面的url,因此我可以使用javascript将用户重定向到那里。
这个问题似乎与我想要的最接近,但是没有示例,它建议再次更改控制器。spring-
security中是否没有配置可以提供401和url(或其他一些明智的错误消息和登录页面的url)?


问题答案:

您可以扩展LoginUrlAuthenticationEntryPoint。这是我的:

package hu.progos.springutils;
// imports omitted
public class AjaxAwareLoginUrlAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {
    public void commence(final HttpServletRequest request, final HttpServletResponse response, final AuthenticationException authException) throws IOException, ServletException {
        if ("XMLHttpRequest".equals(request.getHeader("X-Requested-With"))) {
            response.sendError(HttpServletResponse.SC_FORBIDDEN, "Access Denied");
        } else {
            super.commence(request, response, authException);
        }
    }
}

然后配置spring以使用您的实现:

<beans:bean id="authEntryPoint" class="hu.progos.springutils.AjaxAwareLoginUrlAuthenticationEntryPoint" scope="singleton>
    <beans:property name="loginFormUrl" value="/login.html" />
</beans:bean>

<http entry-point-ref="authEntryPoint">
  <!-- your settings here -->
</http>


 类似资料:
  • 我想用selenium登录这个网页。我尝试了selenium的find_element_by_,并使用浏览器中的检查元素。但是我无法登录。我在搜索id、名称、类名,这样我就可以用send_keys传递数据,但是没有做到这些。有人能帮助我提供一些代码来将数据推送到所需的字段吗?谢谢。这就是我到目前为止所做的。 在此之后,我试图点击按钮登录使用 但它失败了。它给出了无法找到“登录”的错误。由于默认情况

  • 我目前正在研究房地产数据,想从StreetEasy中提取一些数据,这是一个低于挂牌价格。 示例url http://streeteasy.com/sale/1220187 我需要的数据需要登录,但登录机制是非常不同的。没有登录页面,登录是弹出式的。有没有我可以使用Python来获得身份验证并在登录后访问页面,就像下面的图片一样?

  • 问题内容: 我正在尝试找到一种无需使用Python即可通过浏览器自动登录Facebook的方法。我尝试了“请求”库。尝试了几种方法: … … 最后一种方法填充页面上的“电子邮件”框,但“通过”框保持为空… 有人可以帮我吗?是否可以使用请求模拟FB登录? 谢谢! 问题答案: 您需要发送完整的表格。找出Facebook期望的最简单方法是使用类似Google Chrome的开发人员工具的工具 来监视您的

  • 使用指南 - 数据报告 - 访问分析 - 页面点击图告诉我哪些信息 热图(heat map)也称热力图,是以特殊高亮的形式显示用户页面点击位置或用户所在页面位置的图示。借助热图,可以直观地观察到用户的总体访问情况和点击偏好。 百度统计目前提供的页面点击热力图,是基于鼠标点击位置的热力图。能够助您了解访客在网站上的关注点,并根据点击热度进行优化网页设计。 注意:页面点击图和热力图均不能支持监控Fra

  • 我试图使用python请求登录到我的大学的CAS。我在网上看过一些教程和帖子,但是它们都适用于在同一个页面上有用户名和密码字段的CAS。这是我想登录的网站:https://cas.tamu.edu/cas/login?service=https://howdy.tamu.edu/uPortal/Login 如您所见,只有一个用户名字段,然后单击提交后,您将被带到同一个页面,只有该字段现在是密码。这

  • 问题内容: 好的,我有一个仅包含的简单表格。当我们点击submit(通过ajax存储)时,在文本字段中写入的数据将存储在DB中。Ajax可以正常工作并提交数据,但是,页面会自动刷新,并且URL包含输入字段的内容。 我的表格: 阿贾克斯:- PHP的:- 结果显示在后,页面将刷新,URL变为: -chat.php?message = 454545&submit_message = 为什么要刷新页面?