UsernamePasswordAuthenticationFilter学习之基础

UsernamePasswordAuthenticationFilter是登陆用户密码验证过滤器,它继承了AbstractAuthenticationProcessingFilter过滤器(真正的Filter),是spring security3的第4个过滤器。

UsernamePasswordAuthenticationFilter有3个表单参数,是我们需要知道的

1、usernameParameter:对应登录时的用户名需要传的参数名称,默认为j_username,比如你输入用户hello,表单提交时是这样的 j_username=hello

2、passwordParameter:对应登录时的密码提交时的参数名称,默认为j_password,比如你输入密码是123123,表单提交是这样的 j_password=123123

3、filterProcessesUrl(放在了AbstractAuthenticationProcessingFilter):表单提交地址,默认为/j_spring_security_check,这个地址才能被UsernamePasswordAuthenticationFilter所截取,进行登录认证。

UsernamePasswordAuthenticationFilter会将表单提交的用户密码以及一些用户的其他信息(比如remoteAddr,seesionId),先放入UsernamePasswordAuthenticationToken中

UsernamePasswordAuthenticationToken继承了AbstractAuthenticationToken,AbstractAuthenticationToken继承了Authentication(Authentication存放用户的所有的认证信息)

UsernamePasswordAuthenticationToken 中有2个参数Object principal(主要的身份认证信息),Object credentials(用于证明principal是正确的信息,比如密码)

在一个带有username和password的权限认证请求中,principal就会被赋值username,credentials就会被赋值password;在使用AuthenticationManager的时候,principal会被赋值更多具有丰富内容的信息,比如被赋值成一个UserDetails对象,credentials可能会被赋值密码类似的东西,比如一个特殊的类吧。

AbstractAuthenticationToken中有3个参数Object details,Collection<GrantedAuthority> authorities,boolean authenticated

1、details:额外的认证信息,比如被赋值用户的IP地址

2、authorities:授权信息,比如被赋值用户的角色信息

3、authenticated :是否被验证通过

上面的5个参数是Authentication(是一个接口)必须的

了解以上信息,对理解用户登陆权限的验证过程有很大帮助

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值