springsecurity第三章——一些的基本功能——自定义登录退出的实现
在了解了springSecurity的大体认证过程之后,就要从基本开始一步一步的深入学习其内部实现。
1、自定义登录界面
首先,一个软件应用要有一个验证入口(登录界面),而springsecurity提供了一个默认的登录界面,但是由于用户体验和结合自身网站的特性,一般都是自定义一个登录界面。而security框架的开发者也想到了这个问题,所以security提供了其他开发者设置自定义登录界面的方法。
配置自定义登录页面步骤:1、在配置文件中添加一句配置:<form-login login-page="/login.jsp">,这里login- page的值根据各自网站而定。
2、security对自定义登陆页面的form表单也有一定的要求,因为security的过滤器 默认拦截的action是:j_spring_security_check,提交方法是:post,用户 名和密码的参数的name也有限制,具体例子如图:
在我们开发自定义登陆页的过程中,我们需要遵守security的这些约定。至于为什么会配置了这个,就能实现自定义登录机制呢?
这是因为配置文件中配置了<http auto-config="true"> 这个配置会默认配置一个叫DefaultLoginPageGeneratingFilter的过滤器,系统检测到没有自定义登陆页时,过滤器就会默认跳到默认登陆页,但当我们配置了<form-login login-page="/login.jsp">这个配置时,那么就会覆盖掉原来的默认配置,所以自定义登录页就生效了。
2、自定义退出
因为配置文件中配置了<http auto-config="true"> ,所以如果没有特别去定义的话,所有的配置都按照默认配置去做。security也默认配置了退出的url:j_spring_security_logout,过滤器链中的logoutFilter会默认去匹配这个url,然后执行退出。当然,由于每个应用都不同,退出的方式及其退出前的操作也不同,所以security提供了一个标签让开发者自定义退出功能。
自定义退出的步骤:
1、在配置文件里,配置一句:<logout invalidate-session="true" logout-success-url="logoutsuccess.jsp" logout-url="/logout">,如果按照这句配置,执行退出功能时,会有以下三个效果:
一、使得当前http session 失效(如果invalidate-session值为true)
二、清除securityContext(真正退出)
三、将页面重定向到ogout-success-url指定的url
- 用自定义的队列实现一些基本功能
- 从零构建 vue2 + vue-router + vuex 开发环境到入门,实现基本的登录退出功能
- 关于通过发送广播实现当前账号退出登录功能时需要注意的一些
- 利用信鸽推送实现Android登录后强制退出的功能(单点登录)
- J2EE系列之Struts2学习笔记(十三)--自定义拦截器示例之登录功能实现
- [置顶] Android中一些基本功能的实现
- 案例10-用户登录基本功能的实现
- Django用自定义cookies 实现登录,注册,退出
- Yii框架实现的验证码、登录及退出功能示例
- python学习之路之案例0(实现登录功能,登录错误次数超过3次,自动退出登录)
- ASP.NET MVC4.0 登录、退出功能的简单实现
- 案例11-自动登录功能的基本实现
- 【Rails学习笔记】登录和退出功能实现
- 利用信鸽推送实现Android登录后强制退出的功能(单点登录)
- JavaScript HTML5 手机版手机版网站起码要实现一些基本的功能吧:
- 利用信鸽推送实现登录后强制退出的功能
- ThinkPHP实现登录退出功能
- 09 实现Django自带的注册\登录\退出登录(表单)功能
- andriod 自定义来电界面功能实现的一些思考
- 利用.Text的公告功能来实现一些自定义功能