首页 > 数据库 >SpringSecurity角色认证、数据库查询账号密码、退出

SpringSecurity角色认证、数据库查询账号密码、退出

时间:2024-06-03 11:02:16浏览次数:30  
标签:登录 数据库 SpringSecurity 403 退出 我们 账号密码 页面

在上一次我们实现了登录拦截,以及加密密码进行登录,这次我们要加上角色认证以及把加密后的账号密码放到数据库里进行查询然后登录,最后会有一个退出,退出之后就需要再次输入账号密码

角色认证

我们先在我们的config上面配置好我们的登录之后以及错误之后要去哪里,以及我们自己配置的一个路径的角色

我们的角色设置后之后就要去servise层里设置我们都有哪些权限

我们需要new一个list,然后把我们设置的角色放到list里面,注意:前面config里面/a367的admin1和admin这两个角色如果跟我们设置的这些都不一样,并且运行了/a365这个路径,那么就会进入到一个403页面,在config里我们也设置了如果403之后要跳转的一个页面,也就是/a365这个路径没有权限,所以不能访问

以下是我们的自己的403页面

数据库查询账号密码

在上章的security里我们是自己设置的一个账号密码,这次我们要放在数据库里,然后查询到后才可以登录成功

我们使用了这个UserDetailsServise

还是一个我们的密码编译器,但这次不一样的是,我们把账号密码写在了servise层里

开始配置我们的数据库和mybatis

<!--     mybatis -->
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.3.2</version>
    </dependency>

    <!--    连接数据源-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.31</version>
    </dependency>

还有我们的yml文件

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/2023325?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

配置好这些就可以写我们的mapper,然后在刚刚的servise层调用就可以

退出

不退出我们登录成功之后是可以访问其他的路径并不会被拦截登录,如果退出之后,我们需要重新进行登录,所以我们需要写一个退出

在我们登录成功的页面写一个退出的超链接,路径为logout

进入到我们的config里面写上logout的配置,也就是退出登录,还有退出之后去的路径

最后我们启动项目

随便访问一个页面都会进入我们的登录页面,现在我们访问我们登录成功的一个欢迎页面

能看到我们的退出也在,现在我们在访问别的页面就不需要在进行登录了,也不会拦截了,但是如果我们代码里面设置的角色没有,也就是没有授权就会进入到403页面,在config里面我们也设置好了403页面,进入我们自己写的一个403

标签:登录,数据库,SpringSecurity,403,退出,我们,账号密码,页面
From: https://blog.csdn.net/Cao_XinYang/article/details/139405168

相关文章

  • LLVM技术在GaussDB等数据库中的应用
    本文分享自华为云社区《【GaussTech第3期】LLVM技术在GaussDB等数据库中的应用》,作者:GaussDB数据库。Hi,别急!让技术触达每一个角落,赋能更多的人,GaussTech第3期《LLVM技术在GaussDB等数据库中的应用》,不仅带来满满的技术干货,还推出【分享集赞回帖赢好礼】活动,参与就能赢好礼,文末......
  • 【高薪诚聘】数据库精英,加入我们,共创数据未来!
    我们寻找的你:【如果你是数据库架构专家】对数据库架构有深入的了解和实践经验,能够为公司构建稳定、高效、可扩展的数据库架构;对各种数据库系统有深入的理解,包括但不限于MySQL、Oracle、SQLServer等,并能够根据实际业务需求进行选择和优化;对新技术和新架构保持敏感,有能力推动公......
  • MySQL中:cmd下输入命令mysql -uroot -p 连接数据库错误
    目录问题cmd下输入命令mysql-uroot-p错误待续、更新中问题cmd下输入命令mysql-uroot-p错误解决配置环境变量:高级系统设置——环境变量——系统变量——path编辑——新建——MySQL.exe文件路径(如下图所示)phpstudy2018软件下,找到网站根目录,打开数据库目录:......
  • 数据库表的同步
    在C++中实现数据库中表的同步,通常是指保持两个或多个数据库表的数据一致,这可能涉及到数据的复制、更新、删除等操作。实现这一功能时,你可以采用几种策略,包括但不限于定期同步、触发器同步、或使用消息队列等。以下是使用C++实现一种基本的定期同步示例,假设你有两个数据库(源数据......
  • SpringSecurity6从入门到实战之Filter过滤器回顾
    SpringSecurity6从入门到实战之Filter过滤器回顾如果没有SpringSecurity这个框架,我们应该通过什么去实现客户端向服务端发送请求时,先检查用户是否登录,登录了才能访问.否则重定向到登录页面流程图如下官方文档:https://docs.spring.io/spring-security/reference/6.0......
  • mysql binlog查看指定数据库
    1.mysqlbinlog查看指定数据库的方法MySQL的binlog(二进制日志)主要记录了数据库上执行的所有更改数据的SQL语句,包括数据的插入、更新和删除等操作。但直接查看binlog并不直观,因为它是以二进制格式存储的。为了查看binlog中的内容,我们通常使用mysqlbinlog工具。如果我们......
  • 成为MySQL DBA后,再看ORACLE数据库(五、内存管理)
    一、前言在数据库的体系结构中,内存区是非常关键的一部分,一般而言数据库实例也是由内存+后台进程组成。不同于MySQL的单进程多线程架构,ORACLE是多进程架构,所以在内存管理上也更加复杂。ORACLE的内存管理一般分两部分:PGA(ProgramGlobalArea)和SGA(SystemGlobalArea)。翻开当年学习O......
  • mosh数据库——第八章
    1.创建视图使用这个视图,所以我们不需要重新写这些查询USEsql_invoicing;SELECTc.client_id,c.name,SUM(invoice_total)AStotal_salesFROMclientscJOINinvoicesiUSING(client_id)GROUPBYclient_id,name我们可能需要我们的顶级客户名单,或......
  • 如何在Spring Boot中配置MySQL数据库连接数
    1.如何在SpringBoot中配置MySQL数据库的连接数1.1主要配置在SpringBoot中配置MySQL数据库连接数通常涉及到两个主要的配置:(1)数据源配置:这通常是在application.properties或application.yml文件中完成的,用于设置数据源的基本参数,如URL、用户名、密码等。(2)连接池配置:SpringBoo......
  • oracle数据库文件
    oracle数据库重要的文件包括参数文件,控制文件,数据文件,临时文件,重做日志文件。1参数文件oracle的参数文件可以设置数据库的名称,SGA和PGA的大小,控制文件的路径等系统参数。这些参数可以通过V$PARAMETER视图进行查询。oracle有两类参数文件,分别为pfile参数文件和spfile参数文件。o......