因为项目变动,须要把帐号体系转移。也就是帐号验证走的是另一个项目,本身的代码再也不验证帐号;因此须要经过内部接口,把帐号密码提交;因为本身项目自己已经使用shiro作登陆验证;而验证又是根据密码,可是两个项目的密码加密方式不同,因此密码要明文传给接口; 因此如今来讲说shiro中token 与token AuthenticationInfo的关系;数据库
Token:是用户提交给登陆接口;接口解析用户提交的数据生成一个带帐号和密码等信息的token;缓存
AuthenticationInfo:是认证信息;若是启用缓存,认证信息会保存在缓存中; 认证信息通常也是码农的代码实现的,而且信息是根据token的帐号到数据库中取的信息;加密
因此为了保证token与AuthenticationInfo可以验证经过,必须保证token的密码和AuthenticationInfo的密码是同样的;经过数据库中密码是加密过的,因此token的密码也应该用相同的加密方式加密;token
-----------------------------------------------我是分割线-------------------------------------------------接口
shiro的认证和受权:it
认证:在subject.login()中起做用,并调用realm的doGetAuthenticationInfo方法;若是返回成功,那么已经时人证完成,也就是登陆成功;io
受权:须要程序主动检查受权信息。如:subject.isPermitted("xxx"); 这时会触发受权流程,调用realm的doGetAuthorizationInfo方法。若是没有缓存受权信息,那么每次都会触发;登录