springsecurity登录(Spring Security处理登出(Logout))

2024-10-17 14:20:32 0

springsecurity登录(Spring Security处理登出(Logout))

这篇文章给大家聊聊关于springsecurity登录,以及Spring Security处理登出(Logout)对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

Spring Security处理登出(Logout)

Spring Security内置的东西很多,有时候比较方便,但有时候因不了解其内部机制很可能出现一些问题。这里说下Spring Security对登出的支持。

Security默认的登出地址为: /logout ,在登出后会进行如下操作:

当然除了默认的操作,开发者更希望能自己灵活配置。

LogoutHandler 即在程序执行logout时一起参与执行其中的处理逻辑, 不能抛出异常 ,官方默认提供了几个实现。

在调用完LogoutHandler之后,并且处理成功后调用, 可以抛出异常 ,官方默认提供了两个

在登出的时候区分是 接口登出 还是 页面登出 ,针对不同的登出做不同的处理。

***隐藏网址***

Spring Security 使用非spring默认的登陆页面,是如何跳转到登陆成功页面的

发现这个问题已经在这放了那么久没人回答,为了方便后面的人,我在这里就完结一下这个问题。Spring Security 默认action="j_spring_security_check",让很多人不理解这个请求之后会跳转到哪里去,这里我们就看***隐藏网址******隐藏网址***form-login属性详解1. login-page 自定义登录页url,默认为/login 2. login-processing-url 登录请求拦截的url,也就是form表单提交时指定的action 3. default-target-url 默认登录成功后跳转的url 4. always-use-default-target 是否总是使用默认的登录成功后跳转url 5. authentication-failure-url 登录失败后跳转的url 6. username-parameter 用户名的请求字段 默认为userName 7. password-parameter 密码的请求字段 默认为password 8. authentication-success-handler-ref 指向一个AuthenticationSuccessHandler用于处理认证成功的请求,不能和default-target-url还有always-use-default-target同时使用 9. authentication-success-forward-url 用于authentication-failure-handler-ref 10. authentication-failure-handler-ref 指向一个AuthenticationFailureHandler用于处理失败的认证请求 11. authentication-failure-forward-url 用于authentication-failure-handler-ref 12. authentication-details-source-ref 指向一个AuthenticationDetailsSource,在认证过滤器中使用看到第三条属性没?default-target-url这个属性。***隐藏网址******隐藏网址***《form-login default-target-url="/toMain.do" /》 ***隐藏网址***这样我们就可以在登录成功后调用上面对应的action,关于action返回视图,SpringMVC和Struts2这里我就不多说了。

springboot 整合springsecurity 前后端分离怎么实现登陆

首先分析一下工作量吧,因为要支持 restful 风格的接口,那么我们在判断用户是不是有权限访问的时候不仅要判断 url 还要判断 请求方式。 所以我门需要修改数据库表,因为我门的权限表还没有method 字段。由于要判断 url 和 method 所以要在CustomUserService 类的 loadUserByUsername 方法中要添加 权限的 url 和 method 。但是SimpleGrantedAuthority 只支持传入一个参数。 所以我门考虑要再写一个类 实现 GrantedAuthority 接口,并在构造函数中传入两个参数。嘻嘻。由于我们不仅要判断url 还要 判断请求方法,所以当然要修改 MyAccessDecisionManager 的decide 方法的内容了。因为:decide 方法是判定是否拥有权限的决策方法 ,三个参数的含义分别为://authentication 是释CustomUserService中循环添加到 GrantedAuthority 对象中的权限信息集合.//object 包含客户端发起的请求的requset信息,可转换为 HttpServletRequest request = ((FilterInvocation) object).getHttpRequest();//configAttributes 为MyInvocationSecurityMetadataSource的getAttributes(Object object)这个方法返回的结果,此方法是为了判定用户请求的url 是否在权限表中,如果在权限表中,则返回给 decide 方法,用来判定用户是否有此权限。如果不在权限表中则放行。当然在 修改一下 MyInvocationSecurityMetadataSourceService 的getAttributes 方法。//此方法是为了判定用户请求的url 是否在权限表中,如果在权限表中,则返回给 decide 方法,用来判定用户是否有此权限。如果不在权限表中则放行。//因为我不想每一次来了请求,都先要匹配一下权限表中的信息是不是包含此url,我准备直接拦截,不管请求的url 是什么都直接拦截,然后在MyAccessDecisionManager的decide 方法中做 拦截还是放行的决策。5.关闭csrf 6.添加restful 风格的接口好了分析完了,接下来就是编码了。

SpringSecurity登录原理(源码级讲解)

