SlideShare uma empresa Scribd logo
Frameworks para
Desenvolvimento web em
Java
Aula 04 - Spring Security
Spring Security
● Framework para controle de acesso a
sistemas criado em 2003 com licença
Apache 2.0;
● Altamente customizavel;
● Simples e fácil de integrar com vários tipos
de framework;
● Utilizado por grandes corporações desde
agências do governo, bancos e instituições
militares;
Spring Security - Funcionalidades
● Controle de acesso HTTP e HTTPS;
● Configuração não intrusiva;
● Utilização não invasiva, utilizando AOP;
● Controle de acesso a métodos das regras de
negócio;
● Encoder da senha
● Tipos de autenticação:
○ OpenID
○ LDAP
○ Basic authentication HTTP
○ Base de dados Todos tipos de autenticação:
http://docs.spring.io/spring-security/site/docs/3.2.x/refere
nce/html/introduction.html
Funcionamento básico
URL Filtros Spring
Usuários
Permissões
Exige Permissão? Analisa
Download com Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Para projetos com Spring-boot:
Configuração Básica
● Com o Spring-boot já vem configurado por
padrão:
○ Bloqueio de URL
○ Usuário e senha em memória
○ Liberação de arquivos static/resource
○ Gera uma senha padrão para testes
● Todas as configurações podem ser
reescritas.
Trocando usuário e senha padrão
● No arquivo application.properties
○ security.user.name=meuUsuario
○ security.user.password=minhaSenha
○ security.user.role=admin
Prática
● Executar o primeiro teste com o
spring-security
Customizando form de login
● Deverá ser criada uma classe para
customizar os comportamentos do Spring
● Esta classe pode estender de
WebSecurityConfigurerAdapter para
facilitar a configuração.
● Para o Spring reconhecer a configurar
deverá ser criado um Bean na classe
principal de configuração.
Customizando form de login
Classe de configuração para WebSecurity
Criação do Bean na classe Main
Customizando form de login
Configurando o formulário. Deve ser configurado
na classe WebSecurityConfig
Customizando form de login
Criar página jsp para o login
Customizando form de login
Controlador para tratar erros e logout
Liberar URL's
Autenticação com Base de dados
Deve ser criada uma classe de Serviço que implementa a interface
UserDetailService e configurar na classe WebSecurityConfig.
Diagrama Usuários e Permissões
Service - UsuarioService
Usuario - UsuarioDetails
UsuarioPermissao - GrantedAuthority
Classe usuário método que busca permissões
Usuário da Sessão
● Anotar o métodos com a regra de segurança
Segurança nos métodos
@EnableGlobalMethodSecurity(securedEnabled=true, prePostEnabled=true)
● Configurar WebSecurityConfig para interceptar
anotações de segurança nos métodos
Segurança nos métodos
● Liberar para anonimos utilizarem
○ @Secured("IS_AUTHENTICATED_ANONYMOUSLY")
● Pode ser utilizado JSR-255
public interface BankService {
@PreAuthorize("isAnonymous()")
public Account readAccount(Long id);
@PreAuthorize("isAnonymous()")
public Account[] findAccounts();
@PreAuthorize("hasAuthority('ROLE_TELLER')")
public Account post(Account account, double amount);
}
<global-method-security jsr250-annotations="enabled" />
Prática

Mais conteúdo relacionado

PDF
Spring Data Jpa
KEY
Introdução ao Spring Framework
PDF
Spring: Overview do framework mais popular para desenvolvimento em Java
PPTX
Introdução ao Spring Framework MVC
PDF
Spring Boot
PPTX
Spring Boot Tutorial
PPTX
Spring boot - an introduction
PPTX
Spring Web MVC
Spring Data Jpa
Introdução ao Spring Framework
Spring: Overview do framework mais popular para desenvolvimento em Java
Introdução ao Spring Framework MVC
Spring Boot
Spring Boot Tutorial
Spring boot - an introduction
Spring Web MVC

Mais procurados (20)

