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入门篇(基于Spring Boot 2.0系列)

    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 入门 (二)

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

  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. mysql 各类操作命令

    1.mysql 命令登陆 形式: mysql -u用户名 -p密码 mysql -uroot -proot 2.mysql 显示数据库 形式: show databases; 3.mysql 进入某一 ...

  2. Problem : 1013 ( Digital Roots )

    tips:分析不够仔细,白费了许多功夫.输入数据的范围,平时几乎很少考虑的,这个以后得注意.代码检查不够仔细啊,以后得注意了 #include<iostream> using namesp ...

  3. UWP 创建动画的极简方式 — LottieUWP

    提到 UWP 中创建动画,第一个想到的大多都是 StoryBoard.因为 UWP 和 WPF 的界面都是基于 XAML 语言的,所以实现 StoryBoard 会非常方便. 来看一个简单的 Stor ...

  4. VS 2017 开发安卓环境搭建 问题总结

    VS 2017可以开发安卓啦,之前一直想尝试开发安卓,但是由于时间忙, Java只学了个基础,不如C#熟练所以一直没有机会接触安卓开发.既然需要利用VS2017开发安卓,那么第一步就是了解VS2017 ...

  5. Python3基础教程2——Python的标准数据类型

    2018年3月12日 这次介绍一些python里面的标准数据类型 当然还是推荐一个比较系统的教程 http://www.runoob.com/python3/python3-tutorial.html ...

  6. openstack中的环境准备

    openstack中环境准备基于Ubuntu系统 author:headsen chen   2017-10-13  11:51:50 个人原创,转载请注明作者,出处. 6 apt-get insta ...

  7. 二分partition算法应用

    一个二分partition算法,将整个数组分解为小于某个数和大于某个数的两个部分,然后递归进行排序算法. 法一: int partition(vector<int>&arr, in ...

  8. 【Zabbix】 Zabbix表结构说明【转载】

    本文转自[https://www.cnblogs.com/shhnwangjian/p/5484352.html] 参考文[https://www.cnblogs.com/learningJAVA/p ...

  9. C#触发器知识总结及案例

    触发器 触发器是在对表进行插入.更新.删除操作时自动执行的存储过程,常用于强制业务规则,是一种高级约束,可以定义比用check约束更为复杂的约束.可以执行复杂的SQL语句(if/while/case) ...

  10. 201621123050 《Java程序设计》第3周学习总结

    1. 本周学习总结 初学面向对象,会学习到很多碎片化的概念与知识.尝试学会使用思维导图将这些碎片化的概念.知识点组织起来.请使用工具画出本周学习到的知识点及知识点之间的联系.步骤如下: 1.1 写出你 ...