基于SpringBoot开发一套完整的项目(六)准备工作

集成Spring Security

    说到程序的权限管理时,人们往往想到“角色”这一概念。例如, 一个用户以关联了“管理员”角色的账号登录系统,那这个用户就可以做管理员能做的所有事情。这种权限控制方法就称为基于角色的访问控制

        权限概念

        权限是对资源的一种保护访问.用户要访问A资源前提是用户必须有A资源的访问权限.

        角色概念
        我们不会直接把权限赋予给用户,而是通过角色来赋予给用户,因为用户拥有某一种权限是因为用户扮演着某一种角色。
        小王 是 个经理,他管理着B公司,他拥有1.2.3的权限。实际不是小王有这个权限,而是因为小王是经理。因为经理拥有1.2.3         权限,所以在权限划分上,我们会把权限赋予给某一个角色,而不是赋予给个人。这样带来的好处是如果公司换了经理,那         么只要再聘用一个人来做经理就可以了,而不会出现因为权 限在个人手里导致权限被带走的情况,

        分组概念

        只有角色是不够的,B公司发现小王有财务问题成立了一个财务调查小组,然后我们赋予了这个小组财务调查员的角色(注意         是赋予小组这个角色). 这样这个小组所有人员都有财务调查的资格。而不需要给小组的每个人都赋予这个角色,分组概念          也适合部门,因为任何一个部门在公司里或者社会上都在扮演着一个泛的角色。

        判断用户有没有访问资源的权限就看这个用户有没有访问这个资源的权限,也就是说分组,分部门,分角色最终是以权限来实          现对资源的访问控制


                                            在Java 平台,有很多现成的现代权限管理框架可供选择,

                                                        Apache Shiro 和SpringSecurity 

                                一个是以简洁好用而被业界广泛应用,而另一个则以功能强大而著称。

Spring Security 概述

        在应用程序安全性的两个主要领域是  : 认证与授权。

        ( 1 )认证:认证是建立主体的过程。主体通常是指可以在应用程序中执行操作
                的用户、设备或其他系统。
        ( 2 )授权:或称为访问控制,授权是指决定是否允许主体在应用程序中执

                行操作。

        在认证级别, Spring Security 支持各种各样的认证模型,也包括自己的一组认证功能:

               有三个主要领域。
                        对Web 请求进行授权。
                        授权某个方法是否可以被调用。

                        授权访问单个领域对象实例。


针对Web 方面的开发, Spring Security 提供了如下高级功能:

          1. Remember-Me认证:指网站能够记住身份之间的会话,通常是通过发送cookie 到浏览

                                                 器, cookie 在未来会话中被检测到,并导致自动登录发生。

            2. 使用HTTPS :可以使用< intercept-url >上的requires-channel 属性直接支持这些URL 采用HTTPS                                        协议。

            3. 会话管理: 提供了诸如检测超时、控制并发会话、防御会话固定攻击等方面的内容。


Spring Security 与Spring Boot 集成

          另外 Thymeleaf 提供了Thymeleaf 与Spring Security 集成模块需要手动添加这个依赖。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
   <groupId>org.thymeleaf.extras</groupId>
   <artifactId>thymeleaf-extras-springsecurity4</artifactId>
</dependency>


 后台代码

        创建config包,然后创建创建SecurityConfig配置安全配置类

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter{
    /**
     * 自定义配置
     */
    protected void configure(HttpSecurity httpSecurity) throws Exception{
        httpSecurity.authorizeRequests()
                .antMatchers("/css/**","/js/**","/fonts/**","/index")
                .permitAll()//都可以访问
                .antMatchers("user/**").hasRole("ADMIN")//需要管理员权限
                
  • 2
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
当前课程中博客项目的实战源码是我在 GitHub上开源项目 My-Blog,目前已有 3000 多个 star:本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 个人博客项目功能的讲解,通过本课程的学习,不仅仅让你掌握基本的 Spring Boot 开发能力以及 Spring Boot 项目的大部分开发使用场景,同时帮你提前甄别和处理掉将要遇到的技术难点,认真学完这个课程后,你将会对 Spring Boot 有更加深入而全面的了解,同时你也会得到一个大家都在使用的博客系统源码,你可以根据自己的需求和想法进行改造,也可以直接使用它来作为自己的个人网站,这个课程一定会给你带来巨大的收获。作者寄语本课程录制于 2020 年,代码基于 Spring Boot 2.x 版本。到目前为止,Spring Boot 技术栈也有一些版本升级,比如 Spring Boot 2.7 发版、Spring Boot 3.x 版本发布正式版本。对于这些情况,笔者会在本课程实战项目的开源仓库中创建不同的代码分支,保持实战项目的源码更新,保证读者朋友们不会学习过气的知识点。课程特色 课程内容紧贴 Spring Boot 技术栈,涵盖大部分 Spring Boot 使用场景。开发教程详细完整、文档资源齐全、实验过程循序渐进简单明了。实践项目页面美观且实用,交互效果完美。包含从零搭建项目、以及完整的后台管理系统和博客展示系统两个系统的功能开发流程。技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,对于提升你的市场竞争力有一定的帮助。实战项目预览    

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值