一次spring-security利用经历

[复制链接]
发表于 2024-11-29 02:26:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
         一个赛事记分项目是个单体应用,包括后台管理和平凡参赛人员两种角色。显然,后台管理人员是固定的,而参赛人员每个赛事是不一样的,要求后台管理人员和参赛人员都可以登录系统并操作差别的功能
          很显着这是两种角色,每种角色须要利用差别的登录方式,而且每个角色的用户保存在差别的表中。此中管理员利用用户名密码登录,参赛人员利用队员配对登录方式。
        系统利用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企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表