2013-01-22 57 views
1

我们必须与Apache四郎一个小问题。 我们使用Shiro和JDBC领域:用户,角色和权限存储在我们的SQL服务器数据库中。 我们有一个Java应用程序用作后台来插入,更新或删除用户,角色和权限。但是我们需要对Urls过滤器进行相同的操作。网址数据库

我发现了一些关于它的事情,但我真的是Shiro的初学者,我不理解他们,而且经常,这些示例是servlet和JSP(我们只使用HTML/CSS/JS和数据通过网络服务收集)。

是任何人都可以解释如何摆放的URL和过滤数据库中,而不是在INI文件?

回答

1

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

这里的这个东西是如何工作的在运行时:

  1. 当一个请求进入servlet容器,它是由ShiroFilter截获。
  2. 的ShiroFilter委托给FilterChainResolver收购应该执行任何特定请求的FilterChain
  3. 默认FilterChainResolver又一个实施PathMatchingFilterChainResolver检查请求路径,并使用该与FilterChainManager执行查找。
  4. 的解决FilterChain返回,然后由主ShiroFilter执行。

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

+0

好的。这对我来说很难,但我会观看它,并可能寻找示例。 – AxelF

+0

我怎么能自定义'FilterChainResolver'插件到'ShiroFilter'? –