Juste GET Запрос на работу с POSTMAN, возврат POST-запроса 403 Запрещено: Spring Boot mongoDB (Postman Test) - PullRequest
0 голосов
/ 29 января 2020

Можете ли вы объяснить мне, как я могу сделать POST-запрос в почтальоне для добавления нового пользователя в мою коллекцию пользователей.

Проблема в том, что я могу добавить пользователя с Get-запросом, но POST-запрос возвращает 403 Запрещено.

Подскажите, как я могу авторизовать POST-запросы?

Я пробовал это решение в моем контроллере, но ничего не исправлено:

@RequestMapping(value = "/users", method = { RequestMethod.GET, RequestMethod.DELETE, RequestMethod.POST })

весной У меня есть 3 сущности: Пользователь, Центр и Роль

Отношения между ними и следующим:

Класс пользователя:

@Document
public class User {

    @Id
    private String id;
    private String login;
    private String password;
    private String nom;
    private String prenom;
    private long telephone;
    private long idCCMS;
    private String matricule;

    @DBRef
    private Centre centres;

    @DBRef
    private Role roles;

Роль класса:

@Document
public class Role {

    @Id
    private String id;
    private String role;
    private String description;

    @DBRef
    private Collection<User> users = new ArrayList<>();

Центр класса

@Document
public class Centre {

    @Id
    private String id;
    private String reference;
    private String libelle;

    @DBRef
    private Collection<User> users = new ArrayList<>();

Мой репозиторий:

@Repository
public interface UserRepository extends MongoRepository<User, String> {

    List<User>findByMatricule(String matricule);
    User findByLogin(String login);
    List<User>findByNom(String nom);
    List<User>findByPrenom(String prenom);
}

Мой контроллер:

@RestController
@RequestMapping(value = "/users", method = { RequestMethod.GET, RequestMethod.DELETE, RequestMethod.POST })
@CrossOrigin(origins = { "http://localhost:4200" })
public class UserController {

    @Autowired
    private UserRepository userRepo;

//  @Autowired
//  private MongoTemplate mtUser;

    @GetMapping("/all")
    @Query(value = "{}", fields = "{'objectContentAsJson':0}")
    public Iterable<User> getall() {
        return (userRepo.findAll());
    }

    @PostMapping("/add")
    public User save(@RequestBody User user) {
        return userRepo.save(user);
    }

Чтобы добавить пользователя в свою базу данных, я добавил этот код в теле почтальона:

{
    "id": "5e319750fcf3c73b589b6211",
    "login": "aaaa",
    "password": "aaaa",
    "nom": "aaaa",
    "prenom": "aaaa",
    "telephone": 97408105,
    "idCCMS": 123456,
    "matricule": "mat123",
    "centres": "5e319dd0730b1659d5910e0c",
    "roles": "5e319dd0730b1659d5910e0d"
}

Это правильно добавить идентификатор центра и идентификатор роли в поля центра и роли кода json?

enter image description here

В Почтальон я добавил в " вла В разделе «Тип» Basi c Auth я добавил имя пользователя по умолчанию Spring Security «Use» »и пароль, сгенерированный моим сервером приложений:

enter image description here enter image description here enter image description here

1 Ответ

0 голосов
/ 29 января 2020

Ответом является 401 Unauthorized, что означает, что вам нужно добавить имя пользователя и пароль к вашему запросу.

В вашем пом. xml посмотреть, есть ли у вас зависимость

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Если выше указано значение true, Spring Security сгенерирует случайный пароль. Используйте это вместе с именем пользователя как user для аутентификации в Почтальоне.

...