Apache shiro(3)-认证过程
认证过程
认证过程也就是对用户验明正身的过程,即确认用户输入的身份信息是正确的合法的过程。我们先看看这个认证过程的图:这里需要注意的是这里的数据库,不只是说一般意义的数据库。shiro的可以从JDBC、LDAP()、ini文件、cas等数据源取得用户信息。不同的数据源需要用不同的Realm实现。下面是调用shiro登录验证的代码:
<span style="font-family:FangSong_GB2312;font-size:18px;"> <span style="font-family:FangSong_GB2312;"> //将用户信息,构造成Token,我这里是直接写死的 UsernamePasswordToken token=new UsernamePasswordToken("javass","cc"); token.setRememberMe(true); //取得Subject Subject currentUser=SecurityUtils.getSubject(); //调用Subject的login方法,这时候Shiro开始进入自动验证 //中间需要调用自己实现的realm取得用户信息 currentUser.login(token);</span></span>
Realm
Realm是Shiro取得用户数据的类,功能即DAO的功能。Realm类需要用户自己实现,对应不同的数据源要继承不同的Realm。然后,父写其中的两个方法:doGetAuthorizationInfo(取权限信息)、doGetAuthenticationInfo(取得用户信息)。这里需要注意的是,如过是继承自casRealm的话只要实现一个取得权限信息方法就好,用户信息是通过cas传递过来的。shiro的casRealm已经做了接收的处理,当然你自己也可以重写。
SecurtiyManager自动化流程
上面的认证流程图,大概说了认证的流程但是没有涉及到shiro内部的认证流程。内部流程肯定没法画全,只是经过的主要的类。总结:认证过程基本就是这个过程了,使用起来也很方便。只要自己实现一个Realm类就好了。Shiro也可以使用多个Realm作为数据源,访问时会按照你配置的顺序来。这篇就到这里了!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。