1

我正在尝试将 Pulse Web 应用程序部署到外部 Tomcat。部署时出现此错误。我应该如何解决这个问题?

org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义名为“org.springframework.security.authenticationManager”的bean:您是否忘记在配置中添加一个全局元素(带有子元素)?或者,您可以在 和 元素上使用 authentication-manager-ref 属性。

4

3 回答 3

2

好的。这是固定的。对于同样遇到这种情况的每个人......您必须设置 Spring Profile“pulse.authentication.default”,否则它将不会加载 AuthenticationManager Bean。

总体问题在于 RowStore 的文档,它说这是可选的,而实际上它是必需的。

http://rowstore.docs.snappydata.io/docs/manage_guide/pulse/quickstart.html#topic_795C97B46B9843528961A094EE520782

它在第 4 步说。)配置安全性是可选的,而实际上您必须传递 Spring Profile。此外,再次在“验证 Pulse 用户”部分中,它说这不是必需的。

为了解决这个问题,我必须通过 Spring Profile“pulse.authentication.default”来激活 spring-security.xml 中的 Bean 并正确部署 pulse.war。

SnappyData pulse.war 将来执行此操作的更好方法可能是使用“!pulse.authentication.custom”,只要未配置自定义 AuthenticationManager bean,它将始终加载默认 AuthenticationManager bean。

未来的示例更改以使其真正可选:

<beans:beans profile="!pulse.authentication.custom" >
        <authentication-manager>
            <authentication-provider>
                <user-service>
                    <user name="admin" password="admin" authorities="ROLE_USER" />
                </user-service>
            </authentication-provider>
        </authentication-manager>
    </beans:beans>
于 2016-07-21T17:45:03.237 回答
1

您使用的是哪个版本的 Tomcat?这是关于TC authentication 相同问题的另一个线程。

否则,您可以在“嵌入式​​模式”下尝试 Pulse 吗?

于 2016-07-21T16:09:10.350 回答
0

您使用的是哪个版本的 SnappyData?您需要在 classpath 中提及一个 pulse.properties 文件。有关详细信息,您可以查看http://rowstore.docs.snappydata.io/docs/manage_guide/pulse/quickstart.html#topic_795C97B46B9843528961A094EE520782

如果您有任何问题,请告诉我们。

于 2016-07-21T06:34:36.430 回答