shiro中自定义AuthorizingRealm类时,框架底层是什么时候调用此类中的方法呢?
时间: 2024-04-12 10:32:57 浏览: 17
在 Shiro 中,当进行身份认证(Authentication)和授权(Authorization)操作时,框架会在适当的时机调用自定义的 `AuthorizingRealm` 类中的方法。
具体来说,以下是 `AuthorizingRealm` 类中的一些重要方法:
1. `doGetAuthenticationInfo(AuthenticationToken token)`: 在身份认证过程中被调用。该方法用于根据传入的认证令牌(`AuthenticationToken`)获取用户的身份信息(如用户名、密码等),并返回一个 `AuthenticationInfo` 对象,表示用户的认证信息。
2. `doGetAuthorizationInfo(PrincipalCollection principals)`: 在授权过程中被调用。该方法用于根据传入的主体集合(`PrincipalCollection`)获取用户的授权信息(如角色、权限等),并返回一个 `AuthorizationInfo` 对象,表示用户的授权信息。
当 Shiro 需要进行身份认证或授权时,它会根据配置的 Realm 来选择对应的 `AuthorizingRealm` 实例,并调用相应的方法来获取认证信息或授权信息。
在调用过程中,Shiro 会根据传入的参数和配置的 Realm,自动触发相应的方法调用。这些方法会在适当的时机被调用,以完成身份认证和授权操作。
需要注意的是,`AuthorizingRealm` 类是一个抽象类,需要自定义实现并注册到 Shiro 的配置中。通过自定义 `AuthorizingRealm` 类,你可以根据业务需求来实现身份认证和授权的逻辑,以便 Shiro 在需要时调用相应的方法。