Apache Shiro有点问题。
我们将Shiro与JDBC领域结合使用:用户,角色和权限存储在我们的SQL Server数据库中。
我们有一个Java应用程序用作后台,用于插入,更新或删除用户,角色和权限。但是我们需要对Urls过滤器执行相同的操作。
我发现了一些有关它的东西,但是我真的是Shiro的初学者,我听不懂它们,而这些示例经常是servlet和JSP(我们仅使用HTML / CSS / JS,并且使用网页服务)。
是否有人可以解释如何在数据库中而不是在INI文件中存储URL和过滤器?
最佳答案
Shiro使用FilterChainManager接口的默认实现来管理和创建过滤器。您可以创建此接口的自定义实现,以委托给数据库以获取配置信息。有关想法,请参见DefaultFilterChainManager实现。
这些东西在运行时的工作方式如下:
当请求进入servlet容器时,它被ShiroFilter
拦截。
ShiroFilter委托给FilterChainResolver来获取应为任何给定请求执行的FilterChain
。
默认的FilterChainResolver
(PathMatchingFilterChainResolver实现)依次检查请求路径,并使用该路径执行FilterChainManager
查找。
返回解析后的FilterChain,然后由主控ShiroFilter
执行。
您可以将任何所需的FilterChainResolver
插入ShiroFilter
。您可以使用默认的FilterChainResolver
并将其委托给您的自定义FilterChainManager
实例,或者您可以根据需要实现一个(或两个)接口。