gpt4 book ai didi

java - 从 HippoCMS 中的 ServletFilter 访问 ChannelInfo 和 ResourceBundle

转载 作者:行者123 更新时间:2023-12-01 11:19:02 27 4
gpt4 key购买 nike

我将所有应用程序属性和配置放入 hippo 资源包中,并(基于 channel )放入 channel 设置 (ChannelInfo) 中。

有什么方法可以从 ServletFilter 访问 channel 配置和 hippo 资源包吗?

我正在使用 SpringSecurityFilter 并且我需要访问这些配置项。

问候

编辑在 HsTDelegateeFilterBean#doFilter 中,当前的 hstRequestContext 被放入 ServletRequest(作为属性),但不幸的是,它在执行 doFilter 方法后被删除。

最佳答案

您可以从 ResourceBundleUtils.java [1] 复制一些代码。例如,

ResourceBundleRegistry resourceBundleRegistry = HstServices.getComponentManager().getComponent(ResourceBundleRegistry.class.getName());
String basename = "com.example.Messages";
ResourceBundle bundle = resourceBundleRegistry.getBundle(basename));

如果您想在 Spring Security 过滤器中获取它,这对于您的用例来说已经足够了。您正在直接访问上面的 HST 容器的单例组件。

我认为你的最后一个问题是一个不同的主题,但 HstRequestContext 实例的生命周期基本上在请求范围内。因此您将无法存储它以供以后使用。另外,Spring Security 过滤器应该位于 HstFitler 之前。这意味着您无论如何都无法访问 HstRequestContext 实例,因为它是由 HstFilter 创建的。如果您希望在其他用例中使用 servlet 或 servlet 过滤器在 HstFilter 之后访问 HstRequestContext,您可能需要查看 [2]。

[1] http://svn.onehippo.org/repos/hippo/hippo-cms7/site-toolkit/trunk/commons/src/main/java/org/hippoecm/hst/resourcebundle/ResourceBundleUtils.java[2]http://www.onehippo.org/library/concepts/integration/hst-container-integration-with-other-web-application-frameworks.html

关于java - 从 HippoCMS 中的 ServletFilter 访问 ChannelInfo 和 ResourceBundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31469672/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com