SlideShare a Scribd company logo
1 of 15
INTRODUÇÃO JAVA
  AUTHENTICATION AND
AUTHORIZATION SERVICE
             Bruno Taboada
                29/11/2010
O que é JaaS?
•   É um framework.
•   Altamente plugável.
•   Disponível desde v1.4.
•   Flexível.
•   Integrado a arquitetura de segurança da
    plataforma.
Java Security Overview
JaaS Anatomia
Terminologia
•   Realm
•   Groups
•   User
•   Role (Chave de uma porta)
•   Principal (Identidade)
•   Subject
•   Credential
Flexibilidade Jaas


       Subject   EmpregadoPrincipal   Permissão 1



                                      Permissão 2



      Subject     GerentePrincipal    Permissão 3
Adicionando as roles (JBoss AS 5.0.1).


                           RoleEmpregado
                              Principal


                            RoleGerentePri
       Subject   Group
                                ncipal


                            RoleAdministra
                             dorPrincipal
Exemplo Policy File
1.   grant codebase "file:./SampleAction.jar", Principal
2.   sample.principal.SamplePrincipal “nomeDoPrincipal" {
3.      permission java.util.PropertyPermission "java.home", "read";
4.      permission java.util.PropertyPermission "user.home", "read";
5.      permission java.io.FilePermission "foo.txt", "read";
6.   };
Plugabilidade LoginModule Jboss AS
1.    <application-policy name = "Exemplo">
2.      <authentication>
3.      <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" =
      "required">
4.         <module-option name = "unauthenticatedIdentity">guest</module-option>
5.         <module-option name = "dsJndiName">java:/MyDataSourceConfig</module-
      option>
6.     <module-option name = "principalsQuery">Select passord from users where userid=?
      </module-option>
7.    <module-option name = "rolesQuery">Select role, 'Roles' from user_roles where
      userid=?</module-option>
8.       </login-module>
9.      </authentication>
10.   </application-policy
Controle de Acesso em EJB
Declarativa Baseada em Anatoções
1.   @DeclareRoles({“ADMINIISTRADOR", “EMPREGADO"})
2.   @Stateless
3.   public class PagamentoBean implements Pagamento{
4.     @Resource SessionContext ctx;

5.     @RolesAllowed(" ADMINIISTRADOR ")
6.     public void reviewEmpregadoInfo(EmplInfo info) {
7.        oldInfo = ... Ler banco de dados;
8.     }

9.    @RolesAllowed(" EMPREGADO ")
10.   public void updateEmpregadoInfo(EmplInfo info) {
11.     newInfo = ... update database;
12.   }
13. }
Controle de Acesso em Servlet
Declarativa baseada em arquivo

1.    <security-constraint>
2.     <web-resource-collection>
3.     <web-resource-name>Control Access</web-resource-name>
4.    <http-method>PUT</http-method>
5.    <http-method>DELETE</http-method>
6.    <http-method>GET</http-method>
7.    <http-method>POST</http-method>
8.     <url-pattern>/ServletSample.do</url-pattern>
9.     </web-resource-collection>
10.    <auth-constraint>
11.      <role-name>ADMINISTRADOR</role-name>
12.    </auth-constraint>
13.   </security-constraint>
14.   <security-role>
15.  <role-name>ADMINISTRADOR</role-name>
16. </security-role>
Controle de Acesso em Servlet
      Programática
1.    @WebServlet(name="AccessControlSample", urlPatterns={"/ServletSample.do"})
2.    public class TutorialServlet extends HttpServlet {
3.    protected void processRequest(HttpServletRequest request,HttpServletResponse
      response) throws ServletException, IOException {
4.        response.setContentType("text/html;charset=UTF-8");
5.        PrintWriter out = response.getWriter();
6.        try {
7.           if(request.isUserInRole("ADMINISTRADOR")){
8.             out.println("I´m Administrator");
9.           }else{
10.            throw ApplicationExcetionDenied("Access Denied");
11.          }
12.       } catch (Exception e) {
13.          throw new ServletException(e);
14.       } finally {
15.          out.close();
16.       }
17.     }
18.   }
Referências
• Java EE 6 Tutorial
• All that JAAS in Java World
  (http://www.javaworld.com/javaworld/jw-09-2002/jw-0913-
  jaas.html?page=2)
