gpt4 book ai didi

javascript - 在 angular js 应用程序的 tomcat 访问日志中获取 session ID

转载 作者:数据小太阳 更新时间:2023-10-29 04:20:12 25 4
gpt4 key购买 nike

我们正在尝试使用 server.xml 中的 '%S' 在访问日志中打印 session ID。该应用程序使用 Angular js 开发。

但是它会打印 "-" 而不是 session ID。

server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="sessionId=%S host=%h %l %u %t &quot;%r&quot; %s %b" />

访问日志:

sessionId=- host=127.0.0.1 - - [12/May/2017:13:44:32 +0100] "GET /application/img/sort-icn-down.png HTTP/1.1" 200 1114

angular js 应用程序是否自动创建 session ID?

最佳答案

Session ID 仅在您的服务器端应用程序创建 session ID 时才会显示,这取决于您使用的框架...例如,如果请求中没有 Session ID,Spring MVC 总是会创建一个新的 Session ID .

让我展示一个我用 Spring MVC 项目和 Tomcat 做的简单测试:

考虑我的 server.xml 中的以下片段

<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b session-id %S" />

考虑到我在第一次访问打开图像时没有任何 cookie:

127.0.0.1 - - [26/Jun/2017:18:40:53 -0300] "GET /webapp/images/login.png HTTP/1.1" 200 29646 session-id -

因为它是一个没有被 Spring 处理的图像,所以我的服务器不会创建 session ID...再次访问也无济于事

127.0.0.1 - - [26/Jun/2017:18:42:52 -0300] "GET /webapp/images/login.png HTTP/1.1" 304 - session-id -

但是如果我访问一个由 Spring MVC 处理的方法,它将创建一个新 session (而且我无法完全控制 session 的创建)

127.0.0.1 - - [26/Jun/2017:18:45:16 -0300] "GET /webapp/pages/users.json HTTP/1.1" 200 110 session-id 068FCCF5BC04EDEEC830E3E8CDF2CCDB

现在,访问与之前相同的图像,客户端将在请求中发送 session ID,Tomcat 将能够记录它

127.0.0.1 - - [26/Jun/2017:18:48:09 -0300] "GET /webapp/images/login.png HTTP/1.1" 200 29646 session-id 068FCCF5BC04EDEEC830E3E8CDF2CCDB

因此不会为图像、脚本或其他静态资源创建 session ID。但这实际上取决于您的实现或您使用的框架......正如你所知,JSESSIONID 在 Servlet 3.0 specification 中(第 7.1.1 章 cookie,第 55 页)。

关于javascript - 在 angular js 应用程序的 tomcat 访问日志中获取 session ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43939483/

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