spring security 实现form-login功能
来源:互联网 发布:centos linux 删除软件 编辑:程序博客网 时间:2024/05/21 16:58
一、首先我们知道自定义一个Security的filter的格式为
<custom-filter ref="myFilter" position="FORM_LOGIN_FILTER"/><!-- position 可以换成 befor after-->
其中security过滤的加载顺序如下
其中需要重写的是用户登录filter 也就是 FORM_LOGIN_FITER
二、
然后我们需要自定义一个类,继承AbstractAuthenticationProcessingFilter
public class MySpecialAuthenticationFilter extends AbstractAuthenticationProcessingFilter
三、然后在配置bean
<beans:bean id="myFilter" class="MySpecialAuthenticationFilter"> <beans:property name="authenticationManager" ref="authenticationManager"/> <beans:property name="authenticationSuccessHandler" ref="authenticationSuccessHandler"/> <beans:property name="authenticationFailureHandler" ref="authenticationFailureHandler"/> </beans:bean>
其中authenticationManager的配置如下
<authentication-manager alias="authenticationManager" erase-credentials="false"> <authentication-provider user-service-ref="userDetailsService"/> </authentication-manager>
其中userDetailsService是实现UserDetailsService接口,我们可以自己在里面实现一些用户验证的一些方法
四、增加EntryPoint
<http entry-point-ref="loginUrlAuthenticationEntryPoint"> ... </http><beans:bean id="loginUrlAuthenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint"> <beans:constructor-arg value="/login"/></beans:bean>
这样就是替换了原来的form-login 并且可以方便的实现我们自己的密码验证逻辑
总结:
在spring—security中增加
<http entry-point-ref="loginUrlAuthenticationEntryPoint"> <custom-filter ref="myFilter" position="FORM_LOGIN_FILTER"/> ...</http><beans:bean id="myFilter" class="MySpecialAuthenticationFilter"> <beans:property name="authenticationManager" ref="authenticationManager"/> <beans:property name="authenticationSuccessHandler" ref="authenticationSuccessHandler"/> <beans:property name="authenticationFailureHandler" ref="authenticationFailureHandler"/></beans:bean><beans:bean id="loginUrlAuthenticationEntryPoint" class="org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint"> <beans:constructor-arg value="/login"/></beans:bean><beans:bean id="authenticationSuccessHandler" class="com.netease.urs.web.user.service.api.ChainAuthenticationSuccessHandler"> ...</beans:bean><beans:bean id="authenticationFailureHandler" class="com.netease.urs.web.user.service.api.ChainAuthenticationFailureHandler"> ...</beans:bean><authentication-manager alias="authenticationManager" erase-credentials="false"> <authentication-provider user-service-ref="userDetailsService"/></authentication-manager>
需要增加2个类,第一个是实现了继承AbstractAuthenticationProcessingFilter的MySpecialAuthenticationFilter(xml中对应)
第二个是实现了UserDetailsService接口的userDetailsService(xml中对应)
0 0
- spring security 实现form-login功能
- Spring Security Form Login
- Spring Security form login using database
- Spring Security Custom Login Form Example
- Spring Security Custom Login Form Annotation Example
- Spring Security form login using database
- Spring Security 4 Custom Login Form Example(2)
- spring security的form-login是如何关联dao的
- spring security中如何弹出登录模态框(form login与ajax login并存)
- Spring Security自定义Login
- Spring Security笔记:使用数据库进行用户认证(form login using database)
- spring security起步三:自定义登录配置与form-login属性详解
- spring security起步三:自定义登录配置与form-login属性详解
- spring security起步三:自定义登录配置与form-login属性详解
- Spring Security-- 验证码功能的实现
- spring security实现限制登录次数功能
- Spring Security : limit login attempts example
- Spring Security学习二 - 自定义Login方法
- linux学习-ping和ifcongfig
- Android 5.1 反射法无法获取 framework services.jar 中的类
- ActionBar中的返回键的设置及使用(位于屏幕左上角)
- Android---数据存储SQLite
- 对this 的深入理解
- spring security 实现form-login功能
- OpenSSL多线程互斥锁
- Vijos P1407 古韵之刺绣
- Fragment嵌套Viewpager时报错
- logstash indexer和shipper的配置
- Android-----使用UncaughtExceptionHandler捕获全局异常
- java项目之——坦克大战14
- 从短信url链接跳转到APP
- 51nod 1315 合法整数集