shiro验证用户和获取权限角色

  • Post author:
  • Post category:其他


这2个方法究竟是在什么时候调用的,记录如下:

shiro 中的AuthorizingRealm有2个方法doGetAuthorizationInfo()和doGetAuthenticationInfo(),一般实际开发中,

我们都继承AuthorizingRealm类然后重写doGetAuthorizationInfo和doGetAuthenticationInfo。

doGetAuthenticationInfo这个方法是在用户登录的时候调用的也就是执行SecurityUtils.getSubject().login()的时候调用;(即:登录验证)

而doGetAuthorizationInfo方法是在我们调用SecurityUtils.getSubject().isPermitted()这个方法时会调用doGetAuthorizationInfo(),

而我们的@RequiresPermissions这个注解起始就是在执行SecurityUtils.getSubject().isPermitted()。

我们在某个方法上加上@RequiresPermissions这个,那么我们访问这个方法的时候,就会自动调用SecurityUtils.getSubject().isPermitted(),从而区调用doGetAuthorizationInfo 匹配



doGetAuthorizationInfo是赋予角色和权限的方法



doGetAuthenticationInfo是认证用户的方法

一般都定义在MyRealm 里面 并且继承AuthorizingRealm接口

package com.java1234.realm;

import java.sql.Connection;

import org.apache.shiro.authc.AuthenticationException;
import org.apache.shiro.authc.AuthenticationInfo;
import org.apache.shiro.authc.AuthenticationToken



版权声明:本文为bigwatermel原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。