Shiro 框架中 ShiroUserRealm 如何被 SecurityManager 调用?
在 Shiro 框架中,SecurityManager 是安全管理组件,它是整个框架的核心。在使用 Shiro 框架时,我们需要将自定义的 'ShiroUserRealm' 实现类交给 SecurityManager 管理,以便在认证和授权时被调用。
具体来说,我们需要在 Spring 配置文件中定义一个 SecurityManager 的 bean,并将 'ShiroUserRealm' 实现类作为参数传递给它。例如:
<bean id='securityManager' class='org.apache.shiro.mgt.DefaultSecurityManager'>
<property name='realm' ref='shiroUserRealm'/>
</bean>
<bean id='shiroUserRealm' class='com.example.ShiroUserRealm'/>
在上面的配置中,我们将 'DefaultSecurityManager' 作为 SecurityManager 的实现类,并将 'ShiroUserRealm' 实现类作为其 'realm' 属性的值,以便在认证和授权时被调用。
当我们在代码中使用 Shiro 框架进行认证和授权时,SecurityManager 会自动调用 'ShiroUserRealm' 实现类中的方法进行处理。例如,当我们调用 'Subject.login()' 方法进行认证时,SecurityManager 会自动调用 'ShiroUserRealm' 实现类中的 'doGetAuthenticationInfo()' 方法进行用户认证。同样地,当我们调用 'Subject.checkPermission()' 方法进行授权时,SecurityManager 会自动调用 'ShiroUserRealm' 实现类中的 'doGetAuthorizationInfo()' 方法进行权限控制。
原文地址: https://www.cveoy.top/t/topic/oraj 著作权归作者所有。请勿转载和采集!