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