当前位置: 首页 > 知识库问答 >
问题:

AJAX/Spring MVC-没有Spring Security的403禁止错误

史意致
2023-03-14

我正在尝试使用Spring MVC从我的Web服务发出ajax请求:

package com.sid.webService;

import org.springframework.html" target="_blank">beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.sid.dao.entity.Utilisateur;
import com.sid.metier.IMetierUtilisateur;

@Component
@RestController
@RequestMapping("/utilisateurs")
public class webServiceUtilisateur {
     @Autowired
     private IMetierUtilisateur mr;

     @RequestMapping(value="/addUser",method=RequestMethod.POST)
     public boolean addUser(@RequestBody Utilisateur u)
     {
        try
        {
            mr.ajouterUtilisateur(u);
            return true;
        }
        catch(Exception e)
        {
            return false;
        }
     }
  }

使用此AJAX请求:

$.ajax({
        url : "http://localhost:8080/utilisateurs/addUser",
        headers: { 
                 'Accept': 'application/json',
                 'Content-Type': 'application/json' 
                },
        type : "POST",
        data : user,
        dataType : "application/json"
}

这里的问题是用户正在登录但没有正确的权限,真正的isu是我没有使用Spring Security,那么如何阻止权限,这是我对Spring Boot的配置:

spring.datasource.url=jdbc:mysql://localhost:3306/ekka-e-commerce
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

错误消息:

  • jquery.min.js:2选项http://localhost:8080/utilisateurs/addUser403.
  • 无法加载http://localhost:8080/utilisateurs/addUser:飞行前的响应具有无效的HTTP状态代码403

这是我的pom。xml格式:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.sid</groupId>
<artifactId>examplesJavaSpring</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

<name>ekka-e-commerce</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

有人能告诉我这里出了什么问题吗?我做错了吗??提前谢谢。

共有1个答案

白君之
2023-03-14

请务必查看Maven依赖项,看您是否已将< code>spring-security包含到您的项目中。如果您已包含在依赖项中,spring boot将自动配置spring security,而无需single。移除它。卸下后还能工作。依赖项将位于< code>pom.xml中

 类似资料:
  • 嗨,我刚开始学习Spring、AJAX和JSON。当我试图发回一条信息时,我遇到了一个错误。 信息。jsp 控制器。JAVA 我尝试了很多不同的方法来解决这个问题,但都没有效果,我无法发布消息。 有什么帮助或原因让我一直犯这个错误吗? jquery。js:4帖子http://localhost:8080/spring/sendmessage403(禁止)发送@jquery。js:4 ajax@jq

  • 每次尝试从数据库中获取用户信息时,我都会收到一个错误。关于我下面的代码,每次我按下Ajax测试按钮尝试请求时,它都无法运行并向我发出警报,但控制台中也会向我发出403禁止的错误。我不确定这是否与Spring security有关? 用户JSP页面: 用户控制器类:

  • 对localhost的Ajax请求返回403错误。然而,当我更改controller requestMethod以获取并在浏览器上打开请求“url”时,它会显示从服务器返回的json数据。我希望使用这些数据填充一个下拉列表。请帮帮我。我正在使用spring security 4.0和spring MVC框架。CSRF未禁用。此外,该url在Spring得到保护。 我在这里查看了相关问题,但没有找到

  • 问题内容: 每当我尝试从数据库中获取用户信息时,都会收到-error 消息。关于下面的代码,每当我尝试通过按Ajax测试按钮尝试请求时,它都无法运行并给我发出警报,但是在控制台中也给我一个-error。我不确定是否与Spring安全性有关? 用户JSP页面: 用户控制器类: 问题答案: 它通常是由Spring默认的CSRF保护引起的。 例如,如果你使用JS代码中的DELETE HTTP请求,则还需

  • 问题内容: 我制作了供个人使用的python脚本,但不适用于Wikipedia … 这项工作: 这不起作用: 这是错误: 问题答案: 在当前代码内: Python 2.X 的Python 3.X 带有Selenium的Python 3.X(执行Javascript函数) 修改后的版本起作用的原因是因为Wikipedia检查User-Agent是“流行的浏览器”

  • 有人能帮我找出我的SSLHandshake有什么问题吗? 我有一个Java客户端应用程序(使用Spring WS-security)试图将数据发送到服务器(不在我的控制范围内),我设置了以下内容 具有来自服务器的证书的客户端信任库 Java密钥库与我的私人密钥输入证书 在我的调试SSL握手日志(某些部分缩写)下面,我似乎找不到任何错误。。这是服务器端需要调查的事情吗?(我不确定,他们也不确定,这就