PDF
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
PDF
Curso de Java: Introdução a lambda e Streams
PDF
淺談RESTful API認證 Token機制使用經驗分享
PDF
Spring Boot & Actuators
PPT
Spring ppt
PDF
今さらWPF? いいえ、今こそWPF!
PPTX
Introduction to Spring Boot
PPTX
Spring Boot
PPTX
Spring Security
PDF
Spring Boot - Uma app do 0 a Web em 30 minutos
ODP
Xke spring boot
PPTX
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptx
PDF
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
PDF
Spring boot introduction
ODP
Introduction to Spring Framework and Spring IoC
PPT
Introduction to the Web API
PDF
怖くないSpring Bootのオートコンフィグレーション
ODP
Testing RESTful Webservices using the REST-assured framework
PPTX
Spring boot
PPTX
Spring boot Introduction
카카오 광고 플랫폼 MSA 적용 사례 및 API Gateway와 인증 구현에 대한 소개
Curso de Java: Introdução a lambda e Streams
淺談RESTful API認證 Token機制使用經驗分享
Spring Boot & Actuators
Spring ppt
今さらWPF? いいえ、今こそWPF!
Introduction to Spring Boot
Spring Boot
Spring Security
Spring Boot - Uma app do 0 a Web em 30 minutos
Xke spring boot
Joel Schuweiler_AWS IAM Identity Center (Single Sign On).pptx
What Is Spring Framework In Java | Spring Framework Tutorial For Beginners Wi...
Spring boot introduction
Introduction to Spring Framework and Spring IoC
Introduction to the Web API
怖くないSpring Bootのオートコンフィグレーション
Testing RESTful Webservices using the REST-assured framework
Spring boot
Spring boot Introduction
Anúncio

Destaque (11)

PDF
Framework web 3 - JSF + Spring boot
PDF
Aplicações Web com JSF e JPA
PPT
Test-Driven Development - Introdução ao método de construção de software guia...
PPTX
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
PPT
Integração Java EE e VoIP
PDF
Desenvolvimento Web com JSF
PPTX
Introdução a jsf
PDF
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...
PDF
JSF - JavaServer Faces
PDF
Design patterns de uma vez por todas
PDF
33 design patterns com Java
Framework web 3 - JSF + Spring boot
Aplicações Web com JSF e JPA
Test-Driven Development - Introdução ao método de construção de software guia...
Programação modular - Ferramenta para rotular seções de imagens e realizar bu...
Integração Java EE e VoIP
Desenvolvimento Web com JSF
Introdução a jsf
TCC - METODOLOGIA SCRUM APLICADA AOS PROCESSOS DE GERÊNCIA E DESENVOLVIMENTO ...
JSF - JavaServer Faces
Design patterns de uma vez por todas
33 design patterns com Java
Anúncio

Semelhante a Spring Security e Spring Boot Aula - 2018 (10)

PPTX
Spring security
PPS
Segurança J2EE
PDF
Segurança e Controle de errros
PDF
Spring framework 2.0 pt_BR
PDF
GUJavaSC - Protegendo Microservices em Java
PDF
Segurança em SOA
PDF
Spring MVC Framework
PDF
APIs REST com Spring Boot
PPTX
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...
Spring security
Segurança J2EE
Segurança e Controle de errros
Spring framework 2.0 pt_BR
GUJavaSC - Protegendo Microservices em Java
Segurança em SOA
Spring MVC Framework
APIs REST com Spring Boot
Aula 01 - Curso GRATUITO EAD de Desenvolvimento Seguro de Software com Alcyon...

Mais de André Luiz Forchesatto (13)

PDF
Framework web 01 - Aula UTFPR 2018
PDF
PDF
Avaliacao jsf utfpr
PDF
Interfaces ricas JSF
PDF
Introdução a Programação Orientada a testes
PDF
Framework web 02 - 2016
PDF
Aula parte 2 de JSF 2.2
PDF
Aula parte 1 de JSF 2.2
PDF
Aula Introdução a VRaptor 4 - Pós Java UTFPR
PDF
Palestra Java 8 - V Boot
PDF
PDF
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3
PDF
Framework web 01 - Aula UTFPR 2018
Avaliacao jsf utfpr
Interfaces ricas JSF
Introdução a Programação Orientada a testes
Framework web 02 - 2016
Aula parte 2 de JSF 2.2
Aula parte 1 de JSF 2.2
Aula Introdução a VRaptor 4 - Pós Java UTFPR
Palestra Java 8 - V Boot
Dividindo responsabilidades com VRaptor, Rest, HTML5 e CSS3

Último (20)

