我正在学习 Spring 并尝试实现 Springs Security。我无法理解它是如何工作的。我阅读了我理解以下内容的教程:
- 我们必须配置 web.xml 来委托(delegate)代理和模式
- 我们需要将拦截添加到dispatcher-servlet.xml
当发出请求时,它会触发拦截,但在那之后我无法理解它是如何工作的。如果有人可以提供要遵循的步骤列表,那将很有帮助。我正在使用 Hibernate 和 Spring(都带有注释),我想使用 Hibernate 对用户进行身份验证。
最佳答案
可以在这里找到详细的文章:Code Project
或者 MVC 和 Spring Security 的教程 here .
我试着稍微说明一下这个过程:
- 用户向服务器发送 HTTP 请求
- 服务器根据web.xml处理请求
- web.xml 包含一个过滤器(也称为拦截器)并通过该过滤器传递请求。
- 因为用户未知/未通过身份验证,Spring Security 会尽力获取更多详细信息。
根据配置,它- 发送 HTTP header ,以便在浏览器(客户端)中弹出登录弹出窗口。
- 重定向到一个表单,您可以在其中输入用户名和密码。
- 在服务器和浏览器之间进行大量隐藏交互以保证“单点登录”(SSO)
- 除了 SSO 之外,用户输入她/他/它的凭据并创建一个额外的请求。
- Spring Security 实现登录尝试并根据
- 包含用户和密码的文件
- spring 配置文件中的内置 XML 结构
- 数据库
- LDAP
- 授予访问权限后,它会分配必要的角色...
- ...并重定向到硬编码的“主页”。 (Spring Security 让您调整此行为。)
- 在您的应用程序中,您可以检查某些操作的授权
- .....
- 用户点击“注销”或 session 过期。随着下一个请求,该过程再次开始。
注释
我在这里找到了教程 ( Link )。
我理解/假设以下事实:
我承认我只给了你一个粗略的概述,因为你的问题不是那么具体。
请让我知道您想详细了解的内容(重新识别用户、针对不同资源进行身份验证、执行 SSO、在您的网页上创建安全区域,...)
关于java - Spring 安全示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22484156/