在 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()' 方法进行权限控制。

Shiro 框架中 ShiroUserRealm 如何被 SecurityManager 调用?

原文地址: https://www.cveoy.top/t/topic/oraj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录