Spring Security的简单介绍
什么是Spring Security
Spring Security 是一个安全框架,前身是 Acegi Security,能够为 Spring 企业应用系统提供声明式的安全访问控制。Spring Security 基于 Servlet 过滤器、IoC 和 AOP,为 Web 请求和方法调用提身份认证(Authencation)和 用户授权(Authorization),避免了代码耦合,减少了大量重复代码工作。
什么是身份认证(Authencation)
身份认证指的是用户访问系统资源时,系统要求验证用户的身份信息,用户的身份合法才可以访问对应的资源。常见的身份认证一般要求用户提供用户名和密码,系统通过校验用户名和密码来完成认证过程。
什么是用户授权(Authorization)
当身份认证通过后,去访问系统的资源,系统会判断已经认证的用户是否拥有访问该资源的权限,只有拥有对应的权限,才能访问对应的资源,没有权限的资源则无法访问,这个过程叫做用户授权
举个现实中的例子:我们现在远行都需要乘坐交通工具,而现在坐车都是实名制,我们坐车前都需要两样东西:
身份证
和车票
。身份证是为了证明你确实是你,这就是 身份认证(Authencation),而车票是为了证明你确实买了票,可以坐车,这就是 用户授权(Authorization)。这里可以看出,如果只有认证没有授权,认证就没有意义,如果没有认证,授权就无法赋予真正的用户。两个是同时存在的
RBAC模型
RBAC(基于角色的权限控制)模型是为了解决系统中的权限管理问题,在用户和权限的基础上引入了角色这个概念,这样通过对角色的管理极大地降低了用户和权限之间的耦合,当你拥有某个角色以后,你自然就拥有了该角色所有的权限。如下图:
关于RBAC模型的详细介绍请点击这里:RBAC模型:基于用户-角色-权限控制的一些思考