`
youyu4
  • 浏览: 442784 次
社区版块
存档分类
最新评论

Spring Security 之初体验

 
阅读更多

Spring Security 之初体验

 

Spring Security最大的作用

 

      1. 认证:通过前端传过来的userName、password,验证是否成功

      2. 授权:对login后的用户进行授权,再在对应的controller方法上加上访问权限

 

 

 

工作原理

 

       login成功后会返回一个叫SESSIONID的cookie给前端,前端每次请求的时候,都将这个cookie传给后端进行验证,看其有效性(session是否超时,服务器是否重启)。有效并且有权限就可以访问相应url,如果不行就报错。

 

 

 

优点

 

      1. 提供了一套权限框架,这套框架是可行的;

      2. 提供了很多用户身份认证功能,可以节约大量开发工作;

      3. 提供了角色判断功能,这点既是优点又是缺点;

      4. 提供了form-login、remember me等控制。

 

 

 

缺点

 

      1. 角色被“编码”到配置文件和源文件,这样最终用户就不能创建角色了。但最终用户期望自己来控制角色。因为在项目实施过程中,客户可能并不能确定有哪些角色,以及角色怎么分配给系统用户。角色大多需要等到系统上线后,才能确定。这些编码有:

          

          (1)url的权限控制,<intercept-url pattern="/**" access="ROLE_USER" />;

          (2)java方法的权限控制,@Secured("IS_AUTHENTICATED_ANONYMOUSLY");

          (3)java方法的权限控制,<protect method="set*" access="ROLE_ADMIN" />;

      

      2. RBCA这种被广泛运用的模型,没有在Spring Security体现出来;

 

      3. Spring Security没有提供好的细粒度(数据级)权限方案,提供的缺省实现维护工作量大,在大数据量情况下,几乎不可用;

      

      4. Spring Security对于用户、角色、权限之间的关系,没有提供任何一种维护界面。不过从Spring Security角度看,确实没有必要有界面。角色创建、角色和权限直接的关系,都被“编码”到配置文件和源文件了;

 

      5. Spring Security学习难度大,配置文件还是很多。我承认有很多高手,但我们也看到有很多新人加入软件开发领域。付出如此大的学习代价,获得这么一点点好处,个人觉得并不值得。

 

 

 

以后学习参考:

http://blog.csdn.net/column/details/springsecurity.html

http://www.iteye.com/blogs/subjects/spring_security

分享到:
评论

相关推荐

    spring-security初体验demo

    这个"spring-security初体验demo"很可能是为了帮助初学者理解如何在实际项目中集成和配置Spring Security。下面,我们将深入探讨Spring Security的核心概念、工作原理以及如何通过实践来设置一个简单的示例。 ...

    SpringSecurity初体验之手动配置用户名密码

    此文章是记录博主在学习springsecurity时的笔记 第一步 创建一个SpringBoot工程,勾选上需要的依赖。 第二步 创建一个名为securityconfig的配置类,该类基础了父类WebSecurityConfigurerAdapter(提供用于创建...

    从入门到高级实战-深度探索SpringSecurity安全框架视频.zip

    02.Spring Security 初体验 03.基于内存定义 Spring Security 用户 04.Spring Security 自定义表单登录 05.Spring Security 登录表单配置细节 06.Spring Security 表单登录源码 07.Spring Security 中的 JSON 交互 ...

    详解SpringBoot+SpringSecurity+jwt整合及初体验

    SpringBoot+SpringSecurity+jwt整合详解 SpringBoot是当前最流行的Java框架之一,它提供了便捷的方式来构建基于Web的应用程序。然而,在构建Web应用程序时,安全性是不可忽视的重要方面。因此,本文将详细介绍如何...

    springsecuritytotp:使用Google Authenticator登录Spring Security(基于时间的一次性密码算法,TOTP)

    在本文中,我们将深入探讨如何使用Google Authenticator与Spring Security集成,实现基于时间的一次性密码算法(TOTP)的双因素身份验证。这是一项重要的安全措施,它为应用程序提供了额外的安全层,防止未经授权的...

    Acegi(四):Acegi初体验及初解剖

    在初体验部分,博主可能会介绍如何设置Acegi以保护一个简单的Spring应用,包括配置Spring XML文件、定义安全拦截器(filter)以及创建用户凭证。 身份验证过程通常涉及用户登录,Acegi支持多种认证方式,如基于表单...

    univers-2.0:EE JavaEE,Vaadin框架,Spring,Spring Security,Spring Boot,Maven,JPA,JBoss-WildFly

    Spring Security是Spring框架的一个子项目,专注于安全控制,如身份验证、授权等,为Web应用提供了强大的安全保障。 Spring Boot是Spring框架的扩展,旨在简化Spring应用的初始设置和常规配置。它通过“起步依赖”...

    spring开发指南

    《Spring开发指南》是一本专为Java开发者设计的详尽教程,无论你是初涉Spring框架的新手,还是希望深入理解并提升Spring应用的老手,它都能提供宝贵的指导。Spring是Java领域中最流行的轻量级开源框架之一,以其模块...

    xfire 初体验

    《Xfire初体验:探索Java Web服务框架》 在IT领域,Web服务是软件系统间交互的重要手段,而Xfire则是早期流行的一款基于Java的Web服务框架。它为开发者提供了构建和消费Web服务的便捷工具,尤其在XML-RPC和SOAP协议...

    基于Spring Boot的个人博客系统设计与实现

    Spring Security可以用来实现用户认证和授权,确保博客系统的安全性。对于文章的分类与标签,可以使用树形结构或标签云来展示,提供灵活的文章组织方式。评论系统可以通过Ajax异步技术实现实时更新,提高用户体验。...

    128元尚硅谷Java视频教程_Spring Boot视频教程(下)整合篇

    4、尚硅谷-SpringBoot高级-缓存-@Cacheable初体验 5、尚硅谷-SpringBoot高级-缓存-缓存工作原理&@Cacheable运行流程 6、尚硅谷-SpringBoot高级-缓存-@Cacheable其他属性 7、尚硅谷-SpringBoot高级-缓存-@CachePut 8...

    基于Vue+ElementUI+Springboot前后端分离网约车预约系统设计

    Spring Boot与Spring Security集成,可以轻松地实现权限管理,确保系统安全。对于网约车预约系统,这尤为重要,因为需要区分乘客、司机和管理员的权限,例如,乘客只能预约车辆,司机可以接受或拒绝订单,而管理员则...

    基于ssm+jsp的家居商城系统源码数据库.zip

    首先,系统设计之初,开发者通过Spring框架的IoC(Inversion of Control)和DI(Dependency Injection)特性,实现了松耦合的组件化设计,使得代码更易于维护和扩展。Spring的AOP(Aspect-Oriented Programming)...

    springboot企业客户信息反馈平台设计与实现.docx

    在设计之初,首先需要明确平台的主要功能需求: 1. **用户注册与登录**:支持用户注册账号,并通过验证后登录系统。 2. **信息反馈提交**:允许用户提交关于产品或服务的问题、建议或投诉。 3. **反馈分类管理**:对...

    基于ssm的选课管理系统-毕业设计

    系统需要实现用户登录和权限管理,如使用Spring Security进行身份验证和授权。用户角色可能包括学生、教师和管理员,不同的角色对应不同的操作权限。 七、事务管理 在选课过程中,涉及多条数据库操作,如添加选课...

    Java项目之springboot应急救援物资管理系统(源码)

    首先,系统设计之初应考虑的关键点是数据存储。在应急救援物资管理系统中,数据库的选择通常为关系型数据库,如MySQL,用于存储物资信息、救援机构信息、需求与供给记录等。SpringBoot集成MyBatis或JPA等持久层框架...

    springboot015基于SpringBoot的在线视频教育平台的设计与实现.zip

    在设计之初,我们需要确定平台的整体架构。SpringBoot可以作为一个微服务的基础,每个功能模块(如用户管理、课程管理、视频播放等)都可以作为一个独立的服务运行。这有利于系统的模块化和解耦,提高代码的可维护...

    基于Java SSM MySQL实现小型超市管理系统【优质毕业设计、课程设计项目】.zip

    5. **数据库设计**:在系统设计之初,通常需要进行数据库建模,包括实体关系模型(ER模型),并根据需求创建相应的表结构。例如,可能有商品表、用户表、订单表、库存表等,需要合理设计字段,考虑数据完整性约束。 ...

    springboot宠物医院管理系统

    系统设计之初,我们需要考虑以下几个主要模块: 1. **用户管理**:这是系统的基础,包含用户注册、登录、权限管理等功能。SpringBoot结合Spring Security或Apache Shiro等安全框架,可以轻松实现用户身份验证和授权...

    基于ssm+vue的招聘系统.zip

    首先,系统设计之初,需要明确业务需求,招聘系统通常包含职位发布、简历投递、候选人筛选、面试安排等核心模块。在SSM框架下,这些模块可以通过服务层(Service)、控制层(Controller)和模型层(Model)进行逻辑...

Global site tag (gtag.js) - Google Analytics