0


SpringBoot——SpringSecurity框架(课时二十一)

思考一个问题:人为什么要去努力 要去奋斗 要去生活?

  • 你想要拥有的人生,从来不是躺着不动就能不请自来的。是要靠你的汗水,你的勤奋,乃至你的坚持去争取来的。没有人可以什么都不做,就可以不劳而获,但只要你有一分的耕耘,就一定能看见一分的收获。

  • 许多人常常为了,眼前的,短暂的,虚幻的快乐,选择去逃避自己身上该担负的责任和压力。其实,真正的快乐,常常是在你的勤奋和不放弃中,当你一点一滴地去提升自己时,会获得一种战胜自己的勇气和自信。

  • 在这个世上,时间是最公平的。因为每个人都有二十四小时,每个人也拥有相同的一天,但因为不同的选择和分配,最终造就了不同的结局。努力的人生,看似苦一点,累一点,难一点,但最终它会给你带来越来越多的惊喜和好运。

  • 我的个人答案:人生选择权在自己的手中,在对待的每一件小事上要静下心来思考 在做出决定:

本博文讲述:在SpringSecurity框架中,SpringBoot是如何对资源整合的:

SpringSecurity(安全):一个安全的框架,其实通过过滤器和拦截器也可以实现

首先我们看下它的官网介绍:Spring Security官网地址

  1. Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.

  2. Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements

  3. Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它实际上是保护基于spring的应用程序的标准。

  4. Spring Security是一个框架,侧重于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring安全性的真正强大之处在于它可以轻松地扩展以满足定制需求

  5. 在用户认证方面,Spring Security 框架支持主流的认证方式,包括 HTTP 基本认证、HTTP 表单验证、HTTP 摘要认证、OpenID 和 LDAP 等。在用户授权方面,Spring Security 提供了基于角色的访问控制和访问控制列表(Access Control List,ACL),可以对应用中的领域对象进行细粒度的控制。

认识SpringSecurity

​​​​Spring Security 是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型,他可以实现强大的Web安全控制,对于安全控制,我们仅需要引入 spring-boot-starter-security 模块,进行少量的配置,即可实现强大的安全管理!

记住几个类:

*WebSecurityConfigurerAdapter:***自定义Security策略 **

*AuthenticationManagerBuilder:***自定义认证策略 **

@EnableWebSecurity:****开启WebSecurity模式 Spring Security的两个主要目标是 “认证” 和 “授权”(访问控制)。 “

认证”(Authentication) 身份验证是关于验证您的凭据,如用户名/用户ID和密码,以验证您的身份。 身份验证通常通过用户名和密码完成,有时与身份验证因素

结合使用。 “授权” (Authorization) 授权发生在系统成功验证您的身份后,最终会授予您访问资源(如信息,文件,数据库,资金,位置,几乎任何内容)的完全权限。 这个概念是通用的,而不是只在Spring Security 中存在。


pom.xml文件一


pom.xml1文件二


pom.xml文件整合


RouderController控制器的类

package com.springboot.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping({"/" ,"index"})
public class RouderController {
    public  String index(){
        return "index.html";
    }

    @RequestMapping("/tologin")
        public String tologin() {
            return "views/login";
        }

    @RequestMapping("/leve1/{id}")
    public String leve1(@PathVariable("id") int id) {
        return "views/leve1/"+id;
    }

    @RequestMapping("/leve2/{id}")
    public String leve2(@PathVariable("id") int id) {
        return "views/leve2/"+id;
    }

    @RequestMapping("/leve3/{id}")
    public String leve3(@PathVariable("id") int id) {
        return "views/leve3/"+id;
    }

}
package com.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

//启动类

@SpringBootApplication
public class SpringbootSpringsecurityApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootSpringsecurityApplication.class, args);
    }

}

核心重点在这个类上:SecurityConfig 图片演示学习


2


2


3

   //认证
    //密码编码 异常
    //   .withUser("Hellow").password(new BCryptPasswordEncoder().encode("123442")).roles("vip1");
    //    在5中要将密码加密·

@Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {

        auth.inMemoryAuthentication().passwordEncoder(new BCryptPasswordEncoder())
                .withUser("小明").password(new BCryptPasswordEncoder().encode("1234")).roles("vip1", "vip3")
                .and()
                .withUser("root").password(new BCryptPasswordEncoder().encode("12345")).roles("vip1", "vip2", "vip3")
                .and()
                .withUser("xiaming").password(new BCryptPasswordEncoder().encode("12344")).roles("vip2")
                .and()
                .withUser("Hellow").password(new BCryptPasswordEncoder().encode("123442")).roles("vip1");

    }


框架整合技术


头部

<!--登录注销-->

<div class="right menu">
    <!-- 如果没登录-->
    <!--如果未登录-->
    <div sec:authorize="!isAuthenticated()">
        <a class="item" th:href="@{/login}">
            <i class="address card icon"></i> 登录
        </a>
    </div>

    <!--如果已登录-->
    <!--注销按钮-->
    <div sec:authorize="isAuthenticated()">
        <a class="item" th:href="@{/logout}">
            <i class="address card icon"></i> 注销
        </a>
    </div>

    <div sec:authorize="isAuthenticated()">
<!--        取出用户名-->
        <a class="item">
            <i class="address card icon"></i>
<!--    获得信息        -->
            用户名:<span sec:authentication="principal.username"></span>
            角色:<span sec:authentication="principal.authorities"></span>
        </a>
    </div>


控制台


1


Why


2

总结:认识安全框架

  1. Spring Security is a powerful and highly customizable authentication and access-control framework. It is the de-facto standard for securing Spring-based applications.

  2. Spring Security is a framework that focuses on providing both authentication and authorization to Java applications. Like all Spring projects, the real power of Spring Security is found in how easily it can be extended to meet custom requirements

  3. Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它实际上是保护基于spring的应用程序的标准。

  4. Spring Security是一个框架,侧重于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring安全性的真正强大之处在于它可以轻松地扩展以满足定制需求

  5. 在用户认证方面,Spring Security 框架支持主流的认证方式,包括 HTTP 基本认证、HTTP 表单验证、HTTP 摘要认证、OpenID 和 LDAP 等。在用户授权方面,Spring Security 提供了基于角色的访问控制和访问控制列表(Access Control List,ACL),可以对应用中的领域对象进行细粒度的控制。

标签: spring boot java 后端

本文转载自: https://blog.csdn.net/qq_56248592/article/details/127157272
版权归原作者 星辰镜 所有, 如有侵权,请联系我们删除。

“SpringBoot&mdash;&mdash;SpringSecurity框架(课时二十一)”的评论:

还没有评论