栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot + Spring Security+Swagger 实现前后端分离登录认证及权限控制 (一) 系统的登录以及跳转自定义登录界面

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot + Spring Security+Swagger 实现前后端分离登录认证及权限控制 (一) 系统的登录以及跳转自定义登录界面

文章目录
  • 前言
  • 一、解决办法
  • 二、使用步骤
    • 1.先把项目跑起来断点打起来走下流程试试
    • 2.自定义登录
  • 总结


前言

因为最近有个项目需要用到Springboot + Spring Security的登录跟权限认证,因为之前都没接触过,所以得从0开始,也是不断的查询摸索,虽然还么理清这些原理,但是好在实现了功能,先解决问题,然后再深究原理,所以打算记录下来实现这块遇到的一些问题,给自己记录也给有需要的朋友


提示:以下是本篇文章正文内容,下面案例可供参考

一、解决办法

那肯定是先百度搜索一下,于是搜到一篇大佬的文章确实写的不错膜拜传送门,这篇可以让你先搭上这些东西,然后有个大概的概念,我只是借鉴了一些,让你先知道核心配置是什么,怎么去自定义查询用户跟权限的方法(因为我之前最开始是要最springcloudgateway+Spring Security来实现鉴权的,其实也是实现了,但是后面需要用swagger,但是依赖springmvc,而网关是reactive,就集成这里有点问题就先暂时搁浅了,后面又时间也把这个记录下。)

二、使用步骤 1.先把项目跑起来断点打起来走下流程试试

可能有些朋友刚开始还不知道怎么创建数据库,只是想单独的试下Spring Security的登录功能。
那么在配置UserDetailsServiceImpl中先不查询数据,把用户密码写死到配置里面。在配置文件.properties中加入配置

#security 配置
spring.security.user.name=admin
spring.security.user.password=123456

把UserDetailsServiceImpl中loadUserByUsername连接数据查询的方法注释掉,启动项目

输入配置的用户密码就能登录,成功就能看到我们自己写的成功后返回,失败就是失败后返回。

2.自定义登录

因为在我们实际的系统使用中,一般是不会用Spring Security自带的登陆界面,这时候需要我们自定义,在核心配置类WebSecurityConfig中的configure方法把.loginPage("/login.html")
代码如下(示例):

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.cors().and().csrf().disable();
        http.authorizeRequests()
        		//放开静态页面都能访问的权限
         		.antMatchers("/static/**").permitAll().
                //登出
                and().logout().
                    permitAll().//允许所有用户
                    logoutSuccessHandler(logoutSuccessHandler).//登出成功处理逻辑
                    deletecookies("JSESSIONID").//登出之后删除cookie
                //登入
                and().formLogin().
                    permitAll()//允许所有用户
                    .loginPage("/login.html") //我这里直接跳的html
                    .loginProcessingUrl("/login")//post登录接口,登录验证由系统实现也可以自定义然后在拦截器里面拦截(我后面会用到自定义,因为还有验证码)
                    .successHandler(authenticationSuccessHandler).//登录成功处理逻辑
                    failureHandler(authenticationFailureHandler).//登录失败处理逻辑
              
    }
}

这样就能跳转到登录界面了,并且登录的时候有系统自动校验,下面为html的页面(这里注意事项,提交的请求方法应与.loginProcessingUrl一致)

用户名:
密码:
验证码:

总结

学习接触新的东西,肯定是要花费时间的,下期记录一下图片验证码登录。

我是张同学,记录下工作中出现的问题。
不积跬步,无以至千里;不积小流,无以成江海。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458805.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号