Shiro的Realm对象

总体来看,对Shiro的操作,是围绕Realm的对象来进行操作的,Realm提供的是待校验数据的比对值,即安全数据源

1,doGetAuthenticationinfo:获取身份验证相关信息

2,doGetAuthorizationinfo:是用户获取授权信息的,PrincipalCollection 是一个身份集合,可以调用getPrimaryPrincipal等方法得到之前传入的用户名,在根据用户名调用UserService的几口获取用户以及权限的信息

3,AuthenticationToken:接口用于收集用户提交的身份信息

public interface AuthenticationToken extends Serializable {
Object getPrincipal(); //身份
Object getCredentials(); //凭据
}

4,AuthenticationInfo:用来授权和认证

  身份验证信息类,有两个作用

     Realm是AuthenticatingRealm的子类,则提供给AuthenticatingRealm内部使用的CreadentialsMatcher进行凭证的验证(就是进行数据的校验)

     提供给SecutityManager来创建Subject(提供身份信息)

5,PrincipalCollection:用于聚合身份的消息,通过getPrimaryPrincipal等方法获取验证成功的消息

6,AuthorizationInfo是用于集合授权信息的

public interface AuthorizationInfo extends Serializable {
Collection<String> getRoles(); //获取角色字符串信息
Collection<String> getStringPermissions(); //获取权限字符串信息
Collection<Permission> getObjectPermissions(); //获取 Permission 对象信息
}

7,Subject是shiro的核心对象,基本所有的身份验证、授权都是Subject完成的,一般的用法

   7.1,身份信息的获取

Object getPrincipal(); //Primary Principal

PrincipalCollection getPrincipals(); // PrincipalCollection

  7.2,角色/权限授权校验

hasRole*、checkRole*进行角色验证,isPermitted*、checkPermission*等进行权限验证

7.3,身份验证

void login(AuthenticationToken token) throws AuthenticationException;

boolean isAuthenticated();

boolean isRemembered();

7.4,会话

Session getSession();

7.5,退出

void logout();

Subject自己不会实现相应的身份验证/授权等逻辑,而是通过DelegatigSubject委托SecurityManager去实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值