java - Spring Boot 安全性与 http 端口 80 不起作用

标签 java spring spring-mvc spring-boot spring-security

我无法在 HTTP 端口 80 上配置 Spring Security 来运行我的 Spring Boot 应用程序。

出现错误。

java.net.SocketException: Permission denied
at sun.nio.ch.Net.bind0(Native Method) ~[na:1.8.0_121]
at sun.nio.ch.Net.bind(Net.java:433) ~[na:1.8.0_121]
at sun.nio.ch.Net.bind(Net.java:425) ~[na:1.8.0_121]
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) ~[na:1.8.0_121]
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) ~[na:1.8.0_121]
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:210) ~[tomcat-embed-core-8.5.14.jar!/:8.5.14]
at org.apache.tomcat.util.net.AbstractEndpoint.start(AbstractEndpoint.java:978) ~[tomcat-embed-core-8.5.14.jar!/:8.5.14]
at org.apache.coyote.AbstractProtocol.start(AbstractProtocol.java:628) ~[tomcat-embed-core-8.5.14.jar!/:8.5.14]
at org.apache.catalina.connector.Connector.startInternal(Connector.java:993) [tomcat-embed-core-8.5.14.jar!/:8.5.14]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.14.jar!/:8.5.14]
at org.apache.catalina.core.StandardService.addConnector(StandardService.java:225) [tomcat-embed-core-8.5.14.jar!/:8.5.14]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.addPreviouslyRemovedConnectors(TomcatEmbeddedServletContainer.java:247) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:190) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) [spring-context-4.3.8.RELEASE.jar!/:4.3.8.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.3.RELEASE.jar!/:1.5.3.RELEASE]
at com.glam.admin.GlamorousyouadminApplication.main(GlamorousyouadminApplication.java:17) [classes!/:Glam-Admin]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_121]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_121]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_121]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_121]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48) [glamorousyouadmin-Glam-Admin.jar:Glam-Admin]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) [glamorousyouadmin-Glam-Admin.jar:Glam-Admin]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50) [glamorousyouadmin-Glam-Admin.jar:Glam-Admin]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51) [glamorousyouadmin-Glam-Admin.jar:Glam-Admin]

2017-05-10 21:58:20.350 错误 7903 --- [ main] o.apache.catalina.core.StandardService :无法启动连接器 [Connector[HTTP/1.1-80]]

最佳答案

在 U/LINUX 系统上,您不允许以非 root 用户身份打开 < 1024 的端口。 您可以以 root 身份运行您的应用程序(我不推荐这样做),或者在您的应用程序前面放置一些东西作为代理(例如 Apache)。

此外,我认为您可以添加一些 iptable 规则,将流量从 80 重定向到应用程序的端口,但我不会这样做。

关于java - Spring Boot 安全性与 http 端口 80 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43898309/

相关文章:

java - 当使用 lambda 表达式而不是匿名内部类时,Spring 无法确定泛型类型

java - Hibernate Entitymanager - "deprecated - use hibernate-core instead"是什么意思?

spring-mvc - Spring MVC @ExceptionHandler 链接

java - 递归树怎么画

java - 在 GWT 中使用配置文件服务器端

java - 为什么 Eclipse 看不到库的 .jar 文件?

java - 相当于 Spring MVC 中请求的 @JsonIgnore

java - JSTL 变量未显示

java - 如何使用 Spring MVC JSR-303 Validator 将不同的模型类验证为一种形式

java - Maven 依赖树不同于 M2E 的依赖层次结构