Protegendo sua aplicação Java com Spring Security - Congresso de TI

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

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

  • @marcos_silvestri
    @marcos_silvestri 5 месяцев назад

    Assisti agora em 2024 e adorei o conteúdo!

  • @aldecirdsantos
    @aldecirdsantos 3 года назад

    Boa tarde Alexandre, o seu trabalho é muito bacana

  • @cezarmarcal9943
    @cezarmarcal9943 3 года назад +3

    Incrível, obrigado por compartilhar gratuitamente um conteúdo tão relevante

  • @jmauroprofessor
    @jmauroprofessor 2 года назад

    Muito obrigado mais uma vez Alexandre! Show de aula!!

  • @luzianascimento8474
    @luzianascimento8474 7 лет назад +2

    Alexandre Parabéns. Essa vídeo aula vai me acrescentar em muito os meus conhecimentos. Adorei a sua performance. Muito didático. São 02:00 da madrugada e estou aqui firme e forte te assistindo. Aula maravilhosa. Gratíssima pelos seus ensinamentos. Um Grande Abraço.

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Luzia,
      Bacana!
      Continue nos acompanhando em nossas redes sociais.
      #equipeAlgaWorks

  • @gabrielgoncalvesdeoliveira957
    @gabrielgoncalvesdeoliveira957 2 года назад

    Uau, que vídeo perfeito! Era o guia de implementação de segurança com o Spring Security que eu estava precisando! Obrigado e parabéns a toda a equipe da AW, Deus abençoe sempre!

  • @ruanpablo1370
    @ruanpablo1370 2 года назад

    Até agora eu só vi 6 minutos e já tô achando perfeito

  • @jaironascimentosousa
    @jaironascimentosousa 7 лет назад +1

    Excelente muito obrigado pela grande aula, Alexandre você é muito corajoso e ser um dos poucos a trocar conhecimento.

    • @algaworks
      @algaworks  7 лет назад +1

      Boa tarde Jairo,
      Bacana!
      Continue nos acompanhando em nossas redes sociais.
      #equipeAlgaWorks

  • @carlosdanielam1
    @carlosdanielam1 6 лет назад +4

    Excelente palestra, ajudou muito a entender a proposta do spring security

  • @pedroeuropeu
    @pedroeuropeu 5 лет назад +1

    Muito bom, muito didatico. Deu pra pegar tudinho que foi explicado em apenas uma passada..

    • @algaworks
      @algaworks  5 лет назад

      Legal Pedro. Continue nos acompanhando. #EquipeAW

  • @caioalexandrenascimentodas2712
    @caioalexandrenascimentodas2712 7 лет назад +1

    Conteúdo muito bom, didática incrível, vou utilizar em meus projetos, obrigado. Continuem assim.

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Caio,
      Continue nos acompanhando em nossas redes sociais.
      #equipeAlgaWorks

  • @carloshfmaciel
    @carloshfmaciel 6 лет назад +1

    Parabéns Alexandre. Grande didática. Muito bem explicado. Abs,

    • @algaworks
      @algaworks  6 лет назад

      Oi Carlos, tudo bem? Valeu pelo feedback. Continue acompanhando nossas publicações para ter acesso a novos conteúdos. Abraço!

  • @armenlolo
    @armenlolo 3 года назад

    essa aula foi demais!!!

  • @paulogimenez749
    @paulogimenez749 4 года назад

    Parabéns Alexandre. Muito boa a aula.

  • @rciteste3542
    @rciteste3542 3 года назад

    Que aula!

  • @wendelguedes
    @wendelguedes 7 лет назад +1

    Parabéns, Alexandre!
    Ficou muito bacana o vídeo.

  • @JohnQuispe007
    @JohnQuispe007 6 лет назад +1

    Top. Aprendi muito.

  • @fernandadebarros3280
    @fernandadebarros3280 7 лет назад +1

    Muito bom, parabéns e obrigado pela partilha.

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Fernanda,
      Bacana!
      Continue nos acompanhando em nossas redes sociais.
      #equipeAlgaWorks

  • @GilsonSantosNgo
    @GilsonSantosNgo 5 лет назад +1

    Aula sensacional. Estava procurando algo que explicasse isso com calma e com detalhes. Muitas das partes foram e sanam dúvidas essenciais. No final, sei que os códigos são grandes e fica difícil a explicação. Revendo dá pra entender. Algo que senti falta é que ao salvar os perfis no BD vc precisa colocar "ROLE_" + TIPO DO PERFIL. A pergunta é: existe alguma forma de não colocar dessa forma no BD?

  • @Cassassc
    @Cassassc 3 года назад

    Excepcional!
    Parabéns!
    Ajuda demais.

  • @lekxander
    @lekxander 3 года назад

    Que aula! Gratidão por compartilhar!!

  • @mact423
    @mact423 7 лет назад +2

    baixei o projeto la mas na hora de importar e selecionar n consigo mas mesmo assim achei boa a aula

  • @kelvinschneider7064
    @kelvinschneider7064 2 года назад

    Opa, como faço para por exemplo, colocar no browser 'localhost:8080/projetos' -> aparecer a tela de login, e após logar, redirecionar para a pagina de projetos, ou a que eu defini no url do browser (e não para a pagina home/default)

  • @achieri
    @achieri 5 лет назад

    Só uma correção... nas constraint nao executam pois o tipo do campo da tabela grupo_permissao - campo permissao_id tem que ser bigint. O mesmo server para usuario_grupo grupo_id bigint

  • @andreygalassi
    @andreygalassi 7 лет назад

    gostei bastante, mas a gente consegue fazer o controle de autorização tb direto nos métodos dos controllers?

  • @McLipinhoTv
    @McLipinhoTv 4 года назад

    Queria que fizesse isso com as tabelas no banco de dados e também que fosse registrado os logins.

  • @valmirknasel
    @valmirknasel 7 лет назад +1

    Bem didático! Parabéns!

  • @achieri
    @achieri 5 лет назад +1

    Salvou a minha pele. PARABÈNS!!!!

  • @maykon-oliveira
    @maykon-oliveira 6 лет назад

    Ótima palestra! Muito útil. ☕

  • @iannbraga9280
    @iannbraga9280 5 лет назад

    Aula muito boa!! Facilitou bastante na hora de entender o processo e o porquê de cada coisa!!
    Mas to com um probleminha aqui, criei minha pagina de login e tudo, mas quando autentico o usuario e senha ele só recarrega a pagina de login.
    Como eu resolvo?

  • @tikorth4039
    @tikorth4039 6 лет назад +1

    A classe WebSecurityConfig citada está com anotação @Configuration no exemplo, mas não sei se faz diferença em adotar como anotação o @EnableWebSecurity que vejo ser mais citado nos tutorias presentes em sites :|

  • @jonathanborralho349
    @jonathanborralho349 7 лет назад +1

    Olá, Alexandre. Parabéns pela palestra, cara. Já li também alguns artigos seus no blog da AlgaWorks e vejo que você manja muito e sabe como expressar todo esse conhecimento. Você poderia, por gentileza, nos indicar alguma referência que seja prática - além da documentação em si - sobre Spring MVC e Spring Framework em geral? Já li o e-book de vocês sobre Spring Boot e fiquei querendo saber mais. Pode ser em inglês também! Abraço!!

  • @micheloliveiramarciano
    @micheloliveiramarciano 6 лет назад +2

    Alexandre, sabe me dizer como resolver o erro abaixo? Náo encontrei a solu;áo em nenhum lugar..
    tomcat 4login:1 Refused to apply style from 'localhost:8080/login' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

  • @thiagomatar7942
    @thiagomatar7942 7 лет назад +1

    Olá, parabéns pela palestra. Ficou muito bom. Só uma sugestão, a parte do UserDetailsService ficou meio confuso, você poderia ter usado o pattern Repository para facilitar. Mas no demais está de show de bola!

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Thiago,
      Agradecemos a sugestão.
      Continue nos acompanhando em nossas redes sociais.
      #equipeAlgaWorks

  • @MrKiraBR
    @MrKiraBR 6 лет назад +1

    Não entendi uma coisa. Porque na query USUARIO_POR_LOGIN só está comparando o login na clausula do where, e o password, compara na onde?

    • @algaworks
      @algaworks  5 лет назад

      Estamos usando o Spring Security para controlar isso. E o Sprin Boot só facilita essa configuração.
      Veja que na classe UdsSecurityConfig, colocamos a anotação @Configuration, e nesta classe, criamos um método 'configureGlobal' que será responsável por definir as configurações de autenticação com o AuthenticationManagerBuilder e o PasswordEncoder passados por parâmetro.
      Normalmente isso é bem transparente. Só é preciso entender como funcionam estas configurações automáticas do Spring. #equipeAW

  • @dpogomes1
    @dpogomes1 6 лет назад

    Otima aula, Alexandre pq no localhos funciona normal, mas quando jogo no centos7 e na hora de logar aparece isso: {"timestamp":1525419086939,"status":999,"error":"None","message":"No message available"}

  • @mateuslima8144
    @mateuslima8144 3 года назад

    QUE DELICIA DE AULAAAAAAAAAA

  • @douglas3374
    @douglas3374 7 лет назад +2

    Como sempre ótima didática parabéns, estou só com uma dúvida, perdoe se for bobagem.
    baixei o projeto e rodei sem mexer em nada e ele trouxe as informações do banco
    que banco é esse ? que ele utilizou ?
    debguei vi que o retorno foi esse [conn9: url=jdbc:h2:mem:testdb user=SA]]
    de onde está vindo essa informação

    • @OutboxThinker1
      @OutboxThinker1 7 лет назад

      Adicione a dependency da h2. H2 é um banco de dado bom pra fase de test. link from maven
      mvnrepository.com/artifact/com.h2database/h2/1.4.196
      Lembre-se que este db podes abri-lo apartir mesmo do browser. localhost:8080/h2-console.
      One hint just change that with mySql or something else. Hope I help.

    • @douglas3374
      @douglas3374 7 лет назад

      Como faço para alterar e colocar no meu mySql

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Douglas,
      Criamos a Comunidade Java da AlgaWorks, através desse link: alga.works/comunidadejava , justamente para ajudar quem está sem suporte ou ainda não adquiriu nenhum curso com a gente.
      #equipeAlgaWorks

  • @raphaelaguiar8574
    @raphaelaguiar8574 7 лет назад +1

    Tentando estudar e ao mesmo tempo colocar na app que estou desenvolvendo, as páginas não são bloqueadas. Logo após o login e senha tem acesso a qualquer página: Se eu digitar /paciente/novo a página abre normalmente após usuário/senha. Fiz assim para teste:
    @Override
    protected void configure(HttpSecurity http) throws Exception {
    http.
    authorizeRequests()
    .antMatchers("/paciente/home").hasAnyRole("PG_HOME")
    .anyRequest()
    .authenticated()
    .and()
    .formLogin()
    .loginPage("/entrar")
    .permitAll();
    }
    ====================================================================
    @Configuration
    public class InMemorySecurityConfig {
    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder builder) throws Exception {
    builder
    .inMemoryAuthentication()
    .withUser("abc").password("123").roles("PG_HOME");
    }
    }
    ===================================================================

    • @algaworks
      @algaworks  7 лет назад

      Olá Raphael, tudo bem? Você pode deixar a sua dúvida na Comunidade Java da AlgaWorks, através desse link: alga.works/comunidadejava
      Criamos essa comunidade justamente para ajudar nossos seguidores e alunos. Por lá tanto os alunos e membros da comunidade quanto os instrutores dos cursos poderão te ajudar.
      Até mais e bons estudos!
      #equipeAlgaWorks

  • @gustavocarvalho7988
    @gustavocarvalho7988 7 лет назад +9

    Bom dia Alexandre. É possível usar spring security junto com angular?

  • @franciscoantonionetoalves8127
    @franciscoantonionetoalves8127 7 лет назад +1

    Como interligar ao MySql essa pequena aplicação?

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Francisco,Criamos a Comunidade Java da AlgaWorks, através desse link: alga.works/comunidadejava , justamente para ajudar quem está sem suporte ou ainda não adquiriu nenhum curso com a gente. Por lá tanto os alunos e membros da comunidade quanto os instrutores dos cursos poderão te ajudar.
      #equipeAlgaWorks

    • @cleutorocha2067
      @cleutorocha2067 7 лет назад

      Francisco eu dei uma pedalada aqui para fazer conectar ao banco ai está a configuração do application.properties, se for está pergunta qualquer coisa me fala se deu certo.
      spring.datasource.url=jdbc:mysql://localhost/seubanco?verifyServerCertificate=false&useSSL=false&requireSSL=false
      spring.datasource.driver-class-name=com.mysql.jdbc.Driver
      spring.datasource.username=root
      spring.datasource.password=
      spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
      spring.jpa.database = MYSQL
      # Show or not log for each sql query
      spring.jpa.show-sql = true
      # Hibernate settings are prefixed with spring.jpa.hibernate.*
      spring.jpa.hibernate.ddl-auto=create-drop
      spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect

    • @franciscoantonionetoalves8127
      @franciscoantonionetoalves8127 7 лет назад

      Bom dia,
      Deu certo meu amigo. Grato.

  • @MarcusVPR
    @MarcusVPR 7 лет назад

    Tem algum exemplo com múltiplas paginas de login? No meu site vou ter areas para perfis de usuários diferentes, dai a necessidade de multiplas paginas para login !

    • @robsonlirayou
      @robsonlirayou 6 лет назад

      @Alexandre Afonso Prezado estou procurando justamente por isto mais em um outro cenário, ter a aplicação Web e dentro dela ter um Recurso REST , tudo em um mesmo sistema então preciso de um login pelo formulário e outro pelo HTTP para a API, estou com um enorme problema porque eu cheguei a criar varias instancias de WebSecurityConfigurerAdapter dentro do arquivo de configuração do Security uma justamente para a API contudo pelo postman eu recebo o html da pagina de login mesmo tendo configurado
      a uri começando com /api localhost:8090/api/produtos sera que tem algum material link para poder me ajudar nesta questão?

  • @alexandrepranskunas2012
    @alexandrepranskunas2012 5 лет назад

    Muito bom o conteúdo, mas faltou um item nessa lista. Como recuperar uma senha através de um link. Abraço.

  • @CaioCesar-ti6eq
    @CaioCesar-ti6eq 6 лет назад +1

    Baixei o codigo, ao terntar fazer login, verifiquei o post no navegador ele que está retornando um status 302. Se eu for nos parametros deste post, o username e password q estou digitando no form está sendo indicado sem nenhuma segurança. Como proteger isso?

    • @algaworks
      @algaworks  6 лет назад +1

      Oi Caio, bom dia. Tudo bem?
      Sobre o 302 é um redirecionamento normal.
      Sobre ele estar desprotegido... Imagino que esteja olhando isso no developer do Chrome, não é mesmo? Porque não tem como você proteger isso. O que você pode fazer é utilizar o HTTPS para proteger a requisição que sai da máquina (entre sair da máquina e chegar no servidor).

  • @wandersonsantoslisboa6233
    @wandersonsantoslisboa6233 7 лет назад +1

    Sou novo no spring gostaria da ajuda de vcs... ao subir minha aplicação e esse erro e gerado: Error creating bean with name 'viewResolver' defined in class path resource , se alguém puder me ajudar... gostaria de parabenizar a Algaworks pelas aulas e cursos!

    • @algaworks
      @algaworks  7 лет назад

      Bom dia Wanderson,
      Somente com essas informações não dá para saber exatamente como você pode resolver seu problema. Vá, por favor, até nossa comunidade e programadores Java (em alga.works/comunidadejava) e deixe sua pergunta com mais detalhes por lá. Coloque o erro completo e a classe de configuração onde você está configurando o "viewResolver".
      #equipeAlgaWorks

  • @carlosgonzaga1295
    @carlosgonzaga1295 5 лет назад +2

    Olá interessante! porém fiz o import do projeto, mas está aprestando o seguinte erro ao rodar " Erro: Não foi possível localizar nem carregar a classe principal com.algaworks.gp.Aplicacao"

    • @algaworks
      @algaworks  5 лет назад

      Tente remover o método main da classe SecurityConfig e rodar novamente. #equipeAW

  • @iran9719
    @iran9719 7 лет назад +4

    Bom dia Alexandre! Parabéns pelo conteúdo!
    Preciso invalidar o usuário, caso ele digita a senha errada no máximo 4 ou 5 vezes, isso se ele estiver digitando o "username corretamente, claro". Sabe me dizer se o spring security tem algo pronto para isso?

  • @dymileo
    @dymileo 6 лет назад

    Estou com uma dúvida, de como exibir o nome do usuário logado, utilizando o Thymeleaf, se puder me explicar, eu agradeço.

    • @algaworks
      @algaworks  6 лет назад

      Da forma como vou passar aqui pra você, primeiro vai precisar dessa dependência aqui:
      org.thymeleaf.extras
      thymeleaf-extras-springsecurity4
      ... Depois vai poder usar, nas tags HTML, os atributos:
      sec:authorize="hasRole('UM_PAPEL_QUALQUER')"
      ... e:
      sec:authentication="name"
      Ou então, um pouco diferente dos exemplos acima, pode usar assim:
      th:text="${#authentication.principal.name}"
      Acredito que ainda tenham variações disso, mas assim é a forma que mais usamos. #equipeAW

  • @rlcomputec3047
    @rlcomputec3047 7 лет назад +1

    Olá, primeiramente parabéns pela aula, muito boa! Tenho uma dúvida, como eu configuro no arquivo Web.xml a classe de configuração WebSecurityConfig?

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde,
      Não precisa configurar a classe WebSecurityConfig no web.xml, mas caso ainda fique com dúvidas você pode tirar elas em nossa comunidade de desenvolvedores Java. Vá até alga.works/comunidadejava e deixe os detalhes da sua pergunta por lá que tem várias pessoas disposta a ajudar (inclusive nossos instrutores passam por lá as vezes também).
      #equipeAlgaWorks

    • @rlcomputec3047
      @rlcomputec3047 7 лет назад +1

      algaworks Obrigado!

  • @valmirknasel
    @valmirknasel 7 лет назад +1

    Esse "remember-me" não seria um ponto a ser explorado pra alguém pegar nome de usuário e senha pra fazer um acesso indevido? As informações do usuário ficam armazenadas de que forma? Criptografadas ou em plain-text?

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Valmir,
      Criamos a Comunidade Java da AlgaWorks, através desse link: alga.works/comunidadejava , justamente para ajudar quem está sem suporte ou ainda não adquiriu nenhum curso com a gente. Por lá tanto os alunos e membros da comunidade quanto os instrutores dos cursos poderão te ajudar.
      #equipeAlgaWorks

  • @hermogs1088
    @hermogs1088 7 лет назад +2

    Grande Alexandre! você sem alguma dica sobre intregração do spring com o Active Diretory?

  • @raimundomorais1095
    @raimundomorais1095 7 лет назад +1

    Podemos ter acesso ao codigo fonte ?

    • @algaworks
      @algaworks  7 лет назад

      Boa tarde Raimundo,
      Criamos a Comunidade Java da AlgaWorks, através desse link: alga.works/comunidadejava , justamente para ajudar quem está sem suporte ou ainda não adquiriu nenhum curso com a gente. Por lá tanto os alunos e membros da comunidade quanto os instrutores dos cursos poderão te ajudar.
      #equipeAlgaWorks

  • @adautodasilvalima3469
    @adautodasilvalima3469 4 года назад

    Não querendo ser chato. Não existe "a nível de" diga "ao nível de"