• Jboss AS 4 R5 Documentação
  (http://docs.jboss.org/jbossas/jboss4guide/r5/html/)
• JAVA SE 6 Specification (http://www.jcp.org/en/jsr/detail?id=316)
• Java 6 Security Guide
  (http://download.oracle.com/javase/6/docs/technotes/guides/se
  curity/)
• http://www.jaasbook.com/
Na internet sobre jaas
• Algumas Opiniões encontradas na internet.(GUJ)
• “JAAS é legal por que por ser padrão, mas será que
  não da para ser mais maleável? ”
• “O JAAS é assim mesmo, rígido, inflexível,
  configurableableable, etc... ”
• “O jaas é um pouco limitado e cheio de restrições ”

          • Eu também quero dar a minha.
Conclusão

•   Robusto.
•   Plataforma Built-in.
•   Flexível.
•   Complexidade de implementação média.
•   Possui especificação elaborada por grandes
    especialista no assunto.

More Related Content

What's hot

Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1 Edgar Dantas
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento webRafael Monteiro
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015Adriano Schmidt
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis LaravelEduardo Cesar
 
JavaOne 2015 - Simplificando a segurança de sua aplicação com Java EE
JavaOne 2015 - Simplificando a segurança de sua aplicação com Java EEJavaOne 2015 - Simplificando a segurança de sua aplicação com Java EE
JavaOne 2015 - Simplificando a segurança de sua aplicação com Java EELeonardo Zanivan
 
Quem tem medo do XSS ? MindThe Sec
Quem tem medo do XSS ? MindThe SecQuem tem medo do XSS ? MindThe Sec
Quem tem medo do XSS ? MindThe SecWilliam Costa
 
Visão geral da segurança em Java EE
Visão geral da segurança em Java EEVisão geral da segurança em Java EE
Visão geral da segurança em Java EEHelder da Rocha
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software SeguroAugusto Lüdtke
 
APIs REST com Spring Boot
APIs REST com Spring BootAPIs REST com Spring Boot
APIs REST com Spring BootWesley Fuchter
 
JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8Helder da Rocha
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edCarlos Melo
 

What's hot (13)

Apresentação zend framework 2 parte 1
Apresentação zend framework 2   parte 1 Apresentação zend framework 2   parte 1
Apresentação zend framework 2 parte 1
 
Segurança no desenvolvimento web
Segurança no desenvolvimento webSegurança no desenvolvimento web
Segurança no desenvolvimento web
 
WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015WildFly Avançado - TDC Floripa 2015
WildFly Avançado - TDC Floripa 2015
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Manipulando JWT em apis Laravel
Manipulando JWT em apis LaravelManipulando JWT em apis Laravel
Manipulando JWT em apis Laravel
 
JavaOne 2015 - Simplificando a segurança de sua aplicação com Java EE
JavaOne 2015 - Simplificando a segurança de sua aplicação com Java EEJavaOne 2015 - Simplificando a segurança de sua aplicação com Java EE
JavaOne 2015 - Simplificando a segurança de sua aplicação com Java EE
 
Quem tem medo do XSS ? MindThe Sec
Quem tem medo do XSS ? MindThe SecQuem tem medo do XSS ? MindThe Sec
Quem tem medo do XSS ? MindThe Sec
 
Visão geral da segurança em Java EE
Visão geral da segurança em Java EEVisão geral da segurança em Java EE
Visão geral da segurança em Java EE
 
Desenvolvimento de Software Seguro
Desenvolvimento de Software SeguroDesenvolvimento de Software Seguro
Desenvolvimento de Software Seguro
 
APIs REST com Spring Boot
APIs REST com Spring BootAPIs REST com Spring Boot
APIs REST com Spring Boot
 
GlassFish
GlassFishGlassFish
GlassFish
 
JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8JSR 375 Segurança em Java EE 8
JSR 375 Segurança em Java EE 8
 
Configurando servidor web https no apache2 ed
Configurando servidor web https no apache2 edConfigurando servidor web https no apache2 ed
Configurando servidor web https no apache2 ed
 

Viewers also liked

Federico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native bothFederico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native bothIxDA_Poznan
 
Sound plusnarration
Sound plusnarrationSound plusnarration
Sound plusnarrationcdmyow123
 
Piotr Koźniewski, So what of interaction dimensions
Piotr Koźniewski, So what of interaction dimensionsPiotr Koźniewski, So what of interaction dimensions
Piotr Koźniewski, So what of interaction dimensionsIxDA_Poznan
 
TED TALK BY MARQUETTA HICKENBOTTOM
TED TALK BY MARQUETTA HICKENBOTTOM TED TALK BY MARQUETTA HICKENBOTTOM
TED TALK BY MARQUETTA HICKENBOTTOM marquetta
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Programma Puttense Sportmarathon
Programma Puttense SportmarathonProgramma Puttense Sportmarathon
Programma Puttense SportmarathonBart Nieuwenweg
 
www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây điện thép ống r...
www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây  điện thép   ống r...www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây  điện thép   ống r...
www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây điện thép ống r...Tiểu Ngư
 
DLI Travel Pilgrimage Tours
DLI Travel Pilgrimage Tours DLI Travel Pilgrimage Tours
DLI Travel Pilgrimage Tours DLI TRAVEL
 
Formatos y aplicaciones word
Formatos y aplicaciones wordFormatos y aplicaciones word
Formatos y aplicaciones wordJuann OLhart
 
Biblioteca municipală.anul bibliologic
Biblioteca  municipală.anul bibliologicBiblioteca  municipală.anul bibliologic
Biblioteca municipală.anul bibliologicEugeniuCoseriu
 
Mooroolbark property sale_190413
Mooroolbark property sale_190413Mooroolbark property sale_190413
Mooroolbark property sale_190413stockdalecroydon
 
Jussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteen
Jussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteenJussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteen
Jussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteenSitra / Ekologinen kestävyys
 

Viewers also liked (20)

Federico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native bothFederico Lox Lucignano, War of the worlds web or native both
Federico Lox Lucignano, War of the worlds web or native both
 
Syllabus
SyllabusSyllabus
Syllabus
 
Teaching MOJO
Teaching MOJOTeaching MOJO
Teaching MOJO
 
Internet
InternetInternet
Internet
 
Crypthography
CrypthographyCrypthography
Crypthography
 
Sound plusnarration
Sound plusnarrationSound plusnarration
Sound plusnarration
 
Piotr Koźniewski, So what of interaction dimensions
Piotr Koźniewski, So what of interaction dimensionsPiotr Koźniewski, So what of interaction dimensions
Piotr Koźniewski, So what of interaction dimensions
 
TED TALK BY MARQUETTA HICKENBOTTOM
TED TALK BY MARQUETTA HICKENBOTTOM TED TALK BY MARQUETTA HICKENBOTTOM
TED TALK BY MARQUETTA HICKENBOTTOM
 
Syllabus
SyllabusSyllabus
Syllabus
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
Programma Puttense Sportmarathon
Programma Puttense SportmarathonProgramma Puttense Sportmarathon
Programma Puttense Sportmarathon
 
www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây điện thép ống r...
www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây  điện thép   ống r...www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây  điện thép   ống r...
www.vattidien.vn cung cấp vattuthietbidien.vn ống luồn dây điện thép ống r...
 
DLI Travel Pilgrimage Tours
DLI Travel Pilgrimage Tours DLI Travel Pilgrimage Tours
DLI Travel Pilgrimage Tours
 
Legacy R2
Legacy R2Legacy R2
Legacy R2
 
ստալին հիտլեր
ստալին հիտլերստալին հիտլեր
ստալին հիտլեր
 
Formatos y aplicaciones word
Formatos y aplicaciones wordFormatos y aplicaciones word
Formatos y aplicaciones word
 
Pedro Brey
Pedro Brey Pedro Brey
Pedro Brey
 
Biblioteca municipală.anul bibliologic
Biblioteca  municipală.anul bibliologicBiblioteca  municipală.anul bibliologic
Biblioteca municipală.anul bibliologic
 
Mooroolbark property sale_190413
Mooroolbark property sale_190413Mooroolbark property sale_190413
Mooroolbark property sale_190413
 
Jussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteen
Jussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteenJussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteen
Jussi Mälkiä 4.4.2013: Biotaloudella tulevaisuuteen
 

Similar to Introdução ao JAAS: Autenticação e Autorização em Java

CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeRafael Benevides
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8Helder da Rocha
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Helder da Rocha
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.Rogério Napoleão Jr.
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - BrazilStephen Chin
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntDenis L Presciliano
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?Rafael Benevides
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Thiago Barradas
 
VRaptor - Alta produtividade no Desenvolvimento Web em Java
VRaptor - Alta produtividade no Desenvolvimento Web em JavaVRaptor - Alta produtividade no Desenvolvimento Web em Java
VRaptor - Alta produtividade no Desenvolvimento Web em JavaDaniel Faria Gomes
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super heroElton Minetto
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Adriano Teixeira de Souza
 
TDC 2016 - Simplificando a segurança de sua aplicação com Java EE
TDC 2016 - Simplificando a segurança de sua aplicação com Java EETDC 2016 - Simplificando a segurança de sua aplicação com Java EE
TDC 2016 - Simplificando a segurança de sua aplicação com Java EELeonardo Zanivan
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootRodrigo Cândido da Silva
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEMarco Antonio Maciel
 

Similar to Introdução ao JAAS: Autenticação e Autorização em Java (20)

CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
API de segurança do Java EE 8
API de segurança do Java EE 8API de segurança do Java EE 8
API de segurança do Java EE 8
 
Workshop05
Workshop05Workshop05
Workshop05
 
Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)Curso de Java Persistence API (JPA) (Java EE 7)
Curso de Java Persistence API (JPA) (Java EE 7)
 
TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.TechDay - Sistemas WEB em Java - Rogério N. Jr.
TechDay - Sistemas WEB em Java - Rogério N. Jr.
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
Gerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache AntGerenciamento de projetos com o Apache Ant
Gerenciamento de projetos com o Apache Ant
 
TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?TDC 2014 SP - E o DeltaSpike ?
TDC 2014 SP - E o DeltaSpike ?
 
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017Palestra Elasticsearch - The Developers Conference - Floripa - 2017
Palestra Elasticsearch - The Developers Conference - Floripa - 2017
 
VRaptor - Alta produtividade no Desenvolvimento Web em Java
VRaptor - Alta produtividade no Desenvolvimento Web em JavaVRaptor - Alta produtividade no Desenvolvimento Web em Java
VRaptor - Alta produtividade no Desenvolvimento Web em Java
 
Java e Cloud Computing
Java e Cloud ComputingJava e Cloud Computing
Java e Cloud Computing
 
PHP like a super hero
PHP like a super heroPHP like a super hero
PHP like a super hero
 
Hibernate conceitos
Hibernate conceitosHibernate conceitos
Hibernate conceitos
 
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
Sistemas Distribuídos - Comunicação Distribuída - EJB (JBoss 7)
 
TDC 2016 - Simplificando a segurança de sua aplicação com Java EE
TDC 2016 - Simplificando a segurança de sua aplicação com Java EETDC 2016 - Simplificando a segurança de sua aplicação com Java EE
TDC 2016 - Simplificando a segurança de sua aplicação com Java EE
 
Migrando para o PHP 5
Migrando para o PHP 5Migrando para o PHP 5
Migrando para o PHP 5
 
Workshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring BootWorkshop Microservices - Construindo APIs RESTful com Spring Boot
Workshop Microservices - Construindo APIs RESTful com Spring Boot
 
As novidades da nova versão do Java 9
As novidades da nova versão do Java 9As novidades da nova versão do Java 9
As novidades da nova versão do Java 9
 
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EEUso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
Uso de Critérios de Seleção para Frameworks Livres em Plataforma Java EE
 

Introdução ao JAAS: Autenticação e Autorização em Java

  • 1. INTRODUÇÃO JAVA AUTHENTICATION AND AUTHORIZATION SERVICE Bruno Taboada 29/11/2010
  • 2. O que é JaaS? • É um framework. • Altamente plugável. • Disponível desde v1.4. • Flexível. • Integrado a arquitetura de segurança da plataforma.
  • 5. Terminologia • Realm • Groups • User • Role (Chave de uma porta) • Principal (Identidade) • Subject • Credential
  • 6. Flexibilidade Jaas Subject EmpregadoPrincipal Permissão 1 Permissão 2 Subject GerentePrincipal Permissão 3
  • 7. Adicionando as roles (JBoss AS 5.0.1). RoleEmpregado Principal RoleGerentePri Subject Group ncipal RoleAdministra dorPrincipal
  • 8. Exemplo Policy File 1. grant codebase "file:./SampleAction.jar", Principal 2. sample.principal.SamplePrincipal “nomeDoPrincipal" { 3. permission java.util.PropertyPermission "java.home", "read"; 4. permission java.util.PropertyPermission "user.home", "read"; 5. permission java.io.FilePermission "foo.txt", "read"; 6. };
  • 9. Plugabilidade LoginModule Jboss AS 1. <application-policy name = "Exemplo"> 2. <authentication> 3. <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" = "required"> 4. <module-option name = "unauthenticatedIdentity">guest</module-option> 5. <module-option name = "dsJndiName">java:/MyDataSourceConfig</module- option> 6. <module-option name = "principalsQuery">Select passord from users where userid=? </module-option> 7. <module-option name = "rolesQuery">Select role, 'Roles' from user_roles where userid=?</module-option> 8. </login-module> 9. </authentication> 10. </application-policy
  • 10. Controle de Acesso em EJB Declarativa Baseada em Anatoções 1. @DeclareRoles({“ADMINIISTRADOR", “EMPREGADO"}) 2. @Stateless 3. public class PagamentoBean implements Pagamento{ 4. @Resource SessionContext ctx; 5. @RolesAllowed(" ADMINIISTRADOR ") 6. public void reviewEmpregadoInfo(EmplInfo info) { 7. oldInfo = ... Ler banco de dados; 8. } 9. @RolesAllowed(" EMPREGADO ") 10. public void updateEmpregadoInfo(EmplInfo info) { 11. newInfo = ... update database; 12. } 13. }
  • 11. Controle de Acesso em Servlet Declarativa baseada em arquivo 1. <security-constraint> 2. <web-resource-collection> 3. <web-resource-name>Control Access</web-resource-name> 4. <http-method>PUT</http-method> 5. <http-method>DELETE</http-method> 6. <http-method>GET</http-method> 7. <http-method>POST</http-method> 8. <url-pattern>/ServletSample.do</url-pattern> 9. </web-resource-collection> 10. <auth-constraint> 11. <role-name>ADMINISTRADOR</role-name> 12. </auth-constraint> 13. </security-constraint> 14. <security-role> 15. <role-name>ADMINISTRADOR</role-name> 16. </security-role>
  • 12. Controle de Acesso em Servlet Programática 1. @WebServlet(name="AccessControlSample", urlPatterns={"/ServletSample.do"}) 2. public class TutorialServlet extends HttpServlet { 3. protected void processRequest(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { 4. response.setContentType("text/html;charset=UTF-8"); 5. PrintWriter out = response.getWriter(); 6. try { 7. if(request.isUserInRole("ADMINISTRADOR")){ 8. out.println("I´m Administrator"); 9. }else{ 10. throw ApplicationExcetionDenied("Access Denied"); 11. } 12. } catch (Exception e) { 13. throw new ServletException(e); 14. } finally { 15. out.close(); 16. } 17. } 18. }
  • 13. Referências • Java EE 6 Tutorial • All that JAAS in Java World (http://www.javaworld.com/javaworld/jw-09-2002/jw-0913- jaas.html?page=2) • Jboss AS 4 R5 Documentação (http://docs.jboss.org/jbossas/jboss4guide/r5/html/) • JAVA SE 6 Specification (http://www.jcp.org/en/jsr/detail?id=316) • Java 6 Security Guide (http://download.oracle.com/javase/6/docs/technotes/guides/se curity/) • http://www.jaasbook.com/
  • 14. Na internet sobre jaas • Algumas Opiniões encontradas na internet.(GUJ) • “JAAS é legal por que por ser padrão, mas será que não da para ser mais maleável? ” • “O JAAS é assim mesmo, rígido, inflexível, configurableableable, etc... ” • “O jaas é um pouco limitado e cheio de restrições ” • Eu também quero dar a minha.
  • 15. Conclusão • Robusto. • Plataforma Built-in. • Flexível. • Complexidade de implementação média. • Possui especificação elaborada por grandes especialista no assunto.

Editor's Notes

  1. Este modelo pode ser usado como arquivo de partida para apresentar materiais de treinamento em um cenário em grupo. Seções Clique com o botão direito em um slide para adicionar seções. Seções podem ajudar a organizar slides ou a facilitar a colaboração entre vários autores. Anotações Use a seção Anotações para anotações da apresentação ou para fornecer detalhes adicionais ao público. Exiba essas anotações no Modo de Exibição de Apresentação durante a sua apresentação. Considere o tamanho da fonte (importante para acessibilidade, visibilidade, gravação em vídeo e produção online) Cores coordenadas Preste atenção especial aos gráficos, tabelas e caixas de texto. Leve em consideração que os participantes irão imprimir em preto-e-branco ou escala de cinza. Execute uma impressão de teste para ter certeza de que as suas cores irão funcionar quando forem impressas em preto-e-branco puros e escala de cinza. Elementos gráficos, tabelas e gráficos Mantenha a simplicidade: se possível, use estilos e cores consistentes e não confusos. Rotule todos os gráficos e tabelas.
  2. Forneça uma breve visão geral da apresentação. Descreva o foco principal da apresentação e por que ela é importante. Introduza cada um dos principais tópicos. Para fornecer um roteiro para o público, você pode repita este slide de Visão Geral por toda a apresentação, realçando o tópico específico que você discutirá em seguida.