代码之家  ›  专栏  ›  技术社区  ›  ekka

没有spring security的spring boot中是否有任何安全模块

  •  0
  • ekka  · 技术社区  · 7 年前

    我使用的是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"
    }
    

    <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

    提前谢谢你。

    1 回复  |  直到 7 年前
        1
  •  0
  •   ekka    7 年前

    答案是通过添加 @交叉原点

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