Spring MVC 特殊登录拦截器

Posted

技术标签:

【中文标题】Spring MVC 特殊登录拦截器【英文标题】:Spring MVC special login interceptor 【发布时间】:2013-05-19 11:08:49 【问题描述】:

我有这个小型 Web 应用程序,为此我使用 Spring MVC 3.0

我实现登录功能的方式是通过普通的处理程序拦截器。即当请求进入 Session 时检查,如果它有一个 User 对象,否则将其发送到登录页面。

我的问题是,Spring 是否有一些特殊的 Handler Interceptor 来实现登录功能。如果不是,那么我做对了,如上所述。或者有没有更好的方法来做到这一点。 谢谢...

【问题讨论】:

使用spring security,你可以设置用户需要认证的url。如果不是,他会被重定向到登录网址。 @SotiriosDelimanolis,我的问题是,我们是否有任何特殊的拦截器可用于验证用户身份验证。如果不是,那么我认为我做对了,正如问题中所解释的那样......或者是否有更好的方法实现登录功能...... 我不知道它是实现为拦截器还是过滤器或其他东西,但这就是它实现的功能是的。阅读 spring 安全文档以获取更多信息。 【参考方案1】:

你做得对。 Spring Security 也以类似的方式执行此操作。但不是将内容保存在Session 对象中,而是将内容保存在另一个数据结构中,因为它们存储了访问权限等其他内容。一旦用户通过数据库进行身份验证,用户就会被缓存在数据结构中,并且所有然后根据此缓存检查其他请求。如果缓存中不存在用户,则将它们扔到登录页面。您实际上在做同样的事情,但使用的是 Tomcat 的内置 Session 对象缓存。

如果您只需要基本的安全性,我建议您不要使用 Spring Security。过度工程是一件坏事。另一方面,如果你觉得项目会扩展成一头庞然大物,那么从现在开始在架构中包含 Spring Security 是非常明智的。

【讨论】:

【参考方案2】:

您可以为此使用弹簧安全性。它是使用过滤器实现的,您可以指定一个登录url,在收到请求并且用户未登录后会自动调用。

【讨论】:

以上是关于Spring MVC 特殊登录拦截器的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot中Spring MVC的整合支持

spring mvc的拦截器的posthandle怎么用

Spring MVC 学习笔记 --- [SpringMVC的文件上传与拦截器,以及更新登录用户头像的简易案例]

Spring mvc 拦截器 怎么会进去两次

MVC 拦截器与 Spring 安全过滤器与其他东西……?

Spring MVC实现拦截器功能