SpringSecurity使用json登陆

?
?

一、创建项目并导入依赖

?
?

<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登陆

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

时间: 2024-10-31 10:12:57

SpringSecurity使用json登陆的相关文章

json 登陆协议分析

登录方式有两种:1)用户名密码登陆,code 为 5401 (2) IMSI和TOKEN 登陆, code 为93 POST /tcpbus/mobile HTTP/1.1Host: clientaccess.10086.cn:9043Accept: */*Accept-Encoding: gzipCode: 5401Content-Type: text/xml;charset=utf-8User-agent: GreenPoint.IncConnection: closeContent-Len

CI框架 QQ接口(第三方登录接口PHP版)

本帖内容较多,大部分都是源码,要修改的地方只有一个,其他只要复制过去,就可以完美运行.本帖主要针对CI框架,不用下载SDK,按我下面的步骤,建文件,复制代码就可以了.10分钟不要,接口就可完成.第一步:申请APP ID,APP KEY,申请地址:http://connect.opensns.qq.com/验证通过后:会得到APP ID,APP KEY.这是你用个文件把这些信息保持下来,免得用的时候有要上网去查,记录在本地记事本里,方便,用的时候打开就可以.如下:APP ID:101091331A

通过zabbix自带api进行主机的批量添加操作

通过zabbix自带api进行批量添加主机 我们需要监控一台服务器的时候,当客户端装好zabbix-agent端并正确配置以后,需要在zabbix-server的web gui界面进行添加zabbix-agent操作,填写host_name,访问名,ip地址,端口还有模板等信息 这样操作比较方便,但当我们需要添加的主机一次性有上百台甚至前台的时候这种方式效率就比较低了,一般有如下解决方式:1.通过自动发现,自动注册主机2.通过zabbix_api的方式进行批量操作 今天我们使用第二种方式进行操作

asp.net core 拦击器制作的权限管理系统DEMO

效果图 没有登陆不会执行请求日期的方法,不管是否登陆都不允许访问请求时间方法 验证不通过是会进行转发到Home/error方法中, 唯一有点遗憾的是会进行两次请求,而不是一次. 代码附上: [Route("[controller]/[action]")] public class HomeController : BaseController { /// <summary> /// Ajax请求页面 /// </summary> /// <param na

DjangoRestFramework学习三之认证组件、权限组件、频率组件、url注册器、响应器、分页组件

本节目录 一 认证组件 二 权限组件 三 频率组件 四 URL注册器 五 响应器 六 分页组件 七 xxx 八 xxx 一 认证组件 1. 局部认证组件 我们知道,我们不管路由怎么写的,对应的视图类怎么写的,都会走到dispatch方法,进行分发, 在咱们看的APIView类中的dispatch方法的源码中,有个self.initial(request, *args, **kwargs),那么认证.权限.频率这三个默认组件都在这个方法里面了,如果我们自己没有做这三个组件的配置,那么会使用源码中默

django项目登录中使用图片验证码

应用下创建untils文件夹放置封装图片验证码的函数 创建validCode.py文件定义验证码规则 import random def get_random_color(): return (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) def get_valid_code_img(request): # 方式: from PIL import Image, ImageDraw, ImageFon

spring-security 登陆认证之初次探究

首先,希望还对 spring-security框架完全不懂的新手 下载下Git源码. 引入到项目中.这个短文就是边看源码边聊的.也会启动下项目验证自己的推想. spring-security 登陆认证的配置项如下: <form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" default-target-url="/index.ht&qu

第一次JSON返回的登陆模式

/** * 跳转到登录页 * * @param model * @return */ @RequestMapping(value = {"/login2"},method = { RequestMethod.POST, RequestMethod.GET }) @ResponseBody public JSONObject login1(Model model, HttpServletRequest request, HttpServletResponse response, @Req

spring-security问题记录---Could not decode JSON for additional information: BaseClientDetails

错误信息 2019-12-03 22:18:37.239 WARN 19120 --- [nio-8100-exec-4] o.s.s.o.p.c.JdbcClientDetailsService : Could not decode JSON for additional information: BaseClientDetails [clientId=c1, clientSecret=$2a$10$NlBC84MVb7F95EXYTXwLneXgCca6/GipyWR5NHm8K0203bS