Apache Shiro 使用手册(2)Shiro 认证
Apache Shiro 使用手册(二)Shiro 认证认证就是验证用户身份的过程。在认证过程中,用户需要提交实体信息(Pri
Apache Shiro 使用手册(二)Shiro 认证
认证就是验证用户身份的过程。在认证过程中,用户需要提交实体信息(Principals)和凭据信息(Credentials)以检验用户是否合法。最常见的“实体/凭证”组合便是“用户名/密码”组合。
一、Shiro认证过程
1、收集实体/凭据信息
如上图,我们通过Shiro架构图的认证部分,来说明Shiro认证内部的处理顺序:
1、应用程序构建了一个终端用户认证信息的AuthenticationToken 实例后,调用Subject.login方法。
2、Sbuject的实例通常是DelegatingSubject类(或子类)的实例对象,在认证开始时,会委托应用程序设置的securityManager实例调用securityManager.login(token)方法。
3、SecurityManager接受到token(令牌)信息后会委托内置的Authenticator的实例(通常都是ModularRealmAuthenticator类的实例)调用authenticator.authenticate(token). ModularRealmAuthenticator在认证过程中会对设置的一个或多个Realm实例进行适配,它实际上为Shiro提供了一个可拔插的认证机制。
4、如果在应用程序中配置了多个Realm,ModularRealmAuthenticator会根据配置的AuthenticationStrategy(认证策略)来进行多Realm的认证过程。在Realm被调用后,AuthenticationStrategy将对每一个Realm的结果作出响应。
注:如果应用程序中仅配置了一个Realm,Realm将被直接调用而无需再配置认证策略。
5、判断每一个Realm是否支持提交的token,如果支持,Realm将调用getAuthenticationInfo(token); getAuthenticationInfo 方法就是实际认证处理,我们通过覆盖Realm的doGetAuthenticationInfo方法来编写我们自定义的认证处理。
四、使用多个Realm的处理机制:1、Authenticator默认实现是ModularRealmAuthenticator,它既支持单一Realm也支持多个Realm。如果仅配置了一个Realm,ModularRealmAuthenticator 会直接调用该Realm处理认证信息,如果配置了多个Realm,它会根据认证策略来适配Realm,找到合适的Realm执行认证信息。
自定义Authenticator的配置:
羡慕嫉妒恨吧。不过我是顶你的了 7 楼 solomon 2012-03-09 有没有一个实例,包括从前端到后台数据库配置的。 8 楼 holysky 2012-03-28 看springside 的mini -web就可以了! 9 楼 jarorwar 2012-03-29 holysky 写道看springside 的mini -web就可以了!
spring-side的mini-web你跑通了? 10 楼 wenjinglian 2012-06-02 jarorwar 写道holysky 写道看springside 的mini -web就可以了!
spring-side的mini-web你跑通了?
可以跑通