Springsecurity之AuthenticationEntryPoint
2019独角兽企业重金招聘Python工程师标准>>>
注意:分析的版本是Springsecurity的4.3.x。
在ExceptionTranslationFilter中使用到AuthenticationEntryPoint,当ExceptionTranslationFilter截获AuthenticationException
或者AccessDeniedException异常时,就会调用AuthenticationEntryPoint的commence。AuthenticationEntryPoint有很多实现类,我们来看下CasAuthenticationEntryPoint,这个与单点登录有关。先上一张图,如下图1所示。
图1 CasAuthenticationEntryPoint的继承图
如果查看Springsecurity的cas那部分的文档,会看到如下List-1所示的内容,
List-1
<bean id="casEntryPoint"class="org.springframework.security.cas.web.CasAuthenticationEntryPoint"><property name="loginUrl" value="https://localhost:9443/cas/login"/><property name="serviceProperties" ref="serviceProperties"/>
</bean><bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties"><property name="service" value="https://localhost:8443/cas-sample/login/cas"/><property name="sendRenew" value="false"/>
</bean>
CasAuthenticationEntryPoint的commence方法中,如下List-2所示,方法createServiceUrl和createRedirectUrl是构建调用CAS server的url,方法preCommence是空方法体,最后设置respose的redirect地址,这样浏览器收到的是302状态码,然后浏览器访问List-2中的redirectUrl,redirectUrl的值是"https://localhost:9443/cas/login?service=https://localhost:8443/cas-sample/login/cas"。
List-2
public final void commence(final HttpServletRequest servletRequest, final HttpServletResponse response,final AuthenticationException authenticationException) throws IOException,ServletException {final String urlEncodedService = createServiceUrl(servletRequest, response);final String redirectUrl = createRedirectUrl(urlEncodedService);preCommence(servletRequest, response);response.sendRedirect(redirectUrl);}
注:List-2中的createServiceUrl和createRedirectUrl在构造Http请求链接的时候,有点复杂,这里就不再细讲。
转载于:https://my.oschina.net/u/2518341/blog/2874750
Springsecurity之AuthenticationEntryPoint相关推荐
- jwt判断token是否过期_4spring-security5整合jwt做登录、权限验证,全网最全!!!可用...
github源码: https://github.com/gyb123456/spring-security5-jwt,最烦那些写文档只截图一半还不给源码的人,要不你就截全图,要不就给源码! 前言: ...
- springsecurity实现自定义SecurityConfigurerAdapter、accessDeniedHandle.authenticationEntryPoint示例
文章目录 spring properties 1.TokenUtil 自定义 SecurityConfigurerAdapter 自定义corsfilter 自定义AuthenticationEntr ...
- SpringSecurity系列 之 AuthenticationEntryPoint接口及其实现类的用法
1.AuthenticationEntryPoint接口 1.1.简介 被ExceptionTranslationFilter用来作为认证方案的入口,即当用户请求处理过程中遇见认证异常时,被异常处 ...
- SpringBoot+SpringSecurity前后端分离+Jwt的权限认证(改造记录)
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/zzzgd_666/article/details/96444829 前言 一般来说,我们用Spr ...
- echarts前后端交互数据_SpringBoot2.0实战(26)整合SpringSecurity前后端分离JSON交互...
在前端的文章中,我们实现了使用 SpringSecurity 实现登录鉴权,并使用数据库存储用户信息,实现登录鉴权 SpringBoot2.0实战(24)整合SpringSecurity之最简登录方法 ...
- springboot整个cas_SpringBoot集成SpringSecurity+CAS
1 简介 本文主要讲述如何通过SpringSecurity+CAS在springboot项目中实现单点登录和单点注销的功能. 2 项目依赖 主要依赖如下 org.springframework.boo ...
- springsecurity不拦截某个接口_SpringSecurity 默认表单登录页展示流程源码
SpringSecurity 默认表单登录页展示流程源码 本篇主要讲解 SpringSecurity提供的默认表单登录页 它是如何展示的的流程,涉及1.FilterSecurityIntercepto ...
- spring-security权限控制详解
在本例中,主要讲解spring-boot与spring-security的集成,实现方式为: 将用户.权限.资源(url)采用数据库存储 自定义过滤器,代替原有的 FilterSecurityInte ...
- @builder注解_SpringBoot 整合SpringSecurity示例实现前后分离权限注解+JWT登录认证
一.说明 SpringSecurity是一个用于Java 企业级应用程序的安全框架,主要包含用户认证和用户授权两个方面.相比较Shiro而言,Security功能更加的强大,它可以很容易地扩展以满足更 ...
最新文章
- beautifulsoup关于标签的初学习
- Selenium之定位及切换frame(iframe)
- 无法连接到已配置的开发web服务器_你知道多少种服务器?这三种服务器你都认识吗?...
- T.38 and the future
- 编写java实用工具-针对未压缩的pdf转word,(java实现),压缩过的pdf勿进
- 路由选项卡_M32全面培训第四讲——路由配置
- 采油工计算机试题库,数字化采油工试题库.doc
- Python爬虫扩展库scrapy选择器用法入门(一)
- 高光谱图像处理和分析软件(包含雷尼绍Renishaw wdf 文件导入解析功能)
- 服务器winsxs文件夹怎么清理工具,win10系统winsxs文件夹该如何删除?win10删除winsxs文件夹的两种方法...
- 国内外大数据创业面面观
- 高性能Java模板引擎BSL-1.0.1发布
- Micheal Nielsen's神经网络学习之三:过拟合与规范化
- 为何农历10月1号要祭祖上坟?原来有这么多讲究,你知道吗?
- 辛甫生算法c语言,[转载]实变函数,计算方法程序,康托图
- 洽谈国内单机游戏下载站
- 高德地图红绿灯读秒是怎么实现的?(一)
- 千呼万唤始出来,犹抱琵琶半遮面-go语言初识
- 软件架构基本技法——打包
- 司铭宇老师谈大客户销售技巧之如何做好大客户营销