shiro验证注解

1 篇文章 0 订阅

@RequiresAuthentication

验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时。

@RequiresUser

验证用户是否被记忆,user有两种含义:

一种是成功登录的(subject.isAuthenticated() 结果为true);

另外一种是被记忆的(subject.isRemembered()结果为true)。

@RequiresGuest

验证是否是一个guest的请求,与@RequiresUser完全相反。

换言之,RequiresUser == !RequiresGuest。

此时subject.getPrincipal() 结果为null.

@RequiresRoles

例如:@RequiresRoles(“aRoleName”);

void someMethod();

如果subject中有aRoleName角色才可以访问方法someMethod。可传入多个角色,logical默认为Logical.AND,如果没有这个权限则会抛出异常AuthorizationException。

@RequiresPermissions

例如: @RequiresPermissions({“file:read”, “write:aFile.txt”} )
void someMethod();

logical默认为Logical.AND,要求subject中必须同时含有file:read和write:aFile.txt的权限才能执行方法someMethod()。否则抛出异常AuthorizationException。

举个小栗子:

Controller类:

@RequestMapping("/list")
@RequiresPermissions("sys:user:list")
public Result list(@RequestParam Map<String, Object> params){
	//do something
}

授权类,继承 AuthorizingRealm:

/**
 * 授权验证
 */
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
    User user = (User)principals.getPrimaryPrincipal();
    Long userId = user.getUserId();

    //用户权限列表,自己进行查询
    Set<String> permsSet = shiroService.getUserPermissions(userId);

    SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
    info.setStringPermissions(permsSet);
    return info;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shiro 是一个强大的 Java 安全框架,用于身份验证、授权和加密等安全相关的操作。下面是 Shiro 验证的基本流程: 1. 配置 Shiro:首先,需要在项目中配置 Shiro。这包括定义 Shiro 的配置文件(shiro.ini 或 shiro.yml)和创建 Shiro 的主体(Subject)。 2. 获取当前用户的身份认证信息:在进行身份认证之前,需要获取当前用户的身份认证信息。这可以通过 Subject 对象来实现。 3. 提交身份认证请求:使用获取到的身份认证信息,通过调用 Subject 的 login(AuthenticationToken) 方法来提交身份认证请求。 4. 创建自定义的 AuthenticationToken 对象:身份认证请求需要一个 AuthenticationToken 对象,用于封装用户提交的身份信息。开发者可以自定义 AuthenticationToken,根据项目的需求来实现。 5. 执行身份认证:Shiro 将使用配置文件中定义的 Realm 来执行身份认证操作。Realm 是 Shiro 的核心组件,用于验证用户的身份和权限。在 Realm 中,可以通过重写 doGetAuthenticationInfo(AuthenticationToken) 方法来实现具体的身份认证逻辑。 6. 处理身份认证结果:根据身份认证的结果,Shiro 会返回一个 AuthenticationInfo 对象。如果身份认证成功,AuthenticationInfo 对象将包含用户的身份信息;如果身份认证失败,将抛出相应的异常。 7. 进行授权操作(可选):身份认证成功后,可以进行授权操作,即验证用户是否有权限执行某些操作。授权可以通过 Shiro注解或编程方式来实现。 以上就是 Shiro 验证的基本流程。根据具体的业务需求,可以进行进一步的配置和定制化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值