tomcat 集群设置中的身份验证和会话复制

问题描述

我目前有基本的 tomcat 集群设置,Apache httpd 服务器充当负载平衡器(mod_proxy_balancer 模块)

我还启用了粘性会话(在相应的配置文件添加了 addjvmRoute="server1" 和 addjvmRoute="server2")

我在我的网络应用中使用 UAA 进行身份验证。

我能够从 tomcat 的两个并行节点为不同的用户提供服务,但如果其中一个节点出现故障,请求将路由到另一个节点,但这些请求失败并显示错误Access Denied: Insufficient privilages for the user

Tomcat 日志条目 0:0:0:0:0:0:0:1 - - [11/Jul/2021:22:17:02 +0530] "POST /visualization/Query HTTP/1.1" 403 155
httpd 日志条目 10.181.113.122 - - [11/Jul/2021:22:16:32 +0530] "POST /visualization/Query HTTP/2.0" 403 144

我在日志中没有看到任何其他条目

server.xml 中的集群配置

      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
        <Manager className="org.apache.catalina.ha.session.backupmanager"
                            expireSessionsOnShutdown="false"
                            notifyListenersOnReplication="true"/>
        
        <Channel className="org.apache.catalina.tribes.group.GroupChannel">
            <Membership className="org.apache.catalina.tribes.membership.McastService"
                        address="228.0.0.4"
                        port="45564"
                        frequency="500"
                        dropTime="3000"/>

            <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
                <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
            </Sender>
            
            <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                        address="auto"
                        port="4000"
                        autoBind="100"
                        selectorTimeout="5000"
                        maxThreads="6"/>
                    
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
        
            <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessagedispatchInterceptor"/>
        
        </Channel>
        
        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
    
        <Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
    
        <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
        
      </Cluster>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...