shiro Subject接口

public interface Subject{

//@return this Subject's application-specific unique identity.

Object getPrincipal();

//@return all of this Subject's principals (identifying attributes).

PrincipalCollection getPrincipals();

//@return true if this Subject is permitted, false otherwise.

boolean isPermitted(String permission);

//@return true if this Subject is permitted, false otherwise.

boolean isPermitted(Permission permission);

//@return a boolean array where indices correspond to the index of the permissions in the given list. 

boolean[] isPermitted(String... permissions);

boolean[] isPermitted(List<Permission> permissions);

boolean isPermittedAll(String... permissions);

boolean isPermittedAll(Collection<Permission> permissions);

void checkPermission(String permission) throws AuthorizationException;

void checkPermission(Permission permission) throws AuthorizationException;

void checkPermissions(String... permissions) throws AuthorizationException;

void checkPermissions(Collection<Permission> permissions) throws AuthorizationException;

//@return {@code true} if this Subject has the specified role, {@code false} otherwise.

boolean hasRole(String roleIdentifier);

boolean[] hasRoles(List<String> roleIdentifiers);

boolean hasAllRoles(Collection<String> roleIdentifiers);

void checkRole(String roleIdentifier) throws AuthorizationException;

void checkRoles(Collection<String> roleIdentifiers) throws AuthorizationException;

void checkRoles(String... roleIdentifiers) throws AuthorizationException;

void login(AuthenticationToken token) throws AuthenticationException;

boolean isAuthenticated();

boolean isRemembered();

Session getSession();

Session getSession(boolean create);

void logout();

<V> V execute(Callable<V> callable) throws ExecutionException;

void execute(Runnable runnable);

<V> Callable<V> associateWith(Callable<V> callable);

Runnable associateWith(Runnable runnable);

void runAs(PrincipalCollection principals) throws NullPointerException, IllegalStateException;

boolean isRunAs();

PrincipalCollection getPreviousPrincipals();

PrincipalCollection releaseRunAs();

public static class Builder {

....暂时省略

}

}

通过查看Subject的体系结构,

DelegatingSubject是主要的实现类,而这里面的方法主要由SecurityManager接口来完成的。

再看一下SecurityManager接口,继承Authenticator(验证接口,验证账号等),Authorizer(权限验证),SessionManager

主要方法:

Subject login(Subject subject, AuthenticationToken authenticationToken) throws AuthenticationException;

void logout(Subject subject);

Subject createSubject(SubjectContext context);

 

 

先眼熟,有时间再更

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值