首先会进入 UsernamePasswordAuthenticationFilter 并且设置权限为null和是否授权为false,然后进入 ProviderManager 查找支持 UsernamepasswordAuthenticationToken 的 provider 并且调用 provider.authenticate(authentication); 再然后就是 UserDetailsService 接口的实现类(也就是自己真正具体的业务了),这时候都检查过了后,就会回调 UsernamePasswordAuthenticationFilter 并且设置权限(具体业务所查出的权限)和设置授权为true(因为这时候确实所有关卡都检查过了)。

UsernamePasswordAuthenticationFilter

可以发现继承了 AbstractAuthenticationProcessingFilter ,那我们就来看下此类

1、继承了父类,父类是个过滤器,所以肯定先执行 AbstractAuthenticationProcessingFilter.doFilter() ,此方法首先判断当前的filter是否可以处理当前请求,不可以的话则交给下一个filter处理。

2、调用此抽象类的子类 UsernamePasswordAuthenticationFilter.attemptAuthentication(request, response) 方法做具体的操作。

3、最终认证成功后做一些成功后的 session 操作,比如将认证信息存到 session 等。

4、最终认证成功后的相关回调方法,主要将当前的认证信息放到 SecurityContextHolder 中并调用成功处理器做相应的操作。

1、父类的 authResult = attemptAuthentication(request, response); 触发了自类的方法。

2、此方法首先判断请求方式是不是POST提交,必须是POST

3、从请求中获取 username 和 password ,并做一些处理

4、封装 Authenticaiton 类的实现类 UsernamePasswordAuthenticationToken

5、调用 AuthenticationManager 的 authenticate 方法进行验证

1、怎么触发的?

2、 ProviderManager.authenticate(Authentication authentication);

**3、此方法遍历所有的Providers,然后依次执行验证方法看是否支持 UsernamepasswordAuthenticationToken**

4、若有一个能够支持当前token,则直接交由此 provider 处理并break。

5、若没一个 provider 验证成功,则交由父类来尝试处理

1、怎么触发的?

2、 DaoAuthenticationProvider

3、继承了 AbstractUserDetailsAuthenticationProvider

4、 AbstractUserDetailsAuthenticationProvider.authenticate() 首先调用了 user = this.retrieveUser(username, (UsernamePasswordAuthenticationToken)authentication);

5、调用我们自己的业务处理类

比如:

6、调用完 retrieveUser 方法继续回到抽象类的 authenticate 方法

7、首先做一些检查

8、调用 createSuccessAuthentication 方法进行授权成功

9、回到起点

进行session存储和成功后的处理器的调用等

只是简单说下类之间的调用顺序。

大功告成!

只需要一个html,一段配置,一个Service自己的业务类即可。

疑问:

1、接口login在哪定义的?

2、用户名 username 和密码 password 在哪接收的?

3、没有控制器怎么进入我们的 MyUserDetailsService 的方法?

解答:

1、 SpringSecurity 内置的,并且只能为 POST

2、名称不能变,必须是 username 和 password

3、自己看我上面的源码分析

2021-04-06 SpringSecurity登录 跨域JSESSIONID失效

SpringBoot + SpringSecurity + 前后端分离 (前端 127.0.0.1:8848,后端 localhost:8998) 登录和其他请求的JSESSIONID(存入cookie内)不同,导致其他请求给后端的JSESSIONID为未登录的无效SESSIONID,提示未登录。 顺序:登录(/login) ---》 组织结构(/depts) ---》 个人信息(/staff/getOne/wld) 登录:响应Cookie 组织结构:响应Cookie 个人信息:请求Cookie 后端 顺序:登录(/login) ---》 个人信息(/staff/getOne/wld) ---》 组织结构(/depts) 登录:响应Cookie 个人信息:无Cookie 组织结构:响应Cookie 后端 A、B两次的测试登录和其他的操作Cookie都不同,说明后端响应请求成功,但响应JSESSIONID并没有存入到本地,以致后序的操作拿不到Cookie中的JSESSIONID,能获取后端传来JSESSIONID的拿到了一个新的JSESSIONID(A中组织结构),不能获取后端传来JSESSIONID的也没有请求Cookie(B中个人信息)。 开启withCredentials后,服务器才能拿到你的cookie。当然后端服务器也要设置允许你获取你开启了才有用(之前有设置) login.html(登录):没有开启 show-inform.html(个人信息):开启 struct-tree.html(组织结构):开启 (但是dataType没有指定,所以在A、B测试中其均有响应Cookie) SpringSecurity中登录的过滤器 其他请求的过滤器 1、每次调试前,浏览器缓存、cookie啥的清除干净,方便查找问题 2、改动要完整,要清楚是干什么的(前端login.html没有开启withCredentials是这次的主要问题)

