码迷,mamicode.com
首页 > 编程语言 > 详细

SpringSecurity使用json登陆

时间:2020-01-17 09:38:49      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:strong   ctrl   json   png   group   代码   使用   uri   ica   

? ?

一、创建项目并导入依赖

? ?

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-security</artifactId>

</dependency>

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

? ?

? ?

二、相关配置和代码

? ?

2.1)application.properties配置密码

? ?

注:我这里从简,可以先去看https://www.cnblogs.com/fernfei/p/12185186.html如何配置密码

? ?

spring.security.user.name=admin

spring.security.user.password=123

? ?

2.2)创建自定义的身份过滤类

? ?

技术图片

? ?

2.3)写json登陆之前先看一下源码,了解一下它是如何表单登录的

? ?

2.3.1)在Idea中连按连下shift键,搜索UsernamePasswordAuthenticationFilter类

? ?

技术图片

? ?

2.3.2)进入后再按Ctrl+F12可以查看该类的所有方法

? ?

技术图片

? ?

2.3.3)进入方法

? ?

? ?

技术图片

? ?

2.3.4)我们只需要在request.getParameter()那里重写一下不就可以实现json登陆

? ?

重写attemptAuthentication(HttpServletRequestrequest,HttpServletResponseresponse)方法

? ?

只需要复制父类的方法,多加一个判断json的方法。就能同时支持key-value形式可json形式的参数了

? ?

技术图片

? ?

? ?

3)创建SecurityConfig配置类

? ?

技术图片

? ?

注:自定义的过滤类和security原来那个表单登陆过滤设置是分开的

? ?

体现在filter.setFilterProcessesUrl()和loginProcessingUrl

因此表单登陆和json登陆的,successHandler判断也要分开写,

一会下面有效果图也可以印证这一点

? ?

? ?

4)创建controller

? ?

技术图片

? ?

? ?

三、效果图

? ?

? ?

测试工具PostMan

? ?

访问被保护的hello路径

? ?

技术图片

? ?

json登陆

? ?

技术图片

? ?

表单登陆

? ?

技术图片

? ?

由此证明这俩个登陆的配置要分开设置

SpringSecurity使用json登陆

标签:strong   ctrl   json   png   group   代码   使用   uri   ica   

原文地址:https://www.cnblogs.com/fernfei/p/12204054.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!