认证过程
认证过程也就是对用户验明正身的过程,即确认用户输入的身份信息是正确的合法的过程。我们先看看这个认证过程的图:
就如图上所说,其实这个认证过程,是在Shiro的SecurityManager中自动完成的。我们使用的时候真正做的内容是从用户输入哪里收集用户的身份信息(用户名+密码),交到SecurityManager,而后SecurityManager则根据输入的用户名调用Realm取得数据库中存储的该用户的身份信息。然后验证之……
这里需要注意的是这里的数据库,不只是说一般意义的数据库。shiro的可以从JDBC、LDAP()、ini文件、cas等数据源取得用户信息。不同的数据源需要用不同的Realm实现
UsernamePasswordToken token=new UsernamePasswordToken("javass","cc");
token.setRememberMe(true);
//取得Subject
Subject currentUser=SecurityUtils.getSubject();
//调用Subject的login方法,这时候Shiro开始进入自动验证
//中间需要调用自己实现的realm取得用户信息
currentUser.login(token);
Realm
Realm是Shiro取得用户数据的类,功能即DAO的功能。Realm类需要用户自己实现,对应不同的数据源要继承不同的Realm。然后,父写其中的两个方法:doGetAuthorizationInfo(取权限信息)、doGetAuthenticationInfo(取得用户信息)。