Apache Shiro有点问题。
我们将Shiro与JDBC领域结合使用:用户,角色和权限存储在我们的SQL Server数据库中。
我们有一个Java应用程序用作后台,用于插入,更新或删除用户,角色和权限。但是我们需要对Urls过滤器执行相同的操作。

我发现了一些有关它的东西,但是我真的是Shiro的初学者,我听不懂它们,而这些示例经常是servlet和JSP(我们仅使用HTML / CSS / JS,并且使用网页服务)。

是否有人可以解释如何在数据库中而不是在INI文件中存储URL和过滤器?

最佳答案

Shiro使用FilterChainManager接口的默认实现来管理和创建过滤器。您可以创建此接口的自定义实现,以委托给数据库以获取配置信息。有关想法,请参见DefaultFilterChainManager实现。

这些东西在运行时的工作方式如下:


当请求进入servlet容器时,它被ShiroFilter拦截。
ShiroFilter委托给FilterChainResolver来获取应为任何给定请求执行的FilterChain
默认的FilterChainResolverPathMatchingFilterChainResolver实现)依次检查请求路径,并使用该路径执行FilterChainManager查找。
返回解析后的FilterChain,然后由主控ShiroFilter执行。


您可以将任何所需的FilterChainResolver插入ShiroFilter。您可以使用默认的FilterChainResolver并将其委托给您的自定义FilterChainManager实例,或者您可以根据需要实现一个(或两个)接口。

10-07 15:13