认证策略
使用最多的认证策略是 AtLeastOneSuccessfulStrategy:在有多个realm的情况下,只要有一个 Realm 验证成功即可,将返回认证成功的realm信息;
AllSuccessfulStrategy:所有Realm验证成功才返回,且返回所有Realm身份验证成功的认证信息,如果有一个失败就失败了;
FirstSuccessfulStrategy:只要有一个Realm验证成功即可,只返回第一个Realm 身份验证成功的认证信息,其他的忽略;
修改认证策略:
在org.apache.shiro.authc.pam.ModularRealmAuthenticator bean中添加 authenticationStrategy 属性:
<bean id="authenticator" class="org.apache.shiro.authc.pam.ModularRealmAuthenticator">
<property name="realms">
<list>
<ref bean="jdbcRealm"/>
<ref bean="secondRealm"/>
</list>
</property>
<property name="authenticationStrategy">
<bean class="org.apache.shiro.authc.pam.AllSuccessfulStrategy"></bean>
</property>
</bean>
授权
访问控制,即在应用中控制谁访问哪些资源;
**主体:**访问应用的用户;
**资源:**在应用中用户可以访问的URL;
**权限:**应用中能否访问某个资源;
**角色:**权限的集合;
编程式:
注解式:
JSP/GSP标签:
1)、anon 可以被匿名访问
2)、必须认证(即登录)后才能访问的页面
3).logout 表示登出的过滤器
4).roles 有对应权限的才能访问相应资源(可以用来分开管理员与普通用户的访问权限)
Permissions:
实例级访问控制
通常使用三个部件:域、操作、被付诸实施的实例。e.g.:user:edit:manager