[Shiro]多Realm时,指定登录Realm
之前写过多Realm登录前后台区分问题,实现了当时的需求,可是再下一步的时候,角色与权限校验会失效。为了满足当时的项目需求,又拓展了鉴权源,以及若干功能类。在本人看来,这种方式很Low,玷污了Shiro。
现在有一个较好的方式去实现前后台的认证与鉴权。通过自定义Token类来达到鉴别目的。
Token的介绍
Shiro使用Token作为认证的对象。 在Filter中拦截登录信息创建Token调用登录,或者我们自己在控制器中手动登录。调用登录,会迭代配置的Realm进行验证。
Shiro的FormAuthenticationFilter创建Token
FormAuthenticationFilter中创建Token的方法
最终调用到它的父类AuthenticatingFilter
控制器里手动创建Token登录
Realm的定义
Shiro在进行登录验证时候,会检查Realm是否支持该Token,如果不支持跳过当前Realm,继续下一个Realm。