Spring安全示例

时间:2014-03-18 15:41:21

标签: java spring hibernate spring-mvc spring-security

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

  1. 我们必须配置web.xml以委派代理和模式
  2. 我们需要向dispatcher-servlet.xml
  3. 添加拦截

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

4 个答案:

答案 0 :(得分:11)

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

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

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

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

    我理解/假设以下事实:

    • 仍必须在web.xml中定义过滤器。
    • 您可以使用注释来添加类/方法
      • @Controller(API
      • @Secured(API
      • @RequestMapping(API

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

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

答案 1 :(得分:0)

Spring使用调度程序servlet来委派请求。 Spring安全性过滤请求并检查是否建立了有效的安全上下文。如果是,则将请求传递给调度程序,并将请求传递给相应的控制器。如果没有建立安全上下文,Spring安全性会拦截请求,这意味着他可以在diepatcher servlet处理之前操作请求。在此拦截期间,将分配请求调度程序(Servlet规范)以将请求转发到登录页面。

答案 2 :(得分:0)

我认为你不再需要打扰xml了。现在您可以使用基于Spring Boot +注释的配置。我找到的最好的教程之一就是这个:A good spring security tutorial

答案 3 :(得分:0)