java - Spring 安全示例

标签 java spring hibernate spring-mvc spring-security

我正在学习 Spring 并尝试实现 Springs Security。我无法理解它是如何工作的。我阅读了我理解以下内容的教程:

  1. 我们必须配置 web.xml 来委托(delegate)代理和模式
  2. 我们需要将拦截添加到dispatcher-servlet.xml

当发出请求时,它会触发拦截,但在那之后我无法理解它是如何工作的。如果有人可以提供要遵循的步骤列表,那将很有帮助。我正在使用 Hibernate 和 Spring(都带有注释),我想使用 Hibernate 对用户进行身份验证。

最佳答案

可以在这里找到详细的文章:Code Project
或者 MVC 和 Spring Security 的教程 here .

我试着稍微说明一下这个过程: enter image description here

  1. 用户向服务器发送 HTTP 请求
  2. 服务器根据web.xml处理请求
  3. web.xml 包含一个过滤器(也称为拦截器)并通过该过滤器传递请求。
  4. 因为用户未知/未通过身份验证,Spring Security 会尽力获取更多详细信息。
    根据配置,它
    • 发送 HTTP header ,以便在浏览器(客户端)中弹出登录弹出窗口。
    • 重定向到一个表单,您可以在其中输入用户名和密码。
    • 在服务器和浏览器之间进行大量隐藏交互以保证“单点登录”(SSO)
  5. 除了 SSO 之外,用户输入她/他/它的凭据并创建一个额外的请求。
  6. Spring Security 实现登录尝试并根据
    • 包含用户和密码的文件
    • spring 配置文件中的内置 XML 结构
    • 数据库
    • LDAP
  7. 授予访问权限后,它会分配必要的角色...
  8. ...并重定向到硬编码的“主页”。 (Spring Security 让您调整此行为。)
  9. 在您的应用程序中,您可以检查某些操作的授权
  10. .....
  11. 用户点击“注销”或 session 过期。随着下一个请求,该过程再次开始。

注释

我在这里找到了教程 ( Link )。

我理解/假设以下事实:

  • 过滤器仍然必须在 web.xml 中定义。
  • 你可以用注释你的类/方法
    • @Controller ( API )
    • @Secured ( API )
    • @RequestMapping ( API )

我承认我只给了你一个粗略的概述,因为你的问题不是那么具体。

请让我知道您想详细了解的内容(重新识别用户、针对不同资源进行身份验证、执行 SSO、在您的网页上创建安全区域,...)

关于java - Spring 安全示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484156/

相关文章:

java - 为什么 Java 类型 `UNIXProcess` 在我的系统上不可见?

java - 调用@Cacheable注解的方法(org.springframework.cache.annotation.Cacheable)

spring - 使用 Spring Security 3.2.0.RELEASE,如何在没有标签库的纯 HTML 页面中获取 CSRF token

java - 具有动态构造函数值的spring bean

java - Hibernate 抛出 - 无法删除或更新父行 : a foreign key constraint fails

java - 使用 hibernate 将所有记录从主表复制到克隆表

java - onActivityResult 未从修复的警报对话框中触发

java - 用于 eclipse 的 sysdeo tomcat 插件是否为 helios 增加了值(value)?

java - 带条件获取数组列表的最后一个索引

java - Hibernate/JPA @PoSTLoad 注释是否标记对象 "dirty"?