Spring Security 入门(1-1)Spring Security是什么?

时间:2022-08-29 16:17:03

1Spring Security是什么?

Spring Security 是一个安全框架,前身是 Acegi Security , 能够为 Spring企业应用系统提供声明式的安全访问控制。

Spring Security 基于 Servlet 过滤器、 IoC和AOP , 为 Web 请求和方法调用提供身份确认和授权处理,避免了代码耦合,减少了大量重复代码工作。

Spring Security 提供了若干个可扩展的、可声明式使用的过滤器处理拦截的web请求。

在web请求处理时, Spring Security框架根据请求url和声明式配置,筛选出合适的一组过滤器集合拦截处理当前的web请求。

这些请求会被转给Spring Security的安全访问控制框架处理通过之后,请求再转发应用程序处理,从而增强了应用的安全性。

Spring Security 提供了可扩展的认证、鉴权机制对Web请求进行相应对处理。
  • 认证:识别并构建用户对象,如:根据请求中的username,获取登录用户的详细信息,判断用户状态,缓存用户对象到请求上下文等。
  • 决策:判断用户能否访问当前请求,如:识别请求url,根据用户、权限和资源(url)的对应关系,判断用户能否访问当前请求url。

2、Spring Security的快速入门捷径

2.1、部署“Tutorial”样例程序,输出调试日志,跟踪处理过程
这个样例包含在spring发布的zip压缩包文件,名为:spring-security-samples-tutorial-<version>.war。
把这个文件重命名为tutorial.war(以便于部署到tomcat时简化访问的URL链接),放到tomcat下的webapp目录下,然后启动tomcat服务。
之后就可以用链接访问这个应用程序了。
这个样例程序没有做太多的事,不过的确提供了一个很好的模板能很好的把spring安全集成到项目中。
绝大多数初学者在这个过程中常遇到的问题出现在简单的配置错误或者路径错误(或者WEB-inf/lib目录下缺失jar包)。
必须在一个可以运行的配置环境的基础上开始构建项目。

当运行程序的时候, 确保自己熟悉Spring Security调试日志输出(日志输出默认为打开状态)。

虽然框架输出详细的日志,但是很多人却使用得很失败。

作为一个未授权的用户点击了一个安全的链接,当登录,退出等等情况下的时候到底发生了什么?

当进入到安全过滤器链开始处理的时候,将会看到每一个http请求及如何处理的日志,

所以许多在论坛中报道的问题可以按网页浏览器请求的相应日志记录来匹配查找得以解决 。

 

2.2、部署通讯录(Contacts)样例尝试更多spring安全框架高级属性

这个样例将尝试更多spring安全框架高级属性,尤其是ACL模块。
文件spring-security-samples-contacts-<version>.war是标准的web MVC应用程序,
它可以让以特殊的用户(列举在登录页面的用户)登录并且查看数据库中的”通讯录”,每个登录用户都有若干权限列表,
如何登录用户有必需的权限的就可以查看若干的通讯录列表。
有某个通讯录管理权限的用户就可以删除这个通讯录,创建或者删除其中实例的权限,因此可以分配(重分配)其它用户读,写,管理通讯录中实例的权限。
Spring安全应用在方法级通过在接口ContactManager使用注释(annotations)配置来引入的。 
 
2.3、使用指南样例(Tutorial Sample)来完成实际的集成工作
到这个步骤应该对spring Security有了很好的领会,剩下的工作应该是如果设计应用程序来实现安全了。
推荐使用指南样例(Tutorial Sample)来完成实际的集成工作,即使有复杂的需求。
大多数在论坛中报告问题的都是出自配置的问题,因为他们在一开始在并不知道将要如果进行的时候做了太多的改变.

