问题标签 [embedded-tomcat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-boot - Spring boot 2.4.5 security + devtools + vaadin 嵌入式tomcat无法反序列化会话属性
我有一个带有安全性、devtools、vaadin 和嵌入式 tomcat 的 Spring Boot 应用程序。
我已经根据本指南配置了 Spring 安全性:VAADIN-securering-your-app-with-spring-security它运行良好,我可以登录......等等,但是当我改变一些东西并且我想重新加载时,服务器重新启动,但无法反序列化持久会话,并提示我再次登录。
反序列化错误是指 org.springframework.security.authentication.UsernamePasswordAuthenticationToken 的主体字段,在我的例子中是 String。
请参阅下面的详细信息。
构建.gradle:
应用程序属性:
身份验证提供者:
错误:
无法反序列化会话属性 [com.vaadin.flow.server.VaadinSession.springServlet]
java.io.InvalidClassException: org.springframework.security.authentication.UsernamePasswordAuthenticationToken; java.io.ObjectStreamClass.readNonProxy(ObjectStreamClass.java:807) 的字段主体的无效描述符 ~[na:1.8.0_202] 在 java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:891) ~[na:1.8.0_202 ] 在 java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1857) ~[na:1.8.0_202] 在 java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751) ~[na:1.8.0_202] 在 java. io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042) ~[na:1.8.0_202] at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573) ~[na:1.8.0_202] at java.io.ObjectInputStream。 defaultReadFields(ObjectInputStream.java:2287) ~[na:1.8.0_202] at java.io.ObjectInputStream.readSerialData(ObjectInputStream.
java - 从浏览器发送后 Http Request-Header 更改
我的Java 后端有一个REST API(带有嵌入式 tomcat 的 spring-boot-starter-jersey)和一个带有 nodejs的反应前端。突然,当我从浏览器(firefox 或 chrome)发送请求时,请求标头属性从更改为. 它只发生在我的本地机器上。当我用 Postman 测试它时,一切正常。问题是,响应中的 cookie没有保存,因为响应头是 . 有谁知道出了什么问题或我能做什么?
Connection:
keep-alive
close
JSESSIONID
connection: close
感谢您的任何帮助!!
编辑:
我已经尝试过:
- 火狐
- 铬合金
- 铬
- 在我的本地机器上运行后端和前端,并用我的手机测试 Web 应用程序
- 热点(测试其他网络)
- 飞行模式
- 重新安装 nodejs 和 npm
- 与wireshark和fiddler一起玩
这是我来自wireshark的请求标头:
这里是我的后端日志:
我不知道什么可以将标头属性更改为close
...
spring-boot - 使用 Waffle Spring boot + Spring Security 和嵌入式 tomcat 获取 Angular
我正在使用这个例子来了解更多关于华夫饼的信息:
https://github.com/Waffle/waffle/tree/master/Source/JNA/waffle-demo/waffle-spring-boot-filter2
我很高兴,因为在这个例子中一切都很好。但是在这个 spring boot 项目中添加一个静态 HTML 文档并在我的浏览器中启动这个 html 页面会导致错误:
我想这取决于我的弹簧安全过滤器的配置。有没有人有一个示例华夫饼,带有嵌入式 Tomcat 的弹簧启动,它适用于 html 或 angular?
提前非常感谢!
java - 如何在spring boot嵌入式tomcat中设置上下文根路径?
我想添加我自己的应用程序名称作为前缀。示例:http://localhost:8084/MyApp/some-url。但是当我点击某个链接(href)时,它会将我重定向到 http://localhost:8084/some-url。我还在属性文件中添加了 server.servlet.context-path=/MyApp 。注意:我使用的是 spring boot 2.5.4v 和嵌入式 tomcat 9.0.53v
tomcat - 如何在嵌入式 tomcat 中使用 digest.sh
我知道它$CATALINE_HOME/bin/digest.sh
用于生成可以使用的散列密码,tomcat_users.xml
但是如何实现与在项目中使用嵌入式 tomcat 相同的行为,因为它没有bin/digest.sh
?
更新:
我发现RealmBase.java
tomcat 的方法digest()
与 digest.sh 的方法等效,但是,自从 tomcat 9 以来,它已被弃用,我使用的是 tomcat 9。有人知道这种方法的新实现是什么吗?
spring-boot - 嵌入式tomcat自定义setBackgroundProcessorDelay不起作用
我正在使用带有 JSR-356 的 spring websocket。我的问题是嵌入式tomcat检查过期连接但没有在要求的间隔时间内完成。tomcat BackgroundProcessorDelay 为 10 秒。我必须分配 1 秒我怎么做才能有人帮助我。(注意 factory.setPort(8083); 正在工作但 factory.setBackgroundProcessorDelay(1); 不工作)和我的问题 参考
我的 pom xml
我的应用程序属性
java - 嵌入式 Tomcat 的 Context.docBase 是否存在安全问题?
创建 时org.apache.catalina.Context
,您需要指定“docBase”参数。docBase 应该是一个现有目录。如果它不是现有的、可访问的目录,则上下文创建失败。
java doc将此参数描述为“上下文的基本目录,用于静态文件。必须存在,相对于服务器主目录”。Tomcat 对那个目录做了什么?它可能会从该位置提供文件吗?如果我不想提供静态文件,该参数的最安全值是多少?
例如,在我可以编写的最简单的嵌入式 Tomcat 服务器中,File(".").getAbsolutePath()
恶意客户端是否有可能使用该参数从当前目录中检索文件?
prometheus - 如何在 Spring Boot 2.1.3 中启用 tomcat servlet 指标
我正在尝试使用嵌入式 tomcat 监控 Spring Boot 2.1.3 中的执行器指标,但这些指标不包括 tomcat.servlet.* 和 tomcat.cache.* 指标。
当前可用的指标如下
{"names":["logback.events","tomcat.sessions.expired","jvm.memory.committed","jvm.buffer.memory.used","jvm.memory.max","jvm.threads .live","jvm.threads.peak","jvm.threads.states","jvm.memory.used","process.uptime","tomcat.global.sent","tomcat.sessions.rejected", "process.cpu.usage","tomcat.global.request.max","jdbc.connections.active","tomcat.global.request","jvm.classes.loaded","jvm.classes.unloaded", "tomcat.sessions.active.current","hikaricp.connections.idle","tomcat.global.received","tomcat.sessions.alive.max","jvm.gc.live.data.size","jdbc .connections.max","jdbc.connections.min","hikaricp.connections.pending","method.timed","http.server.requests","hikaricp.connections","process.files.open","hikaricp.connections.active","hikaricp.connections.creation" ,"tomcat.threads.config.max","tomcat.sessions.active.max","tomcat.global.error","process.start.time","jvm.buffer.count","hikaricp.connections. max","hikaricp.connections.min","tomcat.threads.current","jvm.buffer.total.capacity","process.files.max","jvm.gc.memory.promoted","hikaricp. connections.usage","system.load.average.1m","jvm.gc.max.data.size","gauge.UserController.getUser.executionTime.seconds","hikaricp.connections.timeout","tomcat.线程。忙","system.cpu.count","hikaricp.connections.acquire","jvm.gc.pause","tomcat.sessions.created","jvm.threads.daemon","system.cpu.usage" "jvm.gc.memory.allocated"]}
是否需要在 spring 中设置任何属性,以便公开所有 tomcat 指标。我已经尝试过 managemet.metrics.enable.tomcat=true 但它不起作用。
依赖项是:
spring - 多部分文件上传 Springboot 的内部魔法
我花了很多时间来了解 Spring Boot 中多部分文件上传的内部工作。没能拍到清晰的图。
对spring boottmp
目录的作用有点困惑。我有一个名为的 tmp 目录/tmp/tomcat.4296537502689403143.8587/work/Tomcat/localhost/ROOT]
我tmp
在文件上传期间检查了目录,无法在此处写入任何内容。如果我删除该文件夹,它将引发多部分错误。
谁能解释文件上传的内部工作和tmp
目录的作用。
java - 嵌入式 Tomcat 9 中的 JSTL
我正在使用嵌入式 Tomcat 9。这是我的 pom.xml:
当我运行我的应用程序时,我收到此错误:
绝对 uri:[http://java.sun.com/jsp/jstl/core] 无法在 web.xml 或随此应用程序部署的 jar 文件中解析
当我不使用嵌入式 Tomcat 运行它时,只是将战争直接放在 Tomcat 9 中的 webApp 下,它运行良好。
当然,我需要使用嵌入式 Tomcat。我怎样才能让它工作?