Spring Security + Spring Boot 3 | Autenticação e Autorização [Novo 2023]

Поделиться
HTML-код
  • Опубликовано: 27 ноя 2024

Комментарии • 63

  • @amandadourado3724
    @amandadourado3724 8 месяцев назад +1

    Estava com dificuldades em implementar spring security em um projeto pessoal. Mas com o seu vídeo consegui implementar, muito obrigada pelo vídeo!
    +1 inscrita no seu canal

    • @neckeltech
      @neckeltech  8 месяцев назад +1

      Grande Amanda, obrigado pelo feedback, fico feliz por ter ajudado! 🙂

  • @viniciusdelfin2806
    @viniciusdelfin2806 10 месяцев назад +3

    melhor video de spring security que eu vi, e eu vi vários! parabéns, continue com os vídeos. +1 inscrito

    • @neckeltech
      @neckeltech  10 месяцев назад +1

      Grande Vinícius! Fico muito feliz com seu feedback! Vai ter muitos vídeos assim esse ano... 🤩

  • @DiegoFreittasfotografo
    @DiegoFreittasfotografo Год назад +3

    Parabéns, linguagem simples e direta. Isso aí.

    • @neckeltech
      @neckeltech  Год назад

      Top Diego, obrigado pelo feedback! 🙂

  • @hamiltonmbrito
    @hamiltonmbrito 10 месяцев назад +2

    Não conhecia seu canal, já me inscrevi, sua didática é ótima, muito bacana esse exemplo de projeto, parabéns pelo trabalho, aguardo mais vídeos... muito obrigado.

    • @neckeltech
      @neckeltech  10 месяцев назад +1

      Grande Hamilton! Obrigado pelo feedback! 😍 Vou continuar sim postando, buscando sempre me fazer compreendido, esse é o sonho... hehe

  • @marciomaia6728
    @marciomaia6728 10 месяцев назад +1

    O melhor video sobre o spring security, passo a passo, sensacional, seu canal esta aqui como minha mentoria sobre java, parabens

    • @neckeltech
      @neckeltech  10 месяцев назад

      Grande Marcio!
      Fico muito feliz com seu feedback!
      Esse ano terá grandes vídeos e espero ajudar ainda mais! 🤩

  • @app2028
    @app2028 11 месяцев назад +1

    Rapaz impressionante muito mega top, estou impressionado com tanta qualidade código bem enquadrado na tela tu é fera mesmo obrigado pelo o conteúdo de qualidade😆😆😆

    • @neckeltech
      @neckeltech  11 месяцев назад

      Grande Sebastião! Obrigado pelo seu feedback, fico feliz em saber que te ajudei de alguma forma!🤩
      Parabéns por sua jornada nos estudos e conte comigo! 🚀🚀

  • @pierrialexander
    @pierrialexander 4 месяца назад

    Muito bom, parabéns! Continue criando conteúdos!

  • @lemueldesousa3710
    @lemueldesousa3710 Год назад +1

    mestre, tu me fez entender muita coisa nesse simples exemplo. Eu não estava conseguindo entender muito bem sobre AuthorizationPrincipal mas agora estou bem mais esclarecido. Continue com esse trabalho de qualidade.

    • @neckeltech
      @neckeltech  Год назад +1

      Grande Lemuel! Muito obrigado pelo seu feedback, fico feliz em saber que o video te ajudou! ☺

  • @mateusfonseca988
    @mateusfonseca988 Год назад +1

    Meu amigo, por gentileza, continue com os videos! Achei muito bacana e simples os passo a passos!

    • @neckeltech
      @neckeltech  Год назад +1

      Grande Mateus, obrigado pelo seu feedback, fico muito feliz em saber que estou ajudando! 🤩

  • @rafaelachinelatocirelli8007
    @rafaelachinelatocirelli8007 8 месяцев назад +1

    ótimo vídeo!!

    • @neckeltech
      @neckeltech  8 месяцев назад

      Obrigado Rafaela! 😊

  • @Alphacodebrasil
    @Alphacodebrasil Год назад +1

    Estou vendo a aula, só bugando um pouco com a estrutura de pacotes realizada, Conteúdo muito necessário, obrigado professor.

    • @neckeltech
      @neckeltech  Год назад +4

      Showw Roberto, fico feliz que tenha gostado! Geralmente em vídeo aula os professores separam os pacotes por controllers, services e repository, mas na prática os projetos, na maioria das vezes são criados conforme o domínio. Exemplo, no domínio produto tem controller, service e repository assim como no usuário e outros domínios, isso vem da arquitetura limpa. 🙂

  • @lecklis
    @lecklis Год назад +1

    Vídeo muito bom, estava com bastante problema com o spring security em meu projeto de TCC e esse vídeo me ajudou muito e até fez parecer fácil, parabéns pela didática e muito sucesso!🎉😅

    • @lecklis
      @lecklis Год назад +2

      Fica a sugestão de video conectando com um front end com angular ou react e também algum vídeo sobre tokens JWT...

    • @neckeltech
      @neckeltech  Год назад

      Showw @lecklis, fico feliz em saber que te ajudou! 🤩

    • @neckeltech
      @neckeltech  Год назад

      Vou incluir sim na lista um projeto utilizando JWT para ser um dos próximos videos... 🤩

  • @andersonbenevak5884
    @andersonbenevak5884 Год назад +2

    Obrigado pelo conteúdo..ajuda muito...

    • @neckeltech
      @neckeltech  Год назад

      Obrigado pelo seu feedback! Fico feliz em saber que o conteúdo está sendo útil para você. Continue acompanhando e qualquer dúvida, é só me perguntar. 😊

  • @fenryr6844
    @fenryr6844 Год назад +1

    Muito boa aula professor, vlw , fiquei com um pouco de dificuldade pra entender os metodos da classe CustomBasicAthentication apenas

    • @neckeltech
      @neckeltech  Год назад

      Showw @fenryr6844, fico feliz que gostou do conteúdo! Se puder comentar aqui quais métodos você ficou com dúvida, eu te respondo. 🙂

    • @fenryr6844
      @fenryr6844 Год назад +1

      @@neckeltech Classe doFilterInternal, não entendi , do que ela se trata ? qual e a função dela professor

    • @neckeltech
      @neckeltech  Год назад +1

      Showw@@fenryr6844 , a Classe CustomBasicAuthenticationFilter extende da interface OncePerRequestFilter, que essa classe tem o método doFilterInternal que exige a implmentação, por isso que em cima do método tem a notação @Override. O código implementado no método doFilterInternal é executado apenas uma vez por requisição no sistema, onde utilizamos para validar a autenticação, consegui me fazer claro? Qualquer coisa, pode ir me perguntando.

    • @fenryr6844
      @fenryr6844 Год назад +1

      @@neckeltech ah sim, entendi

  • @mateusfonseca988
    @mateusfonseca988 Год назад +1

    Vi alguns videos de tutores fazerndo o metodo new BCryptPasswordEncoder dentro da classe config...

    • @neckeltech
      @neckeltech  Год назад +1

      É possível também... Nesse vídeo eu fiz uma classe separada para isolar a autenticação do tipo basic, por isso ficou ali

  • @mateusfonseca988
    @mateusfonseca988 Год назад +1

    Esse modelo de separação dos pacotes (tudo que é de user fica no pacote user) eu gostei.

    • @neckeltech
      @neckeltech  Год назад +1

      Isso aí, imagine que você tem 30 classes que é domínio e cada uma delas tem um service, serviceImpl e repository... Seria muito difícil visualizar tudo isso se fosse diferente...

  • @joaopedroo.p4560
    @joaopedroo.p4560 11 месяцев назад +1

    Olá! Excelente aula. Uma dúvida, se eu quisesse usar JWT ao invés do basic, eu poderia usar a mesma lógica da classe CustomBasicAuthenticationFilter ?

    • @neckeltech
      @neckeltech  11 месяцев назад +1

      Grande João, exatamente, você pode criar sua classe CustomFilter e inserir a lógica do JWT, por que no final é ela que intercepta todas as chamadas e autoriza ou não a requisição.
      Se tiver mais alguma pergunta, fique à vontade! 🤩

  • @frajola_br
    @frajola_br 9 месяцев назад +2

    e se eu quisesse fazer com que o usuário, possa acessar a rota de obter os produtos, sem necessidade de autenticação?

    • @neckeltech
      @neckeltech  9 месяцев назад +1

      Grande Eliezer, tudo bem?
      Existe varias formas de fazer isso, a mais fácil é configurar dentro do WebSecurityConfig, pra frente vou trazer mais um vídeo falando sobre. 🙂

    • @frajola_br
      @frajola_br 9 месяцев назад

      @@neckeltech obg, eu achei lá mesmo, foi só adicionar um permit() pra rota desejada

  • @gabrielsaid5782
    @gabrielsaid5782 11 месяцев назад +1

    Poderia fazer uma versao utilizando o keycloak, consumindo a api do keycloak pra criar usuários e conforme for criando, fazer o controle de um cadastro simples conforme a role de cada um

    • @neckeltech
      @neckeltech  11 месяцев назад

      Perfeito Gabriel, gostei da idéia! 😀
      Entra na lista de sugestões! 🎯
      Obrigado por compartilhar!

  • @danrleybrasil
    @danrleybrasil 9 месяцев назад +1

    Interessante, então Neckel, trabalhando com user/password e com as roles eu não precisaria de jwt para realizar as operações no sistema? Neste sentido eu precisaria apenas ter a permissão para o meu usuário no banco de dados e aí eu trabalho com as manipulações de acordo com o "nível de permissão"?
    Por exemplo, criei meu sistema tenho um user "root" que tem permissão de criar usuários, e aí cria-se um fluxo de criação baseado em permissões, etc

    • @neckeltech
      @neckeltech  9 месяцев назад

      Grande Danrley!
      O Jwt é muito mais interessante que o basic authentication, vou gravar um video implementando ele... O mais interessante do que foi implementado e é a customização do filter por requisição, nela é validado as permissões de uma forma muito simples. 🙂

  • @MyFriendDev
    @MyFriendDev 2 месяца назад

    se tem uma coisa que me enrrola é o Spring Security xD
    vou caçar um livro focado só nele pq o bixim complicado rs

  • @danielandrade3389
    @danielandrade3389 6 месяцев назад +1

    Olá Neckel, antes agradeço pelo material, muito bom esse projeto para adquirir aprendizado. Mas eu estou tendo problema de autorização, erro 403, nem a página de login do Spring Security abre, eu cheguei a copiar o seu projeto no github, e ele está rodando, mas gera esse erro. O engraçado é que a configuração habilita o /user/**. Duas pessoas tiveram os mesmo problemas que eu li nos comentários, ambos conseguiram resolver, tentei o mesmo, mas não obtive sucesso. Debuggei o código e não entra na condição do filtro "if(isBasicAuthentication(request))" para verificar se a requisição contém autenticação básica no cabeçalho Authorization. Já coloquei até na versão do seu spring boot, mas creio que isso não seja o motivo do erro, já limpei a cache da minha IDE (VS Code), enfim, tem algo que eu poderia fazer para resolver esse problema, alguma dica. O certo é que não tinha que dar erro, já que o seu projeto rodou, enfim te agradeço se puder me ajudar. Vlw

    • @neckeltech
      @neckeltech  6 месяцев назад +1

      Olá Daniel, tudo bem? Fico feliz por você estar buscando crescer em conhecimento! 🙂
      Faz o seguinte, pode ser algo relacionado ao banco e os registros. Eu criei esse video falando sobre o Flyway onde utilizei o mesmo projeto do Spring Security, com ele é bem mais facil colocar rodar e criar banco com os registros.
      ruclips.net/video/wCi1eiaE6Mc/видео.html
      Aí posta aqui o resultado, que vou tentar te ajudar.

    • @danielandrade3389
      @danielandrade3389 6 месяцев назад

      @@neckeltech Olá Neckel, valeu pelo feedback. Realmente era relacionado ao banco e aos registros. Eu pensei criar diretamente no banco de dados👍foi nesse momento que reparei que você criou as autorizações (permissões) diretamente no banco e eu tentava fazer no json, talvez fosse por isso que estava gerando erro 403. Por exemplo, eu tentei criar um role ADMIN, além das suas permissões, como por exemplo, PRODUCT_SELECT, mas dava erro de autenticação (403), você apenas atribuía o id do role no json (postman) e não o name. Enfim, não tinha entendido a lógica. Pergunta: Mas no seu exemplo de projeto é possível criar outro tipo de role pelo json ou somente pelo banco? Pois se é possível criar outros tipos de role diretamente pelo json, então eu ainda preciso verificar o que está dando errado. Valeu pelo projeto foi bem legal e serviu como aprendizado 👍ganhou mais um inscrito

  • @elenildosantos888
    @elenildosantos888 Месяц назад

    Como faço pra obter o usuário logado?

  • @Fernando-xc3fj
    @Fernando-xc3fj 9 месяцев назад +1

    apos criar o usuario quando vc faz uma requisição com post /product no postman vc coloca alguma coisa na basic auth ? eu clonei o seu repositorio e configurei o banco de dados e coloquei um usuario e senha na basic auth e aparece 401 unathourized

    • @neckeltech
      @neckeltech  9 месяцев назад +1

      Grande Fernando, debuga a classe CustomBasicAuthenticationFilter, nela você vai conseguir verificar se está chegando usuário e senha e se está montando a autenticação corretamente.

  • @rkratz
    @rkratz 11 месяцев назад +1

    Engraçado. Fiz junto e coloco um usuário e senha e dá retorno 403 Forbidden. Depois subi seu cógio em outra projeto do GIT só trocando a senha do banco e contínua dando 403 Forbidden. Se eu troco o usuário a senha eé mostra que o usuário é invalido ou a senha. Não entendi

    • @neckeltech
      @neckeltech  11 месяцев назад +1

      Grande Ricardo! Faz o seguinte, pega o projeto no github e compara com o seu. Pode ter um detalhe diferente... Você também pode debugar para verificar se encontra o user e as roles...
      Se puder deixar público seu projeto, comenta com o link que aí eu verifico...

    • @matheusfel8216
      @matheusfel8216 10 месяцев назад

      @@neckeltech ainda agora tive o erro parecido, eu resolvi quando removi o "/**" la na security config, acho que isso se deve ao spring 3.1.5 ou superior ter alterado umas syntax. Eu to usando a 3.1.7 por exemplo

  • @mateusfonseca988
    @mateusfonseca988 Год назад +1

    Me tira uma dúvida, dentro da classe de config, eu posso substituir essa classe criada "customAuthenticationFilter" por "UsernamePasswordAuthenticationFilter" e ai nao precisarei criar toda a classe na mao, certo?

    • @neckeltech
      @neckeltech  Год назад

      A ideia de criar uma classe custom com código feito na mão é para você ter controle total da autenticação e autorização das requisições... Não seria só alterar para UsernamePassword...
      Mas é possível sim utilizar o que tem pronto do Sprint Security e diminuir código, mas aí perde um pouco do controle, como comentei...

    • @mateusfonseca988
      @mateusfonseca988 Год назад +1

      @@neckeltech é que estou começando agora no spring security, e me perco nesse monte de classes, queria implementar algo básico (usuario e senha) o mais simples possivel e depois ir subindo o nível rsrs

    • @neckeltech
      @neckeltech  Год назад

      @@mateusfonseca988 Vai por mim nesse formato é possível entender todas as etapas da autenticação e autorização... Pode ir perguntando que quando puder te responder te retorno por aqui 🙂

  • @viniciusjustino1900
    @viniciusjustino1900 10 месяцев назад

    usando esses padrões mais novos de security, seguindo tudo certinho ainda recebo 401 da até raiva

    • @neckeltech
      @neckeltech  10 месяцев назад +1

      Grande Vinícius, se for um projeto de estudo e se puder subir no github eu posso dar uma olhada para você. 🎯👊

    • @viniciusjustino1900
      @viniciusjustino1900 9 месяцев назад

      @@neckeltech Adoraria mano!