一次spring-security利用经历

打印 上一主题 下一主题

主题 859|帖子 859|积分 2577

         一个赛事记分项目是个单体应用,包括后台管理和平凡参赛人员两种角色。显然,后台管理人员是固定的,而参赛人员每个赛事是不一样的,要求后台管理人员和参赛人员都可以登录系统并操作差别的功能。
          很显着这是两种角色,每种角色须要利用差别的登录方式,而且每个角色的用户保存在差别的表中。此中管理员利用用户名密码登录,参赛人员利用队员配对登录方式。
        系统利用spring-security作为安全框架,但是把login写到controller里,而非利用UsernamePasswordAuthenticationFilter。为了拦截UsernamePasswordAuthenticationFilter,在它前面添加了自定义Filter

。在自定义Filter中实现获取用户信息功能。在设置类中设置AuthenticationManager,支持多个验证provider。

        在登录controller中分别实现两个登录接口,通过创建差别的AbstractAuthenticationToken实现类,spring-security框架自动找到相关的AuthenticationProvider并调用验证方法authenticate。

此中supports方法用来选择支持相应AbstractAuthenticationToken的AuthenticationProvider。
        总体流程是:登录接口调用登录方法->登录方法创建对应AbstractAuthenticationToken实现类,并调用AuthenticationManager.authenticate方法->AuthenticationManager根据token类型找到AuthenticationProvider->调用AuthenticationProvider.authenticate方法实行用户验证。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表