Spring Security 入门(1-1)Spring Security是什么?的更多相关文章

  1. spring boot 入门一 构建spring boot 工程

    最近在学习Spring boot,所以想通过博客的形式和大家分享学习的过程,同时也为了更好的学习技术,下面直接进入Spring boot的世界. 简介 spring boot 它的设计目的就是为例简化 ...

  2. spring Boot 入门--为什么用spring boot

    为什么用spring boot 回答这个问题不得不说下spring 假设你受命用Spring开发一个简单的Hello World Web应用程序.你该做什么? 我能想到一些 基本的需要.  一个项目 ...

  3. Spring Boot入门篇&lpar;基于Spring Boot 2&period;0系列&rpar;

    1:概述: Spring Boot是用来简化Spring应用的初始化开发过程. 2:特性: 创建独立的应用(jar|war形式); 需要用到spring-boot-maven-plugin插件 直接嵌 ...

  4. Spring框架学习(7)spring mvc入门

    内容源自:spring mvc入门 一.spring mvc和spring的关系 spring mvc是spring框架提供的七层体系架构中的一个层,是spring框架的一部分,是spring用于处理 ...

  5. Spring Security 入门

    一.Spring Security简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配 ...

  6. SpringBoot集成Spring Security入门体验

    一.前言 Spring Security 和 Apache Shiro 都是安全框架,为Java应用程序提供身份认证和授权. 二者区别 Spring Security:重量级安全框架 Apache S ...

  7. Spring Security 入门 &lpar;二&rpar;

    我们在篇(一)中已经谈到了默认的登录页面以及默认的登录账号和密码. 在这一篇中我们将自己定义登录页面及账号密码. 我们先从简单的开始吧:设置自定义的账号和密码(并非从数据库读取),虽然意义不大. 上一 ...

  8. Spring Security 入门(一)

    当你看到这篇文章时,我猜你肯定是碰到令人苦恼的问题了,我希望本文能让你有所收获. 本人几个月前还是 Spring 小白,几个月走来,看了 Spring,Spring boot,到这次的 Spring ...

  9. 030 SSM综合练习06--数据后台管理系统--SSM权限操作及Spring Security入门

    1.权限操作涉及的三张表 (1)用户表信息描述users sql语句: CREATE TABLE users ( id ) DEFAULT SYS_GUID () PRIMARY KEY, email ...

随机推荐

  1. 关于css

    已经学了四天的css.现在对于css的了解还很肤浅,首先,我对基础的还不是很了解. 级联样式表(Cascading Style Sheet)简称“CSS”,通常又称为“风格样式表(Style Shee ...

  2. SQL 使用小记

    1. case语句 示例 select id, name, case user_role then "管理员" then "未注册用户" then " ...

  3. 必须会的SQL语句(六)查询

    1.基础的查询     1)重命名列     select name as '姓名' from 表名       2)定义常量列     select 是否 ='是' from 表名       3) ...

  4. JAVA逆向&amp&semi;反混淆-追查Burpsuite的破解原理(转)

    0x00 摘要: 本系列文章通过对BurpLoader的几个版本的逆向分析,分析Burpsuite的破解原理,分析Burpsuite认证体系存在的安全漏洞. 0x01 JD-GUI的用途与缺陷: JD ...

  5. JavaScript函数之作用域 &sol; 作用链域 &sol; 预解析

    关于作用域和作用链域的问题,很多文章讲的都很详细,本文属于摘录自己觉得对自己有价值的部分,留由后用,仅供参考,需要查看详细信息请点击我给出的原文链接查看原文件 做一个有爱的搬运工~~ -------- ...

  6. static修饰符详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  7. &lbrack;NOI 2017&rsqb;蔬菜

    Description 题库链接 小 N 是蔬菜仓库的管理员,负责设计蔬菜的销售方案. 在蔬菜仓库中,共存放有 \(n\) 种蔬菜,小 N 需要根据不同蔬菜的特性,综合考虑各方面因素,设计合理的销售方 ...

  8. iOS7 UIWebview加载进度条实现

    不同于WKWebview,wk是有自己的加载进度值的,我们可以直接通过kvo检测到,并显示到进度条内. 但如果我们为了适配ios7,只能使用UIWebview了,这里的加载进度,就比较尴尬了 所以我们 ...

  9. 面向对象的JavaScript --- 原型模式和基于原型继承的JavaScript对象系统

    面向对象的JavaScript --- 原型模式和基于原型继承的JavaScript对象系统 原型模式和基于原型继承的JavaScript对象系统 在 Brendan Eich 为 JavaScrip ...

  10. 1&period;JSON 转换对象失败问题 2&period;spring注入失效

    今天做项目中将一个json 字符串转换为对象,但结果怎么都转换不了!——————最后发现问题,原来是因为这个类我给他添加了带参数的构造器!导致转换失败! 在添加一个无参的构造器就好了! 第二个:今天调 ...