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

没有spring security的spring boot有安全模块吗

王兴庆
2023-03-14

我使用的是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启动中是否有任何内部模块如何启用安全性,请参阅我以前的帖子

先谢谢你。

共有1个答案

黄淇
2023-03-14

答案是在服务器端管理CORS,给web服务添加@CrossOrigin注释,web服务变成这样:

package com.sid.webService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
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;

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

如果您想要更多自定义,请添加您将访问Spring后端的所有域,并将它们放在属性来源中,如下所示:

@CrossOrigin(origins="http://localhost:8080/utilisateurs/")
@RequestMapping(value="/addUser",method=RequestMethod.POST)
public boolean addUser(@RequestBody Utilisateur u)
{
    try
    {
        mr.ajouterUtilisateur(u);
        return true;
    }
    catch(Exception e)
    {
        System.out.println(e.getMessage());
        return false;
    }   
  } 
}
 类似资料:
  • 问题内容: 我一直想知道这一点:是否可以保证多次导入模块都是安全的?当然,如果模块执行操作系统之类的操作,例如写入文件之类的东西,则可能不会,但是对于大多数简单模块而言,简单地随意执行导入是否安全?是否有规范模块全局状态的约定? 问题答案: 是的,无论它是什么模块,您都可以在一个Python程序中进行任意多次。在第一个之后的每个后续访问访问缓存的模块,而不是重新评估它。

  • 正在尝试在Fedora21、Python 2.7上安装Biopython。我做了以下几件事 然后 我做错了什么? 编辑 我尝试安装biopython使用 并将其安装到/usr/lib/python2.7/site packages/biopython-1.65-py2.7-linux-x86_64.egg/中。没用。 然后我尝试使用相同的命令安装它,但没有使用sudo: 安装到 /home/mik

  • 问题内容: 我刚刚重新安装了Ubuntu 12.04 LTS,在执行任何其他操作之前,请执行以下步骤 : 使用以下脚本通过程序包管理器安装节点 尝试在全球安装yeoman,express,n,yeoman的生成器,并且它们均返回相同的错误 npm ERR!错误:EACCES,符号链接“ ../lib/node_modules/n/bin/n” npm ERR!{[错误:EACCES,符号链接’..

  • 我没有使用Spring Security性,但它要求我进行身份验证。 URL例外(http://localhost:8080/SpringJob/ExecuteJob): application-dev.xml build.gradle片段 控制器

  • 问题内容: 我有一个包含许多文件的目录。每个文件定义一些类。我的目录中也有一个空白。 例如: 我正在尝试导入和访问所有这些文件中定义的类: 这给我一个错误的说法,即没有属性。为什么?为什么我只能访问其中一个文件(),而不能访问其他文件? 问题答案: 问题是子模块不会自动导入。您必须显式导入模块: 如果您真的坚持要在导入时可用,则可以输入以下内容: 然后,这将按预期工作:

  • 我部署了一个定义了远程EJB的全局模块,但我无法从部署的应用程序访问它们。 以下是界面: 既然默认的@Ejb找不到bean,我如何找到部署的Ejb的jndi名称?值得一提的是,jboss cli中的/subsystem=naming:jndi-view()没有打印任何关于已部署模块的信息,并且在wildfly日志中没有错误。 也许,在全局模块中定义可注入ejbs是不可能的?