我们今天新开一篇课题,分析一下java程序中的权限安全问题,Spring Security是什么,如何在程序中集成Spring Security。
背景
阅读本文你应该熟悉基本的Core Java,J2EE和Spring MVC的知识。
什么是Spring Security?
这是一个基于Java的安全解决方案。它主要适用于基于Spring框架构建的基于Java的Web应用程序。它为基于J2EE的企业软件应用程序提供全面的安全服务。它功能强大,灵活性更高。您可以非常轻松地将spring安全服务插入到您的应用程序中。
认证和授权是Spring Security中包含的两个主要操作。
1.身份验证是要求用户提供有效凭据来验明正身。
2.授权意味着验证登录用户对此应用程序具有哪些(或)特权。
Spring Security集成在您的应用程序中
在进入本文之前,我们先简要介绍一下Web应用程序的工作原理。
在Web应用程序中,执行过程通常如下。
- 客户端在浏览器中输入URL请求Web页面。
- 然后请求到达一个Servlet容器(例如Tomcat)
- Servlet容器根据web.xml配置,查找到对应的处理程序servlet。
- 然后,将请求发送到对应的Servlet
- Servlet处理完请求将响应发回到Servlet容器
- 最后,Servlet 容器将该响应发送到网络,最终被客户端Web浏览器接收到。
在这个过程中,J2EE中引入了Interceptor的概念。让您可以拦截或过滤Servlet容器和Servlet之间的请求,这样在请求到达Servlet之前,您可以执行一些预处理和后处理作业。
例如,您可以执行一些安全性操作,日志记录,甚至可以根据请求的类型或请求所来自的客户端类型将请求重定向到另一个URI。
有了以上的理论,下面我们就来看看一个案例:如何在您的解决方案中集成Spring Security以构建用户登录门户。
还是Web应用程序为例,用户只要在Web浏览器中输入并执行Web应用程序的URL,就会首先打开一个Login页面。用户必须输入他/她的登录凭据并提交它们进行身份验证。如果身份验证成功,则用户将被带到应用程序主页。如果身份验证失败,则用户将被带回登录页面。
注意:这里我将重点介绍通过Spring Security配置中定义的硬编码用户名进行身份验证。然后我将向您展示如何使用Spring Security通过数据库开发身份验证。
现在让我们看看如何使用Spring Security实现此应用程序逻辑。
Spring安全设置:
首先,您需