【发布时间】:2018-11-01 08:48:11
【问题描述】:
我使用的是 Spring Boot 版本(2.0.1),我遇到了安全问题,所以当我尝试使用这样的 ajax 发出请求时:
$.ajax({
url : "http://localhost:8080/utilisateurs/addUser",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
type : "POST",
data : user,
dataType : "application/json"
}
我收到一个 HTTP 错误 403,我知道这个错误的含义(用户可以登录服务器但没有正确的权限)但问题是我没有使用任何安全模块是我的依赖 pom.xml 文件:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-hal-browser</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
那么谁可以阻止请求,spring boot中有没有内部模块如何启用安全性, 见my previous post
提前谢谢你。
【问题讨论】:
-
该脚本在哪里?它是否来自您的应用程序?
-
谢谢@MarkoPacak,是的,如果你看到我以前的帖子,你会看到网络服务的代码。
-
在我看来您被 CORS 过滤器阻止了,这意味着该脚本位于您的应用程序之外。但也许我错了……
-
@MarkoPacak 在这种情况下我能做什么??
-
你应该首先了解CORS是什么,以及为什么会触发OPTION飞行前请求以及为什么会发生这一切。正如我所说,我最好的猜测是您的 Web 资源位于 Web 应用程序之外,因此您的服务器不信任它(谢天谢地)。与其删除 CORS 过滤器,不如整合应用程序提供的资源(js、css、...)。与有人在另一个问题中指出的相反,CSRF 与这里无关
标签: java spring spring-boot