关于springsecurity登录,Spring Security处理登出(Logout)的介绍到此结束,希望对大家有所帮助。

springsecurity登录(Spring Security处理登出(Logout))

本文编辑:admin
springsecurity登录 ,pring

更多文章:


迅雷高速通道(迅雷高速通道资源被举报进入失败的破解方法)

迅雷高速通道(迅雷高速通道资源被举报进入失败的破解方法)

这篇文章给大家聊聊关于迅雷高速通道,以及迅雷高速通道资源被举报进入失败的破解方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录迅雷高速通道资源被举报进入失败的破解方法迅雷高速通道是什么原理迅雷的高速通道下载是什么原理迅雷为什

2024年6月30日 03:14

ping exe(如何打开电脑ping功能)

ping exe(如何打开电脑ping功能)

本文目录如何打开电脑ping功能运行exe文件移动运行ping电脑ping怎么打开计算机ping在哪里打开进程ping.exe是怎么回事ping.exe是什么进程如何打开电脑ping功能1、打开系统的“控制面板”,选择“windows防火墙

2024年6月2日 11:36

小滴的角色经历?高中生物:培养液小滴是什么怎么形成

小滴的角色经历?高中生物:培养液小滴是什么怎么形成

本文目录小滴的角色经历高中生物:培养液小滴是什么怎么形成小滴的介绍全职猎人小滴怎么死的小滴管家如何远程控制团聚体小滴的特征常吐小滴稀薄水样痰,其它无任何症状小滴的角色经历小滴第一次见到小杰一行人,是在小杰等人举行的腕力比赛上,因为看上了奖品

2024年7月9日 09:14

三国群英传单机游戏下载(三国群英传2原版安卓单机版在哪里下载)

三国群英传单机游戏下载(三国群英传2原版安卓单机版在哪里下载)

各位老铁们,大家好,今天由我来为大家分享三国群英传单机游戏下载,以及三国群英传2原版安卓单机版在哪里下载的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文

2024年8月27日 01:35

交管12123最新版本下载(12123交罚款时显示手机版本过低)

交管12123最新版本下载(12123交罚款时显示手机版本过低)

本篇文章给大家谈谈交管12123最新版本下载,以及12123交罚款时显示手机版本过低对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录1212

2024年7月28日 20:01

为什么FC游戏普遍难度很大?如果设计一款游戏,极难积攒足够的资源以打败系统如果是你的话,会怎么玩

为什么FC游戏普遍难度很大?如果设计一款游戏,极难积攒足够的资源以打败系统如果是你的话,会怎么玩

本文目录为什么FC游戏普遍难度很大如果设计一款游戏,极难积攒足够的资源以打败系统如果是你的话,会怎么玩在《三国志9》游戏中,如何招降敌方武将哪些武将极难招揽你认为红白机时代五大高难度游戏是哪些《第二银河》这游戏难不难有什么特别难的电子游戏极

2023年8月17日 18:20

如何查公交车实时到站信息?怎么在苹果手机中查找到公交车到站时间

如何查公交车实时到站信息?怎么在苹果手机中查找到公交车到站时间

本篇文章给大家谈谈实时公交,以及如何查公交车实时到站信息对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录如何查公交车实时到站信息怎么在苹果手机中查找到公交车到站时间如何查看实时公交车辆到站时间查公交站几分钟到站你对实时公交有哪

2024年8月30日 13:50

1 76精品蓝魔(1.76蓝魔精品的大事记)

1 76精品蓝魔(1.76蓝魔精品的大事记)

本文目录1.76蓝魔精品的大事记自己架设的传奇S-F176蓝魔精品版的55级人物自己变深粉色了求大神告诉我哪个文件或设置能不变色1.76蓝魔精品的大事记2001年9月28日热血传奇正式运营,一个传奇由此开始 。2001年10月6日热血传奇在

2023年10月1日 14:40

ai志愿助手(AI志愿助手是做什么的)

ai志愿助手(AI志愿助手是做什么的)

今天给各位分享AI志愿助手是做什么的的知识,其中也会对AI志愿助手是做什么的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录AI志愿助手是做什么的报志愿的软件a1志愿助手百分之多少可靠免费填报志愿的软件ai志愿

2024年7月1日 17:39

安卓暴力破解root(如何暴力破解root)

安卓暴力破解root(如何暴力破解root)

大家好,安卓暴力破解root相信很多的网友都不是很明白,包括如何暴力破解root也是一样,不过没有关系,接下来就来为大家分享关于安卓暴力破解root和如何暴力破解root的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本

2024年5月14日 11:44

北京帮推客科技发展有限公司怎么样?加入爱茉尔帮推客源是真的吗

北京帮推客科技发展有限公司怎么样?加入爱茉尔帮推客源是真的吗

