gpt4 book ai didi

java - 如何将 http session 的角色传递给 websocket?

转载 作者:行者123 更新时间:2023-11-28 22:03:25 25 4
gpt4 key购买 nike

在我的情况下 (tomcat) 我使用 tomcat-users.xml 来管理用户和角色之间的链接

<tomcat-users>
<role rolename="role1"/>
<role rolename="role2"/>
<user password="tomcat" roles="tomcat" username="tomcat"/>
<user password="123456" roles="role1,role2" username="user1"/>
</tomcat-users>

web.xml 是这样配置的:

<listener>
<listener-class>com.WebSocketServletListener</listener-class>
</listener>
<security-constraint>
<display-name>Tomcat Server Configuration Security Constraint</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/application.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>role1</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Cloud Authentication</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>

与应用程序的连接有两个步骤:

  1. 我通过“login.jsp”登录我的应用程序,并引用我的应用程序“application.jsp”的单个页面。在 application.jsp 中,我可以知道与 request.isUserInRole("role1"); 相关联的用户的角色

  2. application.jsp 打开一个与服务器的 WebSocket,webSocket 创建一个 session.java。所有通信都将通过 WebSocket 完成。问题出在 webSocket 的上下文中我不知道我的用户的角色。

恢复 webSocket session 中所有用户信息的最佳方法是什么?

最佳答案

WebSockets 连接以正常的 HTTP 请求/响应开始,因此您应该能够像往常一样从中收集所有相关的用户详细信息。

关于java - 如何将 http session 的角色传递给 websocket?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13647431/

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