material muito legal, estou querendo reviver uns aprendizados que tive na faculdade de java, e estava com dificuldades de achar algo atual e que realmente fosse preparado para um sistema robusto e de nível de mercado, parabéns pelo conteúdo
Fernanda, parabéns pelo conteúdo, tu consegue explicar de forma bem didática. Poderia fazer um projeto implementando o Refresh Token? Acho que poderia ser uma continuação desse projeto com a implementação desse recurso. Obrigado!
Obrigado por voltar o meu ânimo pra criar projetos pessoais e ver se faço algo como freelancer, gostei demais dos seus conteúdos, bem objetivo e muito explicativo. 🎉
Não sou de comentar videos, mas achei a explicação excelente, foi a melhor explicação de security que encontrei no youtube e na Udemy! Obrigado pelo ótimo video!
Ficou muito massa, depois de dias vendo como implementa segurança, vendo videos gringos dos caras criando trocentas classes, esse simplesmente me salvou. Valeu
Mais uma vez parabéns, fiz um projeto e usei como base o seu e ficou muito bom, minha única dificuldade agora é em renovar o token, estou pesquisando e tentando achar a melhor forma de fazer no frontend. 👋👋👋👋
Fernanda, seu canal é incrivel, estou aprendendo muito com seus videos!! Muito obrigada por compartilhar seu conhecimento e ajudar tantas pessoas com sua generosidade!! ❣
Conteúdo muito bom! Recentemente comecei a fazer um projetinho pessoal de um e-commerce que vai ter esse sistema de login com JWT. No meu caso, estou utilizando React e Spring. Infelizmente, muitos vídeos que eu encontrei ensinando a fazer login dessa forma utilizam versões mais antigas do Spring ou são, na maioria, de gringos. É bom saber que tem canais brasileiros que produzem esse tipo de conteúdo com excelente qualidade. Enfim, já havia feito o meu sistema de login por aqui, mas pretendo reformular a implementação porque gostei da forma como foi realizado. Você pretende fazer um vídeo ensinando a fazer deploy de um projeto pessoal como esse que vc realizou? Estou fazendo um portfólio pessoal e acredito que fica mais chamativo para recrutadores e etc
Sequencia de vídeo muito top. No meu a configuração de cors nao funcionou de jeito nenhum, tive que adicionar uma configuração de cors tambem na classe do SecurityConfig para dar certo
manda ai seu github do repositorio ou o que vc mudou no seu codigo, eu não consigo de jeito nemhum fazer o front comunicar com backend é coisa de cors mesmo...
@kipperdev Parabéns pelo conteúdo! Tá massa demais, aprendi muito com seu jeito de explicar. Muito obrigado pela sua dedicação de ensinar, estou aprendendo muito. Voa demais!
Parabéns pelo conteúdo! Uma dúvida: Não seria um problema no SecurityFilter consultar o usuário no banco sempre que eu fosse validar um token (linha 31)?
Ótimo vídeo. Eu uso o Angular no container e o Java na máquina física. Quando o Angular tenta acessar o java recebo erro de CORS, mesmo com as configurações que vc fez.
não consegui utilizar a notação RequiredArgsConstructor no AuthController.... tive que fazer um contstrutor manual mesmo, tirando isso, tudo funcionando perfeitinho :)
Fernanda anciosa que fica balançando as pernas quando grava kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk, eu dou risada pq eu tbm sou assim... referente ao conteudo toppppp demais...
Fer, e o interceptor? Não é mais necessário para adicionar o token no header Authorization das requisições, nessa versão do angular?
6 місяців тому
Não sou muito de java, e seu vídeo explica tudo para que fique tão claro, que ate pensei em mudar, mas quando clonei seu repositório e tentei registrar ficando dando não autorizado :(
Vídeo incrível, só faltou fazer que quando autenticar no login e clicar no botão, ir para a tela de usuário autenticado, sou iniciante no ramo, se eu conseguir fazer volto aqui
Fernanda, em 56:35 voce valida se no localStorage existe um "auth-token", se sim, libera o acesso. E se o usuário colocar um token qualquer lá? ele teria acesso ao componente mesmo sem um token válido.
No frontend não temos muito como controlar muitas coisas, pois querendo ou não o usuário tem acesso a todo código do frontend, através do browser. Isso é só uma validação que coloquei pra evitar exibir páginas pro usuário que ele não deveria ver. Mas a validação de verdade fica no nosso backend! Exemplo, quando abrimos aquela página, de exemplo, ela faria o fetch dos dados pra exibir no backend, e então teria que enviar o token que recebemos no login, caso o usuário tivesse inserido um token inválido no session storage, a gente ia tentar enviar esse token pro backend e nosso servidor iria retornar 403, unauthorized. Dessa forma a gente pode pegar esse erro no front e aí jogar o cara de novo pro login…
O meu ta dando o erro de "No 'Access-Control-Allow-Origin' header is present ". O que poderia ser? pq no arquivo original dela nao tem esse header, e roda normal =S
O meu não estava dando certo, demorei pra descobrir oque estava dando errado, usei a comparação lado a lado do Intellij descobrir o erro em um espaço no replace do prefix kkkkkkkk
É normal aparecer no terminal a senha tipo isso Using generated security password: f97e48e9-894a-45bc-ac2f-b95825ba86f8 This generated password is for development use only. Your security configuration must be updated before running your application in production.
Tava fazendo um sistema mais robusto q inclui login/cadastro e o youtube me recomenda essa perola, continua com o bom trabalho!
material muito legal, estou querendo reviver uns aprendizados que tive na faculdade de java, e estava com dificuldades de achar algo atual e que realmente fosse preparado para um sistema robusto e de nível de mercado, parabéns pelo conteúdo
Você poderia fazer um video de como estudar documentacao em Java. Digo de como entender os métodos, classes etc..
Fernanda, parabéns pelo conteúdo, tu consegue explicar de forma bem didática. Poderia fazer um projeto implementando o Refresh Token? Acho que poderia ser uma continuação desse projeto com a implementação desse recurso. Obrigado!
O melhor vídeo da Kipper "falo da explicação", cada detalhe bem explicado e de forma direta, perfeito!
Gostei muito destes 2 tutoriais.
Consegui acompanhar e está a funcionar deste lado.
Bom trabalho!!
Obrigado por voltar o meu ânimo pra criar projetos pessoais e ver se faço algo como freelancer, gostei demais dos seus conteúdos, bem objetivo e muito explicativo. 🎉
Não sou de comentar videos, mas achei a explicação excelente, foi a melhor explicação de security que encontrei no youtube e na Udemy! Obrigado pelo ótimo video!
Parabéns! Trabalho sensacional e explicação tão excelente quanto!
Ficou muito massa, depois de dias vendo como implementa segurança, vendo videos gringos dos caras criando trocentas classes, esse simplesmente me salvou. Valeu
Mais uma vez parabéns, fiz um projeto e usei como base o seu e ficou muito bom, minha única dificuldade agora é em renovar o token, estou pesquisando e tentando achar a melhor forma de fazer no frontend. 👋👋👋👋
Conteúdo precioso, Fernanda!!!! Você me inspira, quando eu tiver conhecimentos consolidados quero fazer um canal que nem o seu!
Fernanda, seu canal é incrivel, estou aprendendo muito com seus videos!! Muito obrigada por compartilhar seu conhecimento e ajudar tantas pessoas com sua generosidade!! ❣
Oii Gi, que bom ler a sua mensagem 💜
Fico muito feliz mesmo que você goste do conteúdo e que ele tenha te ajudado a aprender.
Abraços!
Toppp Fernanda!!!
Acho massa como você nos passa um pouco de como são as coisas no “mundo real”, continue assim, parabéns!!
Fiz o front contigo, mas o back fiz em C#. Deu tudo certo aqui. parabéns pelo conteúdo.
Boaaa! Parabéns! Que bom q deu certo
Adoro seu conteúdo. Você faz tudo bem feito, e mo carismática.
Muito obrigado Bruno! Fico feliz demais com esse tipo de comentário 💜💪🏼
Perfeirto. Bom conteúdo, boa didáctica.
Seus conteúdos são ótimos. Parabéns!!!
Muito bom Fer, show demais obrigado por sua dedicação em passar seus conhecimentos de forma gratuita, gratidão.
Conteúdo muito bom! Recentemente comecei a fazer um projetinho pessoal de um e-commerce que vai ter esse sistema de login com JWT. No meu caso, estou utilizando React e Spring. Infelizmente, muitos vídeos que eu encontrei ensinando a fazer login dessa forma utilizam versões mais antigas do Spring ou são, na maioria, de gringos. É bom saber que tem canais brasileiros que produzem esse tipo de conteúdo com excelente qualidade.
Enfim, já havia feito o meu sistema de login por aqui, mas pretendo reformular a implementação porque gostei da forma como foi realizado. Você pretende fazer um vídeo ensinando a fazer deploy de um projeto pessoal como esse que vc realizou? Estou fazendo um portfólio pessoal e acredito que fica mais chamativo para recrutadores e etc
Sequencia de vídeo muito top.
No meu a configuração de cors nao funcionou de jeito nenhum, tive que adicionar uma configuração de cors tambem na classe do SecurityConfig para dar certo
Com sua configuraçãono security vc conseguiu cadastrar? manda ai pfv irmão. to quebrando a cabeça aqui D:
manda ai seu github do repositorio ou o que vc mudou no seu codigo, eu não consigo de jeito nemhum fazer o front comunicar com backend é coisa de cors mesmo...
Minha classe SecurityConfig ficou assim. Peguei no chat gpt.
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Autowired
private CustomUserDetailsService userDetailsService;
@Autowired
SecurityFilter securityFilter;
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.cors()
.and()
.csrf(csrf -> csrf.disable())
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(authorize -> authorize
.requestMatchers(HttpMethod.POST, "/auth/login").permitAll()
.requestMatchers(HttpMethod.POST, "/auth/register").permitAll()
.anyRequest().authenticated()
)
.addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class);
return http.build();
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
return authenticationConfiguration.getAuthenticationManager();
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("localhost:4200"); // Origens permitidas
config.addAllowedHeader("*"); // Permitir todos os cabeçalhos
config.addAllowedMethod("*"); // Permitir todos os métodos HTTP
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
top demais sua aula, vc e muito fera. parabens
@kipperdev Parabéns pelo conteúdo! Tá massa demais, aprendi muito com seu jeito de explicar. Muito obrigado pela sua dedicação de ensinar, estou aprendendo muito. Voa demais!
Perfeitaaaa.. obrigada por compartilhar seus conhecimentos 🥰
Parabéns....vc explica muito bem....obrigado por compartilhar os seus conhecimentos
você arrasa muito, Fernanda! esse vídeo me ajudou pra caramba! obrigada por compartilhar seu conhecimento!
Kipper acabou sendo minha inspiração para usar Java, percebi o quanto é bom para Back-end 😅
Que bomm, JD 💜
Te trouxe para o lado certo do backend hahahah
Parabéns pelos seus vídeos são diferenciados!
Muitooo obrigada Matheus, de verdade! 🥰💜
Você e D +, vou me torna membro do canal, obrigado por nós ajudar nessa caminha com Java, de maneira clara, atual e dinâmica...
Muitoo obrigada 💜
Fico feliz que o video ajudou e seja bem vindo aos membros do canal 💜💜💜
Incrível, exatamente o que eu precisava para hoje!
Obrigado Fernanda, esse projeto ficou demais 👏🏾👏🏾👏🏾
Parabéns pelo conteúdo! Uma dúvida: Não seria um problema no SecurityFilter consultar o usuário no banco sempre que eu fosse validar um token (linha 31)?
Ótimo vídeo. Eu uso o Angular no container e o Java na máquina física. Quando o Angular tenta acessar o java recebo erro de CORS, mesmo com as configurações que vc fez.
grande maquina de codigo! so consigo acompanhar no 0.75 e a pulso, um dia eu chego la kkkkkk mt bom fe
Preciso implementar segurança em meu projeto e to apanhando ha 3 dias e esse video me vai me salvar
Vc é culpada por eu começar a gostar de Java kkkkk, comecei a estudar a linguagem essa semana
Hahahaha fico feliz de ter essa culpa então! Bons estudos 💜
Como tá hoje em dia? Sempre legal ver a evolução do pessoal em Java
não consegui utilizar a notação RequiredArgsConstructor no AuthController.... tive que fazer um contstrutor manual mesmo, tirando isso, tudo funcionando perfeitinho :)
Parabéns pelo conteúdo, conseguiria mostrar como faz o deploy dessa aplicação num servidor web ou até mesmo local ?
Fernanda anciosa que fica balançando as pernas quando grava kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk, eu dou risada pq eu tbm sou assim... referente ao conteudo toppppp demais...
Fernanda, tem diferença entre extender OncePerRequestFilter e BasicAuthenticationFilter, tenho dois cursos e cada um usa uma forma diferente...
Baita de um Vídeo Fernanda , muito obrigado !!
Muito obrigada, Junior
Fer, e o interceptor? Não é mais necessário para adicionar o token no header Authorization das requisições, nessa versão do angular?
Não sou muito de java, e seu vídeo explica tudo para que fique tão claro, que ate pensei em mudar, mas quando clonei seu repositório e tentei registrar ficando dando não autorizado :(
Grande aula Professora Fernanda.
Obrigada Carlos!! Fico feliz que gostou 💜
Nós que somos grato a você @@kipperdev
Excelente, vídeo! Obrigado
Fico feliz que gostou!!
Estava ansioso por esse vídeo!! :)
Espero que goste Gui!! 💜
Vídeo incrível, só faltou fazer que quando autenticar no login e clicar no botão, ir para a tela de usuário autenticado, sou iniciante no ramo, se eu conseguir fazer volto aqui
consegui, quem quiser saber como manda um salve
@@TIAGOLEOMILBALAN-mf5et SALVE!
Vídeo fantástico
Que bom que gostouu, Mi
Fernanda, é correto fazer uma chamada de metodo que acessa o banco dentro do security?
Fê, no spring boot 3.3.4 o CORS tá barrando o login no front... Bora atualizar? Não consegui.
muito bom fê, cade o video do front?
eu te amo me salvou muito no trampo
Boaaa, que bom
Boa noite Fernanda Kipper, quando vou fazer o teste de gerar Token no Insomnia está dando erro 401 Unauthorized tem algo que estou fazendo errado?
Vai trazer algum vídeo sobre testes pra esse projeto?
Fernanda você pensa em lançar um curso futuramente?
Fernanda, em 56:35 voce valida se no localStorage existe um "auth-token", se sim, libera o acesso. E se o usuário colocar um token qualquer lá? ele teria acesso ao componente mesmo sem um token válido.
No frontend não temos muito como controlar muitas coisas, pois querendo ou não o usuário tem acesso a todo código do frontend, através do browser.
Isso é só uma validação que coloquei pra evitar exibir páginas pro usuário que ele não deveria ver.
Mas a validação de verdade fica no nosso backend!
Exemplo, quando abrimos aquela página, de exemplo, ela faria o fetch dos dados pra exibir no backend, e então teria que enviar o token que recebemos no login, caso o usuário tivesse inserido um token inválido no session storage, a gente ia tentar enviar esse token pro backend e nosso servidor iria retornar 403, unauthorized. Dessa forma a gente pode pegar esse erro no front e aí jogar o cara de novo pro login…
Entendi, faz todo sentido. Muito obrigado, seu conteúdo sobre spring é super completo.
Parabéns... vc domina muito, como faço para pagar um almoço pra vc? hehehe
Top demais
Oi, sou iniciante e estou na dúvida se estudo o spring depois o Spring boot ou pulo o spring e vou direto para o spring boot, e os porquês! obrigado
Olha nao entendi metade das coisas que vc explica mas me da mais vontade de continuar estudando java
Boaa, é isso ai! Vai estudando até entender!
Fernandao porque voce usa @Autowired para injeção ao invez de fazer via construtor ??
Questão de gosto!
Dúvida de no backend temos o health comum, contudo o contêiner de front também tem health, sabe como faz?
conteudo mto bom parabens
Valeuu Th 💜
Saudações!
Eu não consigo achar link do primeiro vídeo do front, alguém poderia paratilhar comigo por favor?🙏🏿🙏🏿🙏🏿🙏🏿
ficou apenas uma Dúvida. Qual o objectivo de CustomUserDetailsService implements UserDetailsService
O meu ta dando o erro de "No 'Access-Control-Allow-Origin' header is present ". O que poderia ser? pq no arquivo original dela nao tem esse header, e roda normal =S
Porque o target fica em laranja? é normal ne
Muito bom
O meu não estava dando certo, demorei pra descobrir oque estava dando errado, usei a comparação lado a lado do Intellij descobrir o erro em um espaço no replace do prefix kkkkkkkk
Tem como fazer um vídeo sobre consumo de API privada usando Token ?
#Feign
É normal aparecer no terminal a senha tipo isso
Using generated security password: f97e48e9-894a-45bc-ac2f-b95825ba86f8
This generated password is for development use only. Your security configuration must be updated before running your application in production.
Pq não usar o VS code para fazer o Back End?
Mais por preferência mesmo, mas nada impede!
top!
meu validateToken o getSubject retorna o UUID e não o email, logo tive que fazer alteração. Alguem sabe me dizer o motivo?
Top
Obrigado pelo conteúdo, acho que se usasse Windows seria ainda melhor! ❤
hahaha eu prefiro Mac 💜
Tomara q um dia vc trabalhe com .NET rs
Hahahaha quem sabe
muchas gracias ajjaja you save me
Não encontrei o código no git
Aquii
github.com/Fernanda-Kipper/login-app-backend
where is the token
Depois que vc tem o primeiro contato com Java, não quer saber mais de outras linguagens kkk
sottotitoli in italiano o inglese please
P R O M O S M
Nossa, angular é tão mais facil
Muito Bom
muito bom