本文目录北京帮推客科技发展有限公司怎么样加入爱茉尔帮推客源是真的吗友帮推客怎么注册北京帮推客科技发展有限公司怎么样北京帮推客科技发展有限公司是2015-09-23在北京市朝阳区注册成立的有限责任公司(自然人投资或控股),注册地址位于北京市朝

2024年7月15日 11:47

爱思加强版苹果下载安装(苹果手机如何更新爱思加强版)

爱思加强版苹果下载安装(苹果手机如何更新爱思加强版)

大家好,今天小编来为大家解答以下的问题,关于爱思加强版苹果下载安装,苹果手机如何更新爱思加强版这个很多人还不知道,现在让我们一起来看看吧!本文目录苹果手机如何更新爱思加强版怎么在苹果手机上下载爱思助手苹果手机里的爱思加强版手机App是怎么下

2024年10月19日 20:25

学校排课系统有什么好处有哪些值得推荐的排课系统?兴文排课系统收费吗

学校排课系统有什么好处有哪些值得推荐的排课系统?兴文排课系统收费吗

大家好,关于排课系统很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于学校排课系统有什么好处有哪些值得推荐的排课系统的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助

2024年5月28日 04:33

大话水浒好玩吗(大话水浒 好玩不》)

大话水浒好玩吗(大话水浒 好玩不》)

本文目录大话水浒 好玩不》大话水浒好玩吗大话水浒ws好玩吗大话水浒好玩不大话水浒好玩吗如果是新手的话玩什么职业比较容易些大话水浒 好玩不》玩久是必定扔钱的游戏.大概50-70级就要扔1次钱吧.80-90也要.如果玩家不太黑的话是可以选择继续

2024年6月21日 14:56

filterchain(如何创建过滤器Filter)

filterchain(如何创建过滤器Filter)

本文目录如何创建过滤器Filter如何实现一个简单地Filterjava过滤器中实现Filter的类怎么写如何创建过滤器Filter建立一个过滤器涉及下列五个步骤:1、建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFil

2023年8月6日 07:00

免费照片恢复软件(照片恢复软件有哪些)

免费照片恢复软件(照片恢复软件有哪些)

大家好,今天小编来为大家解答以下的问题,关于免费照片恢复软件,照片恢复软件有哪些这个很多人还不知道,现在让我们一起来看看吧!本文目录照片恢复软件有哪些有没有不收费的手机相片恢复软件有什么免费恢复照片的软件真正免费手机照片恢复软件修复照片的免

2024年10月13日 23:45

摩托车比赛有女选手吗?摩托车比赛中,选手为什么要趴伏在摩托车上

摩托车比赛有女选手吗?摩托车比赛中,选手为什么要趴伏在摩托车上

本文目录摩托车比赛有女选手吗摩托车比赛中,选手为什么要趴伏在摩托车上摩托车都有什么赛事摩托车赛级别2020珠海摩托车比赛什么时候举办摩托车比赛有女选手吗有。摩托车比赛对性别是不限制的,女性选手也可以参加。比较有名的摩托车赛事是世界摩托车锦标

2024年6月27日 21:47

饥荒中文版下载(饥荒单机版哪里下载 饥荒单机版下载方法)

饥荒中文版下载(饥荒单机版哪里下载 饥荒单机版下载方法)

本文目录饥荒单机版哪里下载 饥荒单机版下载方法饥荒中文版在哪下载饥荒低配版要怎么下载饥荒单机版哪里下载 饥荒单机版下载方法1、首先在steam商店中找到并购买Don’t starve也就是饥荒。 2、购买饥荒后,点击上方工具栏中的库,在库

2024年7月21日 18:16

腾讯实名认证中心(腾讯游戏安全中心实名认证怎么老是不通过)

腾讯实名认证中心(腾讯游戏安全中心实名认证怎么老是不通过)

本文目录腾讯游戏安全中心实名认证怎么老是不通过腾讯游戏实名认证中心出现,您提交的账号与身份信息暂不符合变更要求是什么意思怎么解决微信腾讯实名认证如何查看腾讯游戏实名认证中心出现,您提交的账号与身份信息暂不符合变更要求手机腾讯视频实名认证在哪

2024年7月2日 18:15

街机游戏rom下载网站(街机游戏ROM下载的网站)

街机游戏rom下载网站(街机游戏ROM下载的网站)

本篇文章给大家谈谈街机游戏rom下载网站,以及街机游戏ROM下载的网站对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录街机游戏ROM下载的网站街机模拟器哪里下载街机游戏在哪下载求街机游戏神剑伏魔录模拟器和ROM下载地址(包括模

2024年9月7日 11:15

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2342
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1735
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1168
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1164
标签列表

热门搜索