Fiquei a semana inteira quebrando a cabeça com o Spring Security. Em 33 minutos eu avancei muito mais do que lendo diretamente a documentação. Muito obrigado e parabéns pelo trabalho. Você ajuda muita gente.
Um dos melhores vídeos em português sobre Spring Security!!!, perfeito Giuliana, de uma maneira simples mostrou didaticamente as funcionalidades do Spring Security. A dica para ver o vídeo sobre o Oauth2, protocolo de autorização, super bem apresentado. Muito obrigado pelo seu empenho de Produzir Videoaulas deste nível.
Ótimo vídeo Giuliana, tenho 18 anos e sempre gostei de programação mas estava meio perdido entre segurança ou desenvolvimento low-level com C e C++. Acabei passando um tempo sem fazer nada e acabei decidindo entre nenhum dos dois anteriores, comecei a estudar desenvolvimento web, como é um mercado enorme e preciso de um trabalho. E descobrindo o Java e o Spring há mais ou menos 1 mês me faz não conseguir passar um dia sem estudar, ter achado seus vídeos me ajudou bastante nessa última semana, obrigado!
Parabéns pela a simplicidade e segurança de passar o conteúdo, este vídeo já faz parte da minha lista de estudos e estou compartilhando o vídeo no linkend e na minha turma do CTD.
Manaaa do ceu, que da hora...Achei sensacional seu conteudo. Eu to fazendo uma API agora, e as video aulas que eu tenho, estao na versao antiga do Security, e to aqui apanhando pra achar conteudo com a nova versao...e nao só achei, como vc foi alem. Aqui o pessoal ensina a pegar o usuario de banco e etc (nao que seja ruim, pq nao é, é um outro jeito) mas o seu, é bem mais moderno, em primeiro lugar, e muito menos complicado. Super obrigada por compartilhar isso conosco Obs. Ganhou mais uma inscrita
Que bom que curtiu, Mari! Essa versão nova do Spring trouxe várias "Breaking Changes", o que acabou dificultando a vida das pessoas que trabalham com Spring. Obrigada pelo apoio ao canal, e fica de olho que devo trazer mais conteúdos sobre segurança pra cá! 😉
@@giulianabezerra nossa dificultou mtoo mesmo. Eu fiz recentemente um bootcamp, terminei em dezembro, aí fui fazer essa api agora, tudo o que eu tinha de conhecimento e material, não me ajudou em nada. Mas vou tentar implementar agora a parte do security da minha api com o seu vídeo. Espero que dê certo 🙏🏻 E com certeza, vou acompanhar sim seu canal. Gostei muito da forma como você explicou e o melhor, vê mulheres mostrando seu conhecimento aqui tbm, é muito incrível. Então sempre que vejo uma mulher na área de TI, quero dar meu apoio, porque sabemos que não é fácil né. Mas, te desejo todo sucesso do mundo mana.
@@mari_rebecca , agradeço demais o apoio, ele é o meu combustível para continuar criando conteúdos relevantes pra comunidade. Brigadão e sucesso pra ti! 🙏
Eu já tinha usado o Security antes das atualizações, lá por 2020, e fui usar agora e estava tudo diferente de como eu lembrava. Precisei reciclar meu conhecimento e esse vídeo foi, de longe, o melhor conteúdo que eu encontrei. Parabéns Giuliana! Já acompanho seu trabalho na udemy/medium há um tempo, e posso dizer com confiança que você é uma das melhores educadoras em assuntos técnicos do Brasil atualmente.
Gratidão, Carlos! Eu me esforço bastante pra criar conteúdos que eu gostaria de consumir, é muito bom saber que um trabalho que eu amo fazer dá frutos tão bons assim, afinal de contas, é tudo pela comunidade br de desenvolvedores que me orgulho em fazer parte! 🤩
Caralho!!! Que aula! Já paguei por conteúdos bem inferiores a esse. Você é um fenômeno, mulher, está no mesmo nível de conhecimento dos grandes youtubers de programação. Vou procurar seus cursos lá na udemy, tenho que certeza que vão ser um tijolinho a mais na minha carreira. Impressionado!
Brigadão! Muito bom ter esse reconhecimento, eu me esforço bastante pra produzir esses conteúdos e tenho aprendido muito com os feedbacks aqui do canal, bom saber que estou no caminho certo 🤩
Muito obrigado à colega por compartilhar conosco importante conhecimento acerca do SpringSecurity. Ajudou muito no projeto da graduações deste semestre. Deus abençoe.
Parabéns pelo video! Faz um tempo que estou vendo Spring Security + OAuth2 e os exemplos que encontro sempre está em uma versão antiga, a forma de implementar é bem diferente! Ganhou um inscrito!
Super aula, depois quando puder, faz uma aula sobre alguns comandos uteis de terminal (como esse curl). Ou posta algum lugar onde possamos encontrar conteudo. E muito pratico
Otimo video, queria tirar uma dúvida, como eu faria para ter uma aplicação que tem o proprio login, ou seja pode usar o cadastro da propria aplicação e autenticar pelo google? eu vejo varios serviços que fazem isso, queria entender esse processo. Muito obrigado!
Boa noite. Otimo video. Gostaria de perguntar se no seu canal tem video fazenndo autenticacao com banco de dados. Gostei muito do uso da linguagem fluente.
Bom dia Giuliana! Parabéns pelos conteúdos e pela iniciativa de compartilhar o seu conhecimento. Gostaria de fazer uma pergunta: É possível e recomendado, no mesmo projeto spring boot, eu utilizar recursos de páginas web, no estilo spring mvc, com autenticação tradicional por sessão, com tela de login de usuário e senha e também controladores rest, com endpoints e autenticação/ autorização por oauth nos endpoints? É recomendável utilizar tudo em um só projeto? Se possível, poderia fazer um pequeno exemplo para demonstrar como ficaria essa configuração na parte de segurança? Muito obrigado!
Renato, vou sim trazer um vídeo com essa parte do frontend na segurança também. Posso adiantar que o mais comum é ter um frontend SPA que se integra com suas APIs, e aí nesse desenho onde o client oauth é o back vc usa um cookie de sessão para autenticar o front. Mas, também existe o desenho com o SPA sendo o client, e aí o mais comum é usar o jwt pra autenticar. A gente evita aquele front server side, com raras exceções.
Não conhecia o Spring OAuth2, mas acredito que é possível se autenticar com qualquer API que possua esse mesmo fluxo de autenticação do Google (Mesmo Grant Type).
Primeiramente gostaria de dar os parabéns pelo vídeo, foi bem legal. Só ficou uma dúvida, nesses 2 casos usando o cookie e depois o JWT o Authorization Server está lá no Google né, apesar de no segundo caso adicionarmos ele no pom.
Giuliana, tudo bem? Ótima aula. Sei que as vezes é complicado conseguir atender todas solicitações de conteúdo, mas não poderia deixar de pedir: Você tem alguma aula onde trabalha uma aplicação que retorna o Token através do Social Login, e este token é utilizado em outros endpoints, conseguindo fazer o mesmo tipo de validação do método usuario/senha? Ou seja, um filtro que através do token informado no header da requisição "Authorization" realize uma busca no repository de usuários e permita ou não a utilização do recurso, dependendo do resultado da análise?
Exatamente isso não tem, mas tem um vídeo que fala com login indo ao banco e depois retornando o jwt e aí usando o jwt pra acessar os recursos. O vídeo está disponível atualmente apenas pros membros mas em breve vai ser disponibilizado para os inscritos tbm, fica de olho 😉
Obrigado, to criando um projeto totalmente atualizado, e fiquei perdido sobre a classe de configurações, já que quase não existem exemplos sem extender a WebSecurityConfigurerAdapter.
Que conteúdo maravilhoso, parabéns! Eu ainda não conheço muito sobre OAuth e fiquei com uma dúvida, que se puder responder eu agradeço. Nesse caso, qualquer pessoa com uma conta google consegue acessar a minha aplicação? Caso eu queira limitar, por exemplo, acesso mediante pagamento, poderia ser feito usando esse método também?
As pessoas com conta Google poderiam acessar a sua aplicação mas você pode limitar algumas funcionalidades por authorities. Esse foi um exemplo simples, normalmente a gente usa um authorization server próprio como keycloak, wso2, e aí temos várias formas de controlar o acesso. Sobre o Oauth, dá uma olhada no card que coloquei no vídeo sobre o assunto 😉
Vlw, Alexandre! Sobre sua dúvida, você pode dar uma olhada na doc do Spring Security, na parte de Client Oauth, que tem algumas opções de customização por lá. Também devo trazer em breve outro conteúdo prático abordando essa arquitetura, ativa as notificações pra não perder! 😉
Excelente conteúdo... Fiquei com uma dúvida, implementei esse exemplo com jwt porém o "... @AuthenticationPrincipal Jwt jwt " não está sendo preenchido no controller, apesar de autenticar certinho. Seria alguma configuração la no google ?
Muito obrigado, de verdade, Giu, isso me salvou demaaaaais, que didática incrível, to a uma semana tentando fazer autenticação e só acho coisa desatualizada, ou que não funciona por algum motivo, parabéns pela qualidade !! Se puder me tira só uma dúvida, se eu quiser usar o Oauth2 para registrar usuários com o login do google no banco de dados da minha API, e criar níveis de permissão, como por exemplo, um ADMIN e um USER, como faço isso ? Tem algum video que mostra essa parte ?
Olá, Gabriel! Que bom que curtiu o conteúdo, tá bem atualizado sim! Sobre a sua pergunta, vc precisa autenticar com o Google, mas salvar os dados dos usuários autenticados depois na sua base? Se esse for o cenário as permissões teriam que ser configuradas por alguma tela da sua aplicação, após a primeira autenticação pois as permissões puxadas são as do Google. Mas, se for autenticar o usuário na sua base local, aí não seria Oauth (não usou um terceiro para autorizar), e esse exemplo ainda devo trazer aqui pro canal. 😉
Estou utilizando spring tool suite, e criei o projeto java na versão 11. Tive que utilizar: authorizeConfig.antMatchers("/public").permitAll(); Pois este deu erro: authorizeConfig.requestMatchers("/public").permitAll(); vc saberia o pq disso? Att :)
Olá, Gabriel! É porque vc está usando o JDK 11 e portanto uma versão do Spring Security menor que a 6. Essa nova sintaxe você só encontra no Spring Boot 3.x, Spring Security 6, e com o JDK 17, que é requisito mínimo para rodar essas versões.
Existe alguma maneira de usar um formulario criado por mim no front end inves de usar o formulario do spring security, usando o fluxo do Authorization Code? to quebrando a cabeça pra descobrir como fazer isso
Me surgiu uma dúvida. Toda vez que aconter qualquer requisição para um endpoint protegido irá fazer uma chamada pra api do google descriptografar o token jwt? Se sim, isso não geraria muita latência na aplicação caso ela comessace a receber bastante requisição?
Na verdade a chamada é pra obter a chave de assinatura, então uma alternativa seria baixar a chave de forma local e evitar essas requisições, ou deixá-la num endereço apartado
Tenho uma grande duvida, quando eu faço uma aplicação web usando Thymeleaf, o procedimento de autenticação, criptografia e etc continuam da mesma maneira ?
Como seria no caso se eu quisesse ter uma classe na minha aplicacao que representasse o usuario para ele se cadastrar e utilizar jwt para authorization?
Alucard, o pessoal tem feito bastante essa pergunta, eu devo trazer um vídeo em breve falando da config para autenticar o usuário na própria aplicação e utilizando JWT também.
Giuliana como duas aplicações diferentes pode se autenticar num sistema spring security 6. de nmaneira simples, usando apenas jwt para herar token e possivel ? como ?. Obrigado pelos videos
Tinha um projeto oauth separado que de fato foi descontinuado, mas o que mostro no vídeo não foi, que são os starters oauth client e oauth resource server, do spring boot. Pode usar eles como mostrado no vídeo 😉
Não sei porque mas fiz a parte de config do oauth tudo ok mas na hora de acessar o endpoint protegido, ele me da as opções das contas google a ao clicar em alguma, dá o seguinte erro: [oidc_provider_not_configured] An OpenID Connect Authentication Provider has not been configured. Check to ensure you include the dependency 'spring-security-oauth2-jose'.
@@giulianabezerra Por incrivel que pareça, ao adicionar essa dependencia "jose", funcionou. Pesquisei e vi que o google ja configura o openid, mas de alguma forma essa dependencia fez funcionar.A presença dessa dependência parece sercrucial para habilitar o suporte ao OpenID Connect na aplicação
@@mateusfonseca988, que estranho, eu acabei de testar o projeto atualizando a versão do spring boot e não dá erro aqui. Será que estás usando uma versão diferente nas dependências?
Super apoio um vídeo explorando o Keycloak. Obrigado pelo conteúdo!
Bora curtir esse comentário aqui kk
Um dos melhores vídeos em português sobre Spring Security!!!
Vlw demais pela força, Luiz!
Fiquei a semana inteira quebrando a cabeça com o Spring Security. Em 33 minutos eu avancei muito mais do que lendo diretamente a documentação. Muito obrigado e parabéns pelo trabalho. Você ajuda muita gente.
Um dos melhores vídeos em português sobre Spring Security!!!, perfeito Giuliana, de uma maneira simples mostrou didaticamente as funcionalidades do Spring Security. A dica para ver o vídeo sobre o Oauth2, protocolo de autorização, super bem apresentado. Muito obrigado pelo seu empenho de Produzir Videoaulas deste nível.
Aí sim! Que bom que está curtindo o canal, espero que continue acompanhando! 😎
Quando a aula é boa, passa voando. Top demais, mais uma vez, Obrigado!
Ótimo vídeo Giuliana, tenho 18 anos e sempre gostei de programação mas estava meio perdido entre segurança ou desenvolvimento low-level com C e C++. Acabei passando um tempo sem fazer nada e acabei decidindo entre nenhum dos dois anteriores, comecei a estudar desenvolvimento web, como é um mercado enorme e preciso de um trabalho. E descobrindo o Java e o Spring há mais ou menos 1 mês me faz não conseguir passar um dia sem estudar, ter achado seus vídeos me ajudou bastante nessa última semana, obrigado!
Que massa! Spring vicia mesmo, é tão clean e poderoso, que bom que vc veio pra área, vai curtir demais!
Muito bom. Aguardando o curso de Spring Boot!!!!
Muito bom ! Gosto muito desse jeito de explicar fazendo ! Isso ai !
Valeu!
Obrigada demais pelo apoio! 🤩🙏
Parabéns ... foi a explicação mais didática que eu já vi
Maravilha de tutorial: muito claro, objetivo e completo.
Parabéns e obrigado por compartilhar.
Vlw! 🤩
Aula ótima. Parabéns pela didática.
obrigadaooo Giuliana! Suas aulas são muito completas e sua didática é perfeita!! Muito obrigado por disponibilizar aqui no youtube
Muito bom a sua aula! Difícil de acha assuntos assim tão atualizados. Parabéns!
Obrigada e bons estudos!
Vídeo Top, parabéns pela didática e por compartilhar seu conhecimento conosco
.
Parabéns! Muito bom
Parabéns pela didática, muito bom!
Parabens, viu.. super didatica!!
Ótima explicação, estou impressionado como suas habilidades você é nota 1000, obrigado por compartilhar o conhecimento, parabéns pelo seu trabalho.
Que bom que estás curtindo, obrigada pelo apoio!
Finalmente achei um conteúdo que funcionasse! Vlwww demais!
Vc é a melhor Giuliana!!!!
Obg, Ricardo! 🤩
Conteúdo muito rico, para um assunto complexo como este foi muito bem exposto na didática. Parabéns!
fez parecer tao facil! Parabens
Muito show, simples a utilização!
Essa é a ideia, Átila!
Vídeo maravilhoso!!
ótima aula, obrigado por compartilhar seu conhecimento.
🙏🤗
Gostei bastante da didática. Bem leve o vídeo em um assunto que dá medo para muitos
Vlw demais, Mikael! Fico feliz que tenhas gostado do conteúdo 🙏
Curti! Obrigado e parabéns pela iniciativa!
Que bom, Winston! Espero que curta outros vídeos também 🙏
Parabéns e muito obrigado pela aula!! Excelente!!
Eu que agradeço a tua audiência, Rodrigo! 🤝
Muito top a aula, parabéns Giuliana
Muito obrigada, Daniel! 😃
Parabéns pela a simplicidade e segurança de passar o conteúdo, este vídeo já faz parte da minha lista de estudos e estou compartilhando o vídeo no linkend e na minha turma do CTD.
Belicio, agradeço muito o feedback e por você compartilhar o conteúdo! Espero te ver em outros vídeos aqui do canal também 😊
Parabéns pelo conteúdo. Aprendi muito!
Fico feliz em saber, Lucas! 🙏
Até que em fim, encontrei um vídeo excelente onde foi possível entender! Parabéns.
Que bom que ajudou, William! 🤩
Obrigado!
Esse vídeo ajudou muito.
Cumprimentos de Angola
Que bom que ajudou! 🤩
@@giulianabezerra Mais um inscrito
no spring security 6.1 tem q alterar o SecurityConfig pra ficar com essa linha .oauth2ResourceServer(oauth2 -> oauth2.jwt(Customizer.withDefaults()))
muito legal essa estratégia.
Que bom que curtiu, Jean! Ainda vou trazer mais vídeos sobre esse assunto, fica de olho! 😉
Manaaa do ceu, que da hora...Achei sensacional seu conteudo. Eu to fazendo uma API agora, e as video aulas que eu tenho, estao na versao antiga do Security, e to aqui apanhando pra achar conteudo com a nova versao...e nao só achei, como vc foi alem. Aqui o pessoal ensina a pegar o usuario de banco e etc (nao que seja ruim, pq nao é, é um outro jeito) mas o seu, é bem mais moderno, em primeiro lugar, e muito menos complicado. Super obrigada por compartilhar isso conosco
Obs. Ganhou mais uma inscrita
Que bom que curtiu, Mari! Essa versão nova do Spring trouxe várias "Breaking Changes", o que acabou dificultando a vida das pessoas que trabalham com Spring. Obrigada pelo apoio ao canal, e fica de olho que devo trazer mais conteúdos sobre segurança pra cá! 😉
@@giulianabezerra nossa dificultou mtoo mesmo. Eu fiz recentemente um bootcamp, terminei em dezembro, aí fui fazer essa api agora, tudo o que eu tinha de conhecimento e material, não me ajudou em nada. Mas vou tentar implementar agora a parte do security da minha api com o seu vídeo. Espero que dê certo 🙏🏻
E com certeza, vou acompanhar sim seu canal. Gostei muito da forma como você explicou e o melhor, vê mulheres mostrando seu conhecimento aqui tbm, é muito incrível. Então sempre que vejo uma mulher na área de TI, quero dar meu apoio, porque sabemos que não é fácil né.
Mas, te desejo todo sucesso do mundo mana.
@@mari_rebecca , agradeço demais o apoio, ele é o meu combustível para continuar criando conteúdos relevantes pra comunidade. Brigadão e sucesso pra ti! 🙏
Eu já tinha usado o Security antes das atualizações, lá por 2020, e fui usar agora e estava tudo diferente de como eu lembrava. Precisei reciclar meu conhecimento e esse vídeo foi, de longe, o melhor conteúdo que eu encontrei.
Parabéns Giuliana! Já acompanho seu trabalho na udemy/medium há um tempo, e posso dizer com confiança que você é uma das melhores educadoras em assuntos técnicos do Brasil atualmente.
Gratidão, Carlos! Eu me esforço bastante pra criar conteúdos que eu gostaria de consumir, é muito bom saber que um trabalho que eu amo fazer dá frutos tão bons assim, afinal de contas, é tudo pela comunidade br de desenvolvedores que me orgulho em fazer parte! 🤩
Caralho!!! Que aula! Já paguei por conteúdos bem inferiores a esse. Você é um fenômeno, mulher, está no mesmo nível de conhecimento dos grandes youtubers de programação. Vou procurar seus cursos lá na udemy, tenho que certeza que vão ser um tijolinho a mais na minha carreira. Impressionado!
Brigadão! Muito bom ter esse reconhecimento, eu me esforço bastante pra produzir esses conteúdos e tenho aprendido muito com os feedbacks aqui do canal, bom saber que estou no caminho certo 🤩
Gostei muito do passo a passo e das explicações, Giuliana. Obrigado por compartilhar!
Vlw, Wellington!
Muito show! Gostei bastante do conteúdo e dá didática.
Vlw, Carlos! 🙏
Muito obrigado à colega por compartilhar conosco importante conhecimento acerca do SpringSecurity. Ajudou muito no projeto da graduações deste semestre. Deus abençoe.
Disponha, Diego!
Estou olhando os teus vídeos desde ontem, ótimo conteúdo!!
Que massa, Alisson! Obrigada 🙏
Excelente, obrigado
Vlw, Edu! 🙏
aula top, vlw dmss
Vlw, Lucas!
Ótimo video, pretendo ver mais vezes até absorver todo o conteúdo
Muito bom seu material!!!
Vlw, Java na veia! 😁
Aula incrível! Muito obrigado.
Vlw, Léo! 🙏
Parabéns pelo video! Faz um tempo que estou vendo Spring Security + OAuth2 e os exemplos que encontro sempre está em uma versão antiga, a forma de implementar é bem diferente! Ganhou um inscrito!
Que bom, Willian! Bem-vindo ao canal, espero que curta os outros conteúdos também :)
Sensacional!
Obrigada! 🙏
Muito bom o vídeo, boa didática estás de parabéns!
Que bom que curtiu, Hdev! Agradeço o apoio 🙏
Vídeo muito bom, apoio um vídeo sobre o comparativo de jwt x cookies!
É um tema excelente mesmo, pq não existe consenso na comunidade, apenas pros e contras de cada alternativa mesmo. Anotado aqui, obg pela sugestão! 🙏
Super aula, depois quando puder, faz uma aula sobre alguns comandos uteis de terminal (como esse curl). Ou posta algum lugar onde possamos encontrar conteudo. E muito pratico
Hoje estou usando mais o httpie, ele é bem mais amigável, depois dá uma olhada nele. Em breve trarei sim um conteúdo a respeito ;)
Otimo video, queria tirar uma dúvida, como eu faria para ter uma aplicação que tem o proprio login, ou seja pode usar o cadastro da propria aplicação e autenticar pelo google? eu vejo varios serviços que fazem isso, queria entender esse processo. Muito obrigado!
Excelente conteúdo!!!
Vlw, Felipe!
Excelente dica para projetos! Parabéns pelo conteúdo de alto nível.
Que bom que curtiu, Walter! Obrigada pelo feedback 🙏
Conteúdo excelente!
Obrigada, Anderson! 😁
Maravilhosa
Vlw, Mateus! Felicíssima com teu comentário 😁
Conteúdo massa.
top demais, como fazer uma aplicacao que possa logar em uma base de dados propria ou em um terceiro como google ou keycloak?
Boa noite. Otimo video. Gostaria de perguntar se no seu canal tem video fazenndo autenticacao com banco de dados. Gostei muito do uso da linguagem fluente.
Existe sim, mas por enquanto tá disponível apenas pra membros. Ele vai estar disponível pra todos os inscritos no começo do próximo ano :)
Ok....
Excelente didática ! Muito bom!
Bom dia Giuliana! Parabéns pelos conteúdos e pela iniciativa de compartilhar o seu conhecimento. Gostaria de fazer uma pergunta: É possível e recomendado, no mesmo projeto spring boot, eu utilizar recursos de páginas web, no estilo spring mvc, com autenticação tradicional por sessão, com tela de login de usuário e senha e também controladores rest, com endpoints e autenticação/ autorização por oauth nos endpoints? É recomendável utilizar tudo em um só projeto? Se possível, poderia fazer um pequeno exemplo para demonstrar como ficaria essa configuração na parte de segurança? Muito obrigado!
Renato, vou sim trazer um vídeo com essa parte do frontend na segurança também. Posso adiantar que o mais comum é ter um frontend SPA que se integra com suas APIs, e aí nesse desenho onde o client oauth é o back vc usa um cookie de sessão para autenticar o front. Mas, também existe o desenho com o SPA sendo o client, e aí o mais comum é usar o jwt pra autenticar. A gente evita aquele front server side, com raras exceções.
Entendi. Muito obrigado pela resposta. ❤
Não conhecia o Spring OAuth2, mas acredito que é possível se autenticar com qualquer API que possua esse mesmo fluxo de autenticação do Google (Mesmo Grant Type).
Isso mesmo, o oauth estabelece o padrão, por isso fica simples trocar de provedor de identidade quando necessário
Faz vídeo utilizando Keycloak
Anotado, obrigada pela sugestão 🙏
Muito top
Vlw, Thiago! 🙏
Primeiramente gostaria de dar os parabéns pelo vídeo, foi bem legal.
Só ficou uma dúvida, nesses 2 casos usando o cookie e depois o JWT o Authorization Server está lá no Google né, apesar de no segundo caso adicionarmos ele no pom.
Isso, o as fica no Google, no pom adicionamos o client oauth, pra conseguir falar com qualquer as oauth
Giuliana, tudo bem? Ótima aula. Sei que as vezes é complicado conseguir atender todas solicitações de conteúdo, mas não poderia deixar de pedir: Você tem alguma aula onde trabalha uma aplicação que retorna o Token através do Social Login, e este token é utilizado em outros endpoints, conseguindo fazer o mesmo tipo de validação do método usuario/senha? Ou seja, um filtro que através do token informado no header da requisição "Authorization" realize uma busca no repository de usuários e permita ou não a utilização do recurso, dependendo do resultado da análise?
Exatamente isso não tem, mas tem um vídeo que fala com login indo ao banco e depois retornando o jwt e aí usando o jwt pra acessar os recursos. O vídeo está disponível atualmente apenas pros membros mas em breve vai ser disponibilizado para os inscritos tbm, fica de olho 😉
Excelente!
Obrigada, Jeferson!
ótima aula!! :)
tenho que instalar algo para conseguir usar o cadeado? hahaha
Gabryel, tem uma extensão do vscode chamada Emoji Snippets, é só instalar que aí vc usa o : e crl+espaço para visualizar os emojis disponíveis.
Obrigado, to criando um projeto totalmente atualizado, e fiquei perdido sobre a classe de configurações, já que quase não existem exemplos sem extender a WebSecurityConfigurerAdapter.
Pois é, a maioria dos tutoriais está desatualizada, que bom saber que o conteúdo te ajudou, Bceg! 🤩
Que conteúdo maravilhoso, parabéns! Eu ainda não conheço muito sobre OAuth e fiquei com uma dúvida, que se puder responder eu agradeço.
Nesse caso, qualquer pessoa com uma conta google consegue acessar a minha aplicação? Caso eu queira limitar, por exemplo, acesso mediante pagamento, poderia ser feito usando esse método também?
As pessoas com conta Google poderiam acessar a sua aplicação mas você pode limitar algumas funcionalidades por authorities. Esse foi um exemplo simples, normalmente a gente usa um authorization server próprio como keycloak, wso2, e aí temos várias formas de controlar o acesso. Sobre o Oauth, dá uma olhada no card que coloquei no vídeo sobre o assunto 😉
Curti a forma com explicou. Estou penando na implementação um client que pega um jwt de um authorization server customizando, tem alguma dica?
Vlw, Alexandre! Sobre sua dúvida, você pode dar uma olhada na doc do Spring Security, na parte de Client Oauth, que tem algumas opções de customização por lá. Também devo trazer em breve outro conteúdo prático abordando essa arquitetura, ativa as notificações pra não perder! 😉
@@giulianabezerra Obrigado, ficarei no aguardo, notificações ativadas.
Excelente conteúdo... Fiquei com uma dúvida, implementei esse exemplo com jwt porém o "... @AuthenticationPrincipal Jwt jwt " não está sendo preenchido no controller, apesar de autenticar certinho.
Seria alguma configuração la no google ?
Nivaldo, tenta injetar como Object e aí vc checa o que está vindo na variável 😉
Muito obrigado, de verdade, Giu, isso me salvou demaaaaais, que didática incrível, to a uma semana tentando fazer autenticação e só acho coisa desatualizada, ou que não funciona por algum motivo, parabéns pela qualidade !!
Se puder me tira só uma dúvida, se eu quiser usar o Oauth2 para registrar usuários com o login do google no banco de dados da minha API, e criar níveis de permissão, como por exemplo, um ADMIN e um USER, como faço isso ? Tem algum video que mostra essa parte ?
Olá, Gabriel! Que bom que curtiu o conteúdo, tá bem atualizado sim!
Sobre a sua pergunta, vc precisa autenticar com o Google, mas salvar os dados dos usuários autenticados depois na sua base? Se esse for o cenário as permissões teriam que ser configuradas por alguma tela da sua aplicação, após a primeira autenticação pois as permissões puxadas são as do Google. Mas, se for autenticar o usuário na sua base local, aí não seria Oauth (não usou um terceiro para autorizar), e esse exemplo ainda devo trazer aqui pro canal. 😉
@@giulianabezerra Entendii, obrigado ! Ansioso pelo exemplo !
Estou utilizando spring tool suite, e criei o projeto java na versão 11.
Tive que utilizar:
authorizeConfig.antMatchers("/public").permitAll();
Pois este deu erro:
authorizeConfig.requestMatchers("/public").permitAll();
vc saberia o pq disso?
Att :)
Olá, Gabriel! É porque vc está usando o JDK 11 e portanto uma versão do Spring Security menor que a 6. Essa nova sintaxe você só encontra no Spring Boot 3.x, Spring Security 6, e com o JDK 17, que é requisito mínimo para rodar essas versões.
@@giulianabezerra entendi. muito obrigado :)
Existe alguma maneira de usar um formulario criado por mim no front end inves de usar o formulario do spring security, usando o fluxo do Authorization Code? to quebrando a cabeça pra descobrir como fazer isso
Tem sim, dá pra customizar a página de login, estou com esse conteúdo anotado aqui pra trazer um vídeo sobre o assunto, só não deu pra fazer ainda 😅
Me surgiu uma dúvida. Toda vez que aconter qualquer requisição para um endpoint protegido irá fazer uma chamada pra api do google descriptografar o token jwt? Se sim, isso não geraria muita latência na aplicação caso ela comessace a receber bastante requisição?
Na verdade a chamada é pra obter a chave de assinatura, então uma alternativa seria baixar a chave de forma local e evitar essas requisições, ou deixá-la num endereço apartado
Nesse caso um cache resolveria então?
Tenho uma grande duvida, quando eu faço uma aplicação web usando Thymeleaf, o procedimento de autenticação, criptografia e etc continuam da mesma maneira ?
Sim, o que muda é apenas a tecnologia do frontend mesmo, a integração com oauth que mostro no vídeo seria a mesma.
Como seria no caso se eu quisesse ter uma classe na minha aplicacao que representasse o usuario para ele se cadastrar e utilizar jwt para authorization?
Alucard, o pessoal tem feito bastante essa pergunta, eu devo trazer um vídeo em breve falando da config para autenticar o usuário na própria aplicação e utilizando JWT também.
Giuliana como duas aplicações diferentes pode se autenticar num sistema spring security 6. de nmaneira simples, usando apenas jwt para herar token e possivel ? como ?. Obrigado pelos videos
Sim, é possível! Nem tudo precisa ser via Oauth, vou trazer um exemplo desse pro canal 😉
Estou fazendo e me parece que filtro resolve o problema mas como ?
estou usando banco de dados h2, ele bloqueia o banco de dados por ser web no local 8080, como deixar ele livre ?
Olá, Gates! Vc só precisa adicionar a url do h2 ( “/h2-console/**") nas rotas permitidas como mostro em 10:35.
que extension é esse do ícone html?
O oauth2 foi abandonado pelo spring security? Se sim, quais alternativas você sugeriria?
Tinha um projeto oauth separado que de fato foi descontinuado, mas o que mostro no vídeo não foi, que são os starters oauth client e oauth resource server, do spring boot. Pode usar eles como mostrado no vídeo 😉
Não sei porque mas fiz a parte de config do oauth tudo ok mas na hora de acessar o endpoint protegido, ele me da as opções das contas google a ao clicar em alguma, dá o seguinte erro:
[oidc_provider_not_configured] An OpenID Connect Authentication Provider has not been configured. Check to ensure you include the dependency 'spring-security-oauth2-jose'.
Testa numa aba anônima do navegador, isso tá com cara de cache...
@@giulianabezerra ja tinha feito isso e mesmo assim aparece o erro, pedindo essa dependencia "jose"...estranho kkkk
@@giulianabezerra Por incrivel que pareça, ao adicionar essa dependencia "jose", funcionou. Pesquisei e vi que o google ja configura o openid, mas de alguma forma essa dependencia fez funcionar.A presença dessa dependência parece sercrucial para habilitar o suporte ao OpenID Connect na aplicação
@@mateusfonseca988, que estranho, eu acabei de testar o projeto atualizando a versão do spring boot e não dá erro aqui. Será que estás usando uma versão diferente nas dependências?
@@giulianabezerra pior que estou utilizando as versoes atuais mesmo.