主要概念
身份验证:一般需要提供身份ID等一些标识信息来表明登录者的身份,如提供email,用户名/密码来证明。
在shiro中,用户需要提供principals(身份)和credentials(证明)给shiro,从而应用能验证用户身份。最常见的principals和credentials组合就是用户名/密码了。
principals:身份,即主体的标识属性,可以是任何属性,如用户名、邮箱等,唯一即可。一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/邮箱/手机号。
credentials:证明/凭证,即只有主体知道的安全值,如密码/数字证书等。
身份验证基本流程
1.收集用户身份/凭证,即如用户名/密码。
2.调用Subject.login进行登录,如果失败将得到相应的AuthenticationException异常,根据异常提示用户错误信息,否则登录成功。
3.创建自定义的Realm类,继承org.apache.shiro.realm.AuthorizingRealm类,实现doGetAuthenticationInfo()方法。