Open TestLove opened 3 years ago
过滤器UsernamePasswordFilter最后还是走到了那个继承了UserDetailService中loadByUsername方法中,去查数据库,你一步步跟进去可以看到。
过滤器UsernamePasswordFilter最后还是走到了那个继承了UserDetailService中loadByUsername方法中,去查数据库,你一步步跟进去可以看到。
或许我表述的不太清楚,的确最后都调用了loadByUsername方法,可我的意思是进入认证的入口不应该是在Filter(图中绿色)中吗?但demo中却是在请求已经被分发到了相应的controller层方法(图中最右)后才开始进行认证
过滤器UsernamePasswordFilter最后还是走到了那个继承了UserDetailService中loadByUsername方法中,去查数据库,你一步步跟进去可以看到。
或许我表述的不太清楚,的确最后都调用了loadByUsername方法,可我的意思是进入认证的入口不应该是在Filter(图中绿色)中吗?但demo中却是在请求已经被分发到了相应的controller层方法(图中最右)后才开始进行认证
但是默认实现查数据那部分代码应该也是业务代码了吧,loadByUsername应该是在业务类里面。你还是进入到里面了。 这些拦截器我记得只要有一个可以拦截就可以了,你自己可以实现怎么去拦截,就算你一个拦截器都没过,也会有个默认的匿名拦截器,去拦截,然后处理token,最后都是会那个usernamepasswordtoken上。
我看您的代码,第一次登录时是在controller层对于密码和用户名进行检查.但是在SpringSecurity中似乎是通过过滤器去验证UsernamePasswordToken成功之后才到达controller层执行之后的请求.这样的话SpringSecurity的作用似乎就体现不出来了