PDF
Cantores.pdf-Deslandes, Tinoco e Zambujo
PPTX
Noções de Saúde e Segurança do Trabalho.pptx
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PPTX
Realismo e Naturalismo: Aluísio Azevedo.
PPTX
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
PPTX
brasilcolnia2-101027184359-phpapp02.pptx
PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PPTX
ELEMENTOS E FUNÇÕES DE LINGUAGEM (EMOTIVA, REFERENCIAL, CONATIVA, POÉTICA, FÁ...
PPTX
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
PPTX
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
PDF
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
PPTX
435434725-A-Mineracao-No-Brasil-Colonial.pptx
PDF
embriologia_animal_aula_share_2026_semestre
PPT
sistema reprodutor para turmas do oitavo ano
PDF
saeb_documentos_de_referencia_versao_1.0.pdf
PDF
O retorno a origem (islã Islamismo)
PDF
BINGOS_DAS_PALAVRAS_bingo das palavras.pdf
PDF
Formação politica brasil_2017.pptx.pdf
PDF
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf
Cantores.pdf-Deslandes, Tinoco e Zambujo
Noções de Saúde e Segurança do Trabalho.pptx
Pedagogia em Ambientes Não Escolares.pptx
INDÚSTRIA_ Histórico da industrialização.pptx
Realismo e Naturalismo: Aluísio Azevedo.
Biologia celular: citologia, é o estudo da célula, a unidade básica da vida.
brasilcolnia2-101027184359-phpapp02.pptx
GUERRAFRIA.pptdddddddddddddddddddddddddx
ELEMENTOS E FUNÇÕES DE LINGUAGEM (EMOTIVA, REFERENCIAL, CONATIVA, POÉTICA, FÁ...
Slide_Macronutrientes e Antinutrientes da Dieta Humana.pptx
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
manual-orientacao-asb_5a8d6d8d87160aa636f63a5d0.pdf
435434725-A-Mineracao-No-Brasil-Colonial.pptx
embriologia_animal_aula_share_2026_semestre
sistema reprodutor para turmas do oitavo ano
saeb_documentos_de_referencia_versao_1.0.pdf
O retorno a origem (islã Islamismo)
BINGOS_DAS_PALAVRAS_bingo das palavras.pdf
Formação politica brasil_2017.pptx.pdf
aulademeiodetransporteemlibras-120304202807-phpapp01_removed.pdf

Spring Security e Spring Boot Aula - 2018

  • 1. Frameworks para Desenvolvimento web em Java Aula 04 - Spring Security
  • 2. Spring Security ● Framework para controle de acesso a sistemas criado em 2003 com licença Apache 2.0; ● Altamente customizavel; ● Simples e fácil de integrar com vários tipos de framework; ● Utilizado por grandes corporações desde agências do governo, bancos e instituições militares;
  • 3. Spring Security - Funcionalidades ● Controle de acesso HTTP e HTTPS; ● Configuração não intrusiva; ● Utilização não invasiva, utilizando AOP; ● Controle de acesso a métodos das regras de negócio; ● Encoder da senha ● Tipos de autenticação: ○ OpenID ○ LDAP ○ Basic authentication HTTP ○ Base de dados Todos tipos de autenticação: http://docs.spring.io/spring-security/site/docs/3.2.x/refere nce/html/introduction.html
  • 4. Funcionamento básico URL Filtros Spring Usuários Permissões Exige Permissão? Analisa
  • 6. Configuração Básica ● Com o Spring-boot já vem configurado por padrão: ○ Bloqueio de URL ○ Usuário e senha em memória ○ Liberação de arquivos static/resource ○ Gera uma senha padrão para testes ● Todas as configurações podem ser reescritas.
  • 7. Trocando usuário e senha padrão ● No arquivo application.properties ○ security.user.name=meuUsuario ○ security.user.password=minhaSenha ○ security.user.role=admin
  • 8. Prática ● Executar o primeiro teste com o spring-security
  • 9. Customizando form de login ● Deverá ser criada uma classe para customizar os comportamentos do Spring ● Esta classe pode estender de WebSecurityConfigurerAdapter para facilitar a configuração. ● Para o Spring reconhecer a configurar deverá ser criado um Bean na classe principal de configuração.
  • 10. Customizando form de login Classe de configuração para WebSecurity Criação do Bean na classe Main
  • 11. Customizando form de login Configurando o formulário. Deve ser configurado na classe WebSecurityConfig
  • 12. Customizando form de login Criar página jsp para o login
  • 13. Customizando form de login Controlador para tratar erros e logout
  • 15. Autenticação com Base de dados Deve ser criada uma classe de Serviço que implementa a interface UserDetailService e configurar na classe WebSecurityConfig.
  • 16. Diagrama Usuários e Permissões
  • 19. UsuarioPermissao - GrantedAuthority Classe usuário método que busca permissões
  • 21. ● Anotar o métodos com a regra de segurança Segurança nos métodos @EnableGlobalMethodSecurity(securedEnabled=true, prePostEnabled=true) ● Configurar WebSecurityConfig para interceptar anotações de segurança nos métodos
  • 22. Segurança nos métodos ● Liberar para anonimos utilizarem ○ @Secured("IS_AUTHENTICATED_ANONYMOUSLY") ● Pode ser utilizado JSR-255 public interface BankService { @PreAuthorize("isAnonymous()") public Account readAccount(Long id); @PreAuthorize("isAnonymous()") public Account[] findAccounts(); @PreAuthorize("hasAuthority('ROLE_TELLER')") public Account post(Account account, double amount); } <global-method-security jsr250-annotations="enabled" />