登陆思路整理:
没有shiro的条件下,用户提交登陆form后,希望进入目标URL,在刚开发时,登陆提交的URL是 /user/getUserInfo,这个URL是验证登陆信息然后获取用户信息并跳转到用户信息页面。然而,配置shiro后,登陆的url的配置地址XML中,写的是/user/login,虽然在controller中存在这个URL。于是,shiro在接收到form请求后,没有进入realm,直接跳转到/user/login。因为实际提交的地址是/user/getUserInfo,这个地址没有认证成功过,所以一直跳转到/user/login。
正确的做法是:把提交的地址改成/user/login。这样shiro才会进入realm。
在没有shiro的情况下,应该也是把登陆的form地址写成/user/login,这样才合理。
现在有了shiro认证,在处理login的函数中,应该这样做,第一,可以通过realm处理后的信息,得到相关认证信息。第二,对于realm认证失败的后续处理
-------------------------------------------------------------------------
在页面开发登陆时,在form中写好登陆的地址,这个地址需要和shiro配置的登陆地址一致。
页面开始访问时,shiro会根据URL地址,判断是不是已经登陆,如果没有登陆,跳转到已经定义好的登陆URL,但是,不管是不是已经登陆过,shiro都不会主动去realm验证,
根据测试结果,当url为shiro配置的登陆url时,才会开始进行realm验证,要不然,是不会进入到realm中的
这里特别强调,在使用shiro时,访问任何的url都需要精确写清楚,没有什么URL是乱写的