Julho/2015. JavaEE7. helderdarocha.

Tamanho: px
Começar a partir da página:

Download "Julho/2015. JavaEE7. helderdarocha. helder@argonavis.com.br"

Transcrição

1 Julho/2015 Ja JavaEE7 SEGURANÇA helderdarocha

2 Conteúdo 1. Segurança padrão no Java EE Mecanismos de segurança em Java SE e Java EE Terminologia essencial APIs padrão do Java EE Passo-a-passo de um cenário típico 2. Segurança em componentes Java EE Alternativas de autenticação Web WebServlets, WebFilters, JSF e backing beans WebSockets EJB (Session e MessageDriven) Web Services REST e SOAP 3. Conclusões, alternativas e tendências O que falta? Alternativas à segurança Java EE JSR 375 (outra palestra!)

3 Quem sou eu? Who am I? Кто я? Helder da Rocha Tecnologia * Ciência * Arte Java & Web desde 1995 Autor de cursos e livros + de 2500 alunos + de 8000 horas de aula argonavis.com.br helderdarocha.com.br

4 O que é Segurança? Safety: proteção contra danos não-intencionais Problemas: bugs em geral e vulnerabilidades intrínsecas do sistema (threads, ambiente, recursos externos, etc.) Proteção: qualidade da plataforma, boas práticas, testes, validação, monitoração, logging, checksums, etc. Security: proteção contra danos intencionais Problemas: ataques em geral, acesso e manipulação de dados protegidos, danos ao sistema ou a terceiros Proteção: autenticação, autorização, criptografia, auditoria, filtros, auditoria, hashes, etc.

5 Escopo desta palestra Uma visão geral dos recursos de segurança (~ security) da plataforma Java EE: mecanismos e APIs padrão para Identificação e autenticação de usuários Controle de acesso a dados restritos Controle de execução de operações protegidas Garantias de integridade e confidencialidade para informações que trafegam em rede Não faz parte do escopo desta palestra Tópicos de segurança não tratados explicitamente nas specs (ex: vulnerabilidades OWASP, governança, auditoria, etc.) Recursos proprietários(wildfly, GlassFish, etc.) Frameworks de terceiros (Spring Security, Seam Security, OAuth,...)

6 Mecanismos de segurança Java SE 8 Criptografia JCA JCE Java XML DSig (JSR 105) Segurança nativa da Plataforma Java "Sandbox" da JVM Classloader Garbage collection Bytecode verification Data-typing + Autenticação e Autorização Infraestrutura de Chave Pública (PKI) Policy / Security Manager JAAS JarSigner TSA/TSP (RFC 3161) X.509, CRLs e CertPath API OCSP (RFC 2560) PKCS#11 Comunicação Segura JSSE (SSL/TLS) SASL (RFC 2222) GSS-API (RFC 2853)

7 Mecanismos de segurança Java EE 7 Camada de Aplicações userid pass / cert Mensagem Autenticação Mensagem Mensagem Conexão Segura SSL/TLS Conexão Insegura Role Principal Role Autorização Operações e Recursos Camada de Aplicações Camada de Transportes APIs programáticas: autenticação (JASPIC) e autorização (JACC + contextos de segurança de cada tipo de componente) APIs declarativas: autorização, config de autenticação HTTP (JAAS) e config de transporte SSL/TLS por recurso/método HTTP

8 Autenticação Autorização & na Camada Web Browser HTTP HTTPS Requisição 1: Pede página restrita GET /app/faces/biblioteca.xhtml Resposta 1: Pede credenciais 401 Unauthorized WWW-Authenticate: Basic realm="jdbc-realm" Requisição 2: Envia credenciais GET /app/faces/biblioteca.xhtml Authorization: Basic bwfzage6mtizndu= HTTPS Web Container Configuração (web.xml) HTTPS 2-way (CONFIDENTIAL) Autenticação: jdbc-realm Métodos: GET, POST Roles: todos os logados (**) Autenticação Realizar autenticação Autenticado? Cria credencial. Ir para Autorização Não autenticado? Retorna 401 Unauthorized Resposta 2: Envia página restrita 200 OK HTTPS Autorização Verificar permissões Autorizado? Retorna recurso pedido Não autorizado? Retorna 403 Forbidden

9 Autorização na Camada EJB Web Container EJB Container Req2 Contexto Web - Credenciais Principal: kusko Roles: {"outro"} Contexto EJB (propagados) Principal: kusko Roles: {"outro"} Browser Servlet chama metodo 1 em EJB try { b.getfigura1(); } catch (EJBAccessException e) { return "acessonegado.png"; } Retornar link public String getfigura1() { return "peixinho.png"; } Res2 Servlet chama metodo 2 em EJB try { b.getfigura2(); } catch (EJBAccessException e) { return "acessonegado.png"; } public String getfigura2() { return "lupita.png"; }

10 Conexão HTTP Segura Pode-se proteger recursos em Java EE configurando a necessidade do uso de HTTP + camada SSL/TLS SSL/TLS atua na camada de transporte protegendo contra principais riscos de transferir dados pela rede Risco de não saber se outro é quem diz que é: autenticação Risco da mensagem ser interceptada e alterada: integridade Risco da mensagem ser interceptada e lida: confidencialidade SSL/TLS usa vários mecanismos de criptografia Hashes Criptografia de chave pública (assimétrica) Criptografia de chave secreta (simétrica) Também protege camada de mensagens mas apenas durante a conexão

11 User Provider Rule X.509 KeyStore TrustStore Principal Grant Module Context Caller Role Authority Authentication Hash Certificate Trust Group Domain Realm Digest Identity Token Key Permission Subject Authorization Credential Signature Policy Cypher

12 User Provider Rule X.509 KeyStore TrustStore Principal Grant Module Context Caller Role Authority Authentication Hash Certificate Trust Group Domain Realm Digest Identity Token Key Permission Subject Authorization Credential Signature Policy Cypher

13 Identificação Quem é você? Segurança depende da identificação dos usuários (pessoas e sistemas) Um nome, um avatar, um endereço IP, um token,... Como saber se é autêntico? 58:87:52:44:D8:60:12:B0: FB:D5:F6:C0:6E:F1:6E:FC: A2:0E:15:8D:58:E9:6E:6F: 76:CE:DA:66:60:B5:9B:C2 eyjhbgcioijiuzi1niisinr5cci6ikpxvcj9.eyjzdwiioiixmjm0nty3odkwiiwibmftzsi6ikpvag4grg9liiwiywrtaw4ionrydwv9.tjva95orm7e2cbab30rmhrhdcefxjoyzgefonfh7hgq

14 Autenticação Como provar que você é mesmo você? Apresente credenciais: algo que você tem (ex: documento), é (ex: biometria) ou sabe (ex: senha) Autenticidade depende de Parecer dado por uma autoridade de confiança Integridade das informações: garantia que os dados transmitidos não foram alterados pelo caminho)

15 Realm (~reino, domínio) Autoridade que administra usuários e grupos e que determina escopo de políticas de segurança (ex: LDAP, banco de dados, banco de certificados) Também chamado de: zone login module identity provider region security provider domain auth store auth repository Java EE utiliza apenas o nome do realm (para selecionar o escopo da autenticação via HTTP) identity manager authenticator auth provider identity store

16 Usuários (pessoas, máquinas, sistemas) marvin spock masha vini kusko cerebro niquel A criação e autenticação de usuários não faz parte da especificação Java EE Isto é responsabilidade do realm (que é configurado usando ferramentas proprietárias - diferente para cada servidor) Java EE apenas padroniza a escolha do método de autenticação em um realm (se através de cabeçalhos HTTP, troca de certificados, sessão, etc.) Java EE não trabalha com usuários, mas com principals

17 Principal Representa uma entidade autenticada java.security.principal Contém sua identificação (nome / certificado) verificada através de credenciais Tem foco diferente em Java SE e Java EE Em Java SE (JAAS) um Subject representa um usuário, que pode ter uma coleção de identidades (Principal) Em APIs Java EE um Principal representa um usuário, que pode assumir uma coleção de papéis (Roles)

18 Autenticação em Java EE Java EE oferece duas alternativas (excludentes) de configuração API declarativa na camada Web para selecionar o realm e o método de autenticação (BASIC, FORM, DIGEST, CLIENT) API programática (JASPIC) para criar módulos de autenticação A realização da autenticação é dependente de fabricante Maioria oferece APIs e ferramentas proprietárias baseadas em JAAS web.xml HttpServletResponse HttpServletRequest Camada Web <login-config> <auth-method> BASIC </auth-method> <realm-name> jdbc-realm </realm-name> </login-config> JASPIC (JSR 196) javax.security.auth.message JAAS java.security.auth

19 BASIC (RFC 2069 / 2617) <login-config> <auth-method>basic</auth-method> <realm-name>jdbc-realm</realm-name> </login-config> configuração web.xml Browser GET /app/secret Servidor Web 401 Unauthorized WWW-Authenticate: Basic realm="jdbc-realm" GET /app/secret Authorization: Basic bwfzage6mtizndu= Credenciais: encoding Base OK Para fazer logout: feche o browser!

20 DIGEST (RFC 2069 / 2617) <login-config> <auth-method>digest</auth-method> <realm-name>jdbc-realm</realm-name> </login-config> configuração web.xml Browser GET /app/secret Servidor Web 401 Unauthorized WWW-Authenticate: Digest realm="jdbc-realm", qop="auth", nonce=" ", opaque="df...5c" GET /app/secret Authorization: Digest username="masha", realm="jdbc-realm", nonce="143...f89", uri="/app/faces/biblioteca.xhtml", response="2c40...df", opaque="df...5c", qop=auth, nc= , cnonce=" b" 200 OK Para fazer logout: feche o browser! Credenciais: MD5 hash

21 FORM <login-config> <auth-method>form</auth-method> <form-login-config> <form-login-page>/form.html</form-login-page> <form-error-page>/erro.html</form-error-page> </form-login-config> </login-config> configuração web.xml Browser GET /app/secret Servidor Web 200 OK Set-Cookie: JSESSIONID=aac...44; Path=/app; Secure; HttpOnly POST https://localhost:29033/app/faces/j_security_check Referer: https://localhost:29033/app/faces/biblioteca.xhtml Cookie: JSESSIONID=aaab5...b1f6 Authorization:Basic Y2VyZWJybzoxMjM0NQ== j_username:masha j_password:12345 Encoding Base64 Proteção depende da camada SSL/TLS <form action="j_security_check" method="post"> <input type="text" name="j_username"> <input type="password" name="j_password"> <input type="submit"> </form> 200 OK Para fazer logout: HttpSession#invalidate()

22 CLIENT-CERT <login-config> <auth-method>client-cert</auth-method> </login-config> configuração web.xml Browser GET /app/secret Servidor Web Recebe certificado do servidor Owner: CN=Helder da Rocha, OU=Argonavis, O=Argonavis, L=Sao Paulo, ST=SP, C=BR Issuer: CN=Helder da Rocha, OU=Argonavis, O=Argonavis, L=Sao Paulo, ST=SP, C=BR Serial number: 156fb994 Valid from: Tue Jul 14 00:28:45 BRT 2015 until: Mon Oct 12 00:28:45 BRT 2015 Certificate fingerprints: MD5: F2:B7:23:7B:61:35:D6:...:27:62:7C SHA1: EC:52:88:9B:4F:63:9D:...:EC:D2:17 SHA256: 2E:35:2B:CF:41:30:...:28:0F:B3 Owner: CN=Self-Signed, OU=Oracle Corporation, O=Glassfish Issuer: CN=Self-Signed, OU=Oracle Corporation, O=Glassfish Serial number: 3E:56:D0:C9 Valid from: Jul 3 00:12:13 BRT 2015 until: Jun 30 00:12:13 BRT 2025 Certificate fingerprints: MD5: F5:A9:21:E3:59:30:E8:...:C3:8C:DE SHA1: BE:F5:1A:C3:8C:DE:68:...:83:72:A4 SHA256: 1E:2D:F1:96:8B:C2:...:C2:C7:6E Envia certificado do cliente 200 OK Configuração é dependente de plataforma

23 Web Container javax.servlet ServletContextListener * javax.security.auth.message.config * AuthConfigFactory contextinitialized() «create» javax.security.auth.message.config AuthConfigProvider * registerconfigprovider() JASPIC JSR 196 «create» javax.security.auth.message.config ServerAuthConfig * javax.security.auth.message.callback CallbackHandler «create» «create» javax.security.auth.message.config ServerAuthContext * javax.security.auth.message.module ServerAuthModule * «create» HTTP request initialize() validaterequest() validaterequest() javax.security.auth.message.callback CallerPrincipalCallback «create» authenticate Auth Service Register Principal and Groups handle() javax.security.auth.message.callback GroupPrincipalCallback «create» * Must create implementations of these classes/interfaces

24 Autenticação via HttpServletRequest API programática (facilita a criação de filtros) getauthtype(): String Retorna string com mecanismo de autenticação (BASIC, DIGEST, FORM, CLIENT-CERT) ou null authenticate(httpservletresponse response) Autenticar usando mecanismo configurado login(string nome, String senha) Autenticar usando login e senha logout() Faz com que getremoteuser(), getcallerprincipal() e getauthtype() retorne null

25 Autenticação com JAX-WS Propriedades padrão JAX-WS para enviar credenciais via mensagens SOAP em javax.xml.ws.bindingprovider DungeonWebService service = new DungeonWebService(); Dungeon port = service.getdungeonport(); Cliente BindingProvider bp = (BindingProvider)port; bp.getrequestcontext().put(bindingprovider.endpoint_address_property, "https://localhost:29033:/app/dungeon"); bp.getrequestcontext().put(bindingprovider.username_property, "masha"); bp.getrequestcontext().put(bindingprovider.password_property, "12345"); String secret = = "dungeon") public class DungeonWebService WebServiceContext ctx; public String secretmessage() { MessageContext mctx = ctx.getmessagecontext(); String user = mctx.get(bindingprovider.username_property); String pass = mctx.get(bindingprovider.password_property);

26 WebSockets Seguro (JavaScript) new WebSocket( ws://localhost/app/endpoint ) HTTP WebSocket estabelecido new WebSocket( wss://localhost/app/endpoint ) 401 Unauthorized https://localhost/app/seguro new WebSocket( wss://localhost/app/endpoint ) HTTP SSL WebSocket estabelecido new WebSocket( ws://localhost/app/endpoint ) SecurityError (JavaScript)

27 User Provider Rule X.509 KeyStore TrustStore Principal Grant Module Context Caller Role Authority Authentication Hash Certificate Trust Group Domain Realm Digest Identity Token Key Permission Subject Authorization Credential Signature Policy Cypher

28 Autorização Como controlar o acesso a recursos protegidos? Quem pode acessar? Quais recursos? URLs, componentes, classes, métodos, blocos de código, tabelas, registros, fragmentos de XML, imagens, arquivos, pastas, aplicações Que ações podem executar? GET, POST, ler, gravar, criar, remover Quais condições? "das 9 as 17h", "enquanto houver tokens", "apenas duas vezes" Este tipo de controle de acesso não existe em Java EE 7

29 Grupos (~coleções de usuários no servidor) masha Usuários podem pertencer a grupos Mas usuários não fazem parte do escopo do Java EE, e grupos também não Conceito é dependente de plataforma masha alienigenas megalomaniacos Grupos criados para aplicação exemplo no Glassfish 4.1 spock terraqueos marvin cerebro marvin ratos russos masha vini kusko cerebro niquel masha vini cerebro niquel

30 Roles (~chaves de acesso a recursos protegidos) Principals (grupos e usuários) devem ser mapeados a roles Mapeamento é proprietário: Não há padrão em Java EE Definição de grupos, roles, realms, etc. varia entre fornecedores Exemplo de mapeamentos possíveis em Glassfish 4.1 role: administrador - grupo alienigenas - usuário cerebro role: especial - usuário vini - usuário masha role: amigo - usuário vini - usuário masha - usuário niquel role: outro - usuário kusko alienigenas Aplicação: JavaEESecurity.war (veja código-fonte) <glassfish-web-app> <context-root>javaeesecurity</context-root> <security-role-mapping> <role-name>administrador</role-name> <principal-name>cerebro</principal-name> <group-name>alienigenas</group-name> </security-role-mapping> <security-role-mapping> <role-name>especial</role-name> <principal-name>vini</principal-name> <principal-name>masha</principal-name> </security-role-mapping> <security-role-mapping> <role-name>amigo</role-name> <principal-name>masha</principal-name> <principal-name>vini</principal-name> <principal-name>niquel</principal-name> </security-role-mapping> <security-role-mapping> <role-name>outro</role-name> <principal-name>kusko</principal-name> </security-role-mapping> </glassfish-web-app> /WEB-INF/glassfish-web.xml

31 Autorização em Java EE Baseada em roles, fácil de usar e 100% Java EE* Configuração declarativa via anotações e deployment descriptor XML, ou através de API programática (JACC) Acesso (leitura) através APIs programáticas em contextos de segurança Anotações Deployment descriptors JACC (JSR 115) java.security Permission transportguarantee =..., rolesallowed = {...} ) ) public class MyServlet... {...} web.xml <security-constraint> <web-resource-collection>... </web-resource-collection> <auth-constraint> <role-name>...</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>...</transport-guarantee> </user-data-constraint> </security-constraint> javax.security.jacc WebResourcePermission javax.security.jacc WebRoleRefPermission javax.security.jacc WebUserDataPermission Camada public class Bean public void m1() public void m2() {} <method-permission> <role-name>...</role-name> <method> <ejb-name>...</ejb-name> <method-name>...</method-name> </method> </method-permission> ejb-jar.xml javax.security.jacc EJBRoleRefPermission javax.security.jacc EJBMethodPermission * depois de mapeados grupos/usuários a roles

32 Autorização em web.xml É preciso declarar os roles no web.xml usando <security-role> (em servlets pode ser via anotações). Mapeamento dos roles com usuários/grupos é dependente de servidor (glassfish-web.xml, jboss-web.xml, etc.) <web-app>... <security-role> <role-name>administrador</role-name> </security-role> <security-role> <role-name>amigo</role-name> </security-role> <security-role> <role-name>especial</role-name> </security-role>... </web-app>

33 Security constraints Bloco <security-constraint> contém três partes Um ou mais <web-resource-collection> Pode conter um <auth-constraint> (lista de roles) Pode conter um <user-data-constraint> (SSL/TLS) <security-constraint> <web-resource-collection> <web-resource-name>área restrita</web-resource-name> <url-pattern>/secreto/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>administrador</role-name> </auth-constraint> </security-constraint>

34 Web resource collection Agrupa recursos e operações controladas através de padrões de URL + métodos HTTP Métodos HTTP não informados são restritos, mas métodos não informados estão descobertos Use <deny-uncovered-http-methods/> ou outro bloco negando acesso a todos exceto <http-method-omission> <security-constraint> <web-resource-collection> <web-resource-name>área restrita</web-resource-name> <url-pattern>/secreto/*</url-pattern> <url-pattern>/faces/castelo.xhtml</url-pattern> <http-method>get</http-method> <http-method>post</http-method> </web-resource-collection>... </security-constraint>

35 Authorization constraint Com <auth-constraint> as <web-resource-collection> são acessíveis apenas aos <role-name> declarados Sem <auth-constraint>: sem controle de acesso (livre) <auth-constraint /> vazio: ninguém tem acesso <web-app>... <security-constraint> <web-resource-collection>... </web-resource-collection> <web-resource-collection>... </web-resource-collection> <auth-constraint> <role-name>administrador</role-name> <role-name>especial</role-name> </auth-constraint> </security-constraint>... <security-constraint>...</security-constraint> </web-app>

36 Transport guarantee Garantias mínimas para comunicação segura SSL/TLS NONE: (ou ausente) não garante comunicação segura INTEGRAL: proteção integral, autenticação no servidor CONFIDENTIAL: proteção integral, autenticação: cliente e servidor <web-app>... <security-constraint>... <user-data-constraint> <transport-guarantee>confidential</transport-guarantee> </user-data-constraint> </security-constraint> <security-constraint>... <user-data-constraint> <transport-guarantee>integral</transport-guarantee> </user-data-constraint> </security-constraint> </web-app>

37 = "ServletSecreto", urlpatterns transportguarantee = TransportGuarantee.CONFIDENTIAL, rolesallowed = {"amigo", "administrador"} ) ) public class ServletSecreto extends HttpServlet {... = "LabirintoServlet", urlpatterns @HttpMethodConstraint(value="POST", value="trace", transportguarantee = TransportGuarantee.NONE, rolesallowed = {"amigo", "administrador"} ) }) public class LabirintoServlet extends HttpServlet {... }

38 Autorização com HTTPServletRequest Acesso via API a principal e roles permitem controle programático da autorização getuserprincipal() Obtém java.security.principal (getname() obtém nome) isuserinrole("role") Testa se o usuário autenticado faz parte do role String loggeduser = request.getuserprincipal().getname(); if(!request.iscallerinrole("administrador")) { if (!loggeduser.equals("cerebro")) { throw new SecurityException("..."); } }

39 Autorização em JSF e CDI Através de request <h:panelgroup rendered="#{request.userprincipal == 'masha'}"> <p>conteúdo visto pelo usuário masha</p> </h:panelgroup> <h:panelgroup rendered="#{request.isuserinrole('especial')}"> <p>conteúdo visto por quem possui o role especial</p> </h:panelgroup> No Managed Bean pode-se usar ExternalContext ExternalContext ctx = FacesContext.getCurrentInstance().getExternalContext(); boolean inrole = ctx.isuserinrole("role"); String user = ctx.getuserprincipal().getname(); Ou injetar o Principal via java.security.principal;

40 Autorização em WebSockets Contexto de segurança em javax.websocket.session retorna apenas o public class SecretEndPoint { public void onmessage(string message, Session session) { String user = session.getuserprincipal().getname();... } É possível redefinir o WebSocket Handshake para passar outros dados de contexto via HttpServletRequest

41 Autorização em public class ImagemBean public void removerusuario(usuario u) {... public List<Usuario> listadeusuarios() {... public String getinfo() {... public String getfreestuff() {... } public String loggingdata() {... }

42 Segurança em ejb-jar.xml Raramente usado por desenvolvedores (já que toda a segurança pode ser configurada por anotações) <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"... > <enterprise-beans> <session> <ejb-name>testebean</ejb-name> <ejb-class>testebean.testebean</ejb-class> <session-type>stateless</session-type> <transaction-type>container</transaction-type> </session> </enterprise-beans> <assembly-descriptor> <security-role> <role-name>administrador</role-name> </security-role> <method-permission> <role-name>administrador</role-name> <method> <ejb-name>testebean</ejb-name> <method-name>*</method-name> </method> </method-permission>... </assembly-descriptor> </ejb-jar>

43 Propagação de Declarado antes da declaração de classe permite que o componente execute usando um role específico Permite que componente tenha um role mesmo que não tenha sido propagado pelo public class TestEJB {... } O container confia na identidade propagada (não autentica de novo) <message-driven> <ejb-name>testejb</ejb-name> <ejb-class>br.com.ejb.examples.testejb</ejb-class> <security-identity> <run-as> <role-name>administrador</role-name> </run-as> </security-identity> </message-driven>

44 Autorização com EJBContext Métodos de javax.ejb.ejbcontext Herdados por SessionContext e MessageDrivenContext Mesmos métodos, mas com nomes diferentes Caller no contexto EJB é o User no contexto Web String loggeduser = ctx.getcallerprincipal().getname(); if(!ctx.iscallerinrole("administrador")) { if (!loggeduser.equals("cerebro")) { throw new EJBAccessException("..."); } }

45 Autorização em JAX-RS Resources são EJBs, portanto podem usar mesmos mecanismos de @RunAs("administrador") public class UsuarioFacadeREST @Consumes({"application/xml", "application/json"}) public void create(usuario entity) "application/json"}) public void Integer id, Usuario entity) {... }...

46 API de segurança em JAX-RS Aproveita mesmo ambiente do contexto Web Métodos de javax.ws.rs.core.securitycontext getauthenticationscheme() Retorna o string contendo o esquema de autenticação (mesmo que HttpServletRequest#getAuthType()) issecure() Retorna true se a requisição foi feita em canal seguro getuserprincipal() Retorna java.security.principal com usuário autenticado isuserinrole(string role) Retorna true se usuário autenticado pertence ao role

47 API de segurança em JAX-WS Mecanismos declarativos de autorização aproveitam a estrutura do contexto Web (<security-constraint>) API programática de segurança mínima em javax.xml.ws.webservicecontext getuserprincipal() isuserinrole("role") Suporte a criptografia na camada de mensagens (ainda) não faz parte do Java EE

48 Como obter principals e testar roles em Java EE 7 WebServlets, Facelets, WebFilters getuserprincipal() isuserinrole() javax.servlet.http. HttpServletRequest JSF backing beans getuserprincipal() isuserinrole() javax.faces.context. ExternalContext EJBs getcallerprincipal() iscallerinrole() javax.ejb. EJBContext java.security.principal WebSockets getuserprincipal() javax.websocket. Session SOAP Web Services getuserprincipal() isuserinrole() javax.xml.ws. WebServiceContext RESTful Web Services getuserprincipal() isuserinrole() javax.ws.rs.core. SecurityContext

49 O que falta em Java EE? Ter uma API padrão de segurança moderna, unificada e independente de fabricante Segurança Java EE hoje, na prática, usa recursos proprietários ou frameworks de terceiros (Spring, etc.) O que mais? Terminologia comum (callers/users, groups/roles, identity store) Contexto de segurança acessível de qualquer componente Mecanismo de autenticação mais flexível, independente de servidor e com implementações padrão APIs padronizadas para identity stores (não depender de realms proprietários) Formas de controlar acesso além de roles (regras, interceptadores) Como será o futuro da segurança em Java EE?

50 To be continued... Hoje, 17:40

51 Referências (1/3) Documentação oficial Eric Jendrock et al. The Java EE 7 Tutorial, Release 7 (Oracle, September 2014). O capítulo 50 contém um tutorial sobre Segurança em Java EE com Glassfish (os exemplos e as configurações funcionam apenas no Glassfish). Oracle. Java SE Security. Uma visão geral das APIs Java SE de segurança. Oracle. JAAS Authentication tutorial. Oracle. JAAS Authorization tutorial. Oracle. Java Security Overview. Java EE 8 Alex Kosowski. Finally EE Security API JSR 375. Devoxx France JSR 375 Java EE Security API. https://www.jcp.org/en/jsr/detail?id=375 Página do JSR aberto em dezembro 2014.

52 Referências (2/3) Especificações Java EE Ron Monzillo. Java Authentication SPI for Containers JSR 196, Version 1.1, Oracle, 2013 Ron Monzillo. Java Authorization Contract for Containers JSR 115, Version 1.5, Oracle, 2013 Shing Wai Chan e Rajiv Mordani. Java Servlet Specification, Version 3.1, Chapter 13: Security, Oracle, 2013 Marina Vatkina. JSR 345 Enterprise JavaBeans, Version 3.2. EJBCore Contracts and Requirements. Chapter 12 Security Management. Oracle, Danny Coward. Java API for WebSocket. Version 1.0. Chapter 8: Server Security. Oracle, 2013 Jitendra Kotamraju. WebServices for Java EE, Version 1.3. Chapter 9: Security. Sun, Jitendra Kotamraju. The Java API for XML-Based Web Services (JAX-WS) 2.2 Rev. a. Section (Standard properties). Oracle, Santiago Pericas-Geertsen e Marek Potociar. JAX-RS: Java API for RESTful Web Services. Version 2.0. Section Security Context. Oracle, 2013 Pete Muir et al. Contexts and Dependency Injection for Java EE, Version 1.1. Section 3.8 (Additional built-in beans). Oracle, Livros Arun Gupta. Java EE 7 Essentials O'Reilly, Código-fonte com vários exemplos usando recursos de segurança em Java EE 7: https://github.com/javaee-samples/javaee7-samples

53 Referências (3/3) Artigos e apresentações sobre Java EE 7 Marian Muller. Please Log In : Authentication and Authorization in Java SE and Java EE. JavaONE https://www.youtube.com/watch?v=pbdqiavwmyw Tutorial (video) sobre recursos de segurança em Java SE e Java EE, cobrindo JAAS e JASPIC. Arjan Tijms. Implementing container authentication in Java EE with JASPIC Nov/ Tutorial abrangente sobre JASPIC 1.0 (veja também posts do autor sobre JACC). Ron Monzillo. Using JACC to determine a caller's roles. Ron Monzillo's Weblog. Aug https://blogs.oracle.com/monzillo/entry/using_jacc_to_determine_a Aplicações práticas de alguns recursos da API JACC. Ron Monzillo. Adding Authentication Mechanisms to the GlassFish Servlet Container. Ron Monzillo's Weblog. Apr 30, https://blogs.oracle.com/enterprisetechtips/entry/adding_authentication_mechanisms_to_the Um tutorial de JASPIC. Produtos, extensões e alternativas Bauke Sholtz. Apache Shiro. Is it ready for Java EE 6? The BalusC Code, Janeiro/ Social Auth. https://code.google.com/p/socialauth/ Ferramenta de extensão para autenticação usando CAS, OAuth, OpenID. Seam Security. Alternativa à segurança padrão Java EE. Spring Security. Alternativa à segurança padrão Java EE.

54 2015 obrigado! Palestra Código-fonte https://github.com/argonavisbr/javaee7securityexamples

Julho/2015 JSR 375. O futuro da segurança em Java EE 8. helderdarocha. helder@argonavis.com.br

Julho/2015 JSR 375. O futuro da segurança em Java EE 8. helderdarocha. helder@argonavis.com.br Julho/2015 JSR 375 O futuro da segurança em Java EE 8 helderdarocha helder@argonavis.com.br Objetivos Discutir os problemas que existem na API padrão de segurança do Java EE atual Apresentar as idéias

Leia mais

Simplificando a segurança de sua aplicação com Java EE. Leonardo Zanivan @leonardopanga JavaOne Latin America 2015 - SES16317

Simplificando a segurança de sua aplicação com Java EE. Leonardo Zanivan @leonardopanga JavaOne Latin America 2015 - SES16317 Simplificando a segurança de sua aplicação com Java EE Leonardo Zanivan @leonardopanga JavaOne Latin America 2015 - SES16317 Palestrante Especialista em Arquitetura de Software Entusiasta em segurança

Leia mais

J550 Segurança e Controle de erros

J550 Segurança e Controle de erros J550 Segurança e Controle de erros Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Assuntos abordados Este módulo trata de dois assuntos Como mapear erros HTTP e exceções Java a servlets ou páginas

Leia mais

Java 2 Enterprise Edition Fundamentos básicos de Segurança

Java 2 Enterprise Edition Fundamentos básicos de Segurança Java 2 Enterprise Edition Fundamentos básicos de Segurança Helder da Rocha www.argonavis.com.br 1 Objetivos Este capítulo apresenta Noções básicas de segurança em J2EE Exemplos de aplicações Usos típicos

Leia mais

Segurança em Java. João Carlos Pinheiro. jcpinheiro@cefet-ma.br. Versão: 1.1 Última Atualização: Agosto/2005

Segurança em Java. João Carlos Pinheiro. jcpinheiro@cefet-ma.br. Versão: 1.1 Última Atualização: Agosto/2005 Segurança em Java João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 1.1 Última Atualização: Agosto/2005 1 Objetivos Apresentar uma introdução ao suporte fornecido pela API Java para a criptografia Utilizar

Leia mais

Autenticação e Controle de Acesso

Autenticação e Controle de Acesso J530 - Enterprise JavaBeans Autenticação e Controle de Acesso Helder da Rocha (helder@acm.org) argonavis.com.br 1 Controle de acesso a autenticação A especificação EJB define controle de acesso a métodos

Leia mais

JSF - Controle de Acesso FERNANDO FREITAS COSTA

JSF - Controle de Acesso FERNANDO FREITAS COSTA JSF - Controle de Acesso FERNANDO FREITAS COSTA ESPECIALISTA EM GESTÃO E DOCÊNCIA UNIVERSITÁRIA JSF Controle de Acesso Antes de iniciarmos este assunto, é importante conhecermos a definição de autenticação

Leia mais

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o a r t i g o Pedro Henrique S. Mariano (pedro.mariano@caelum.com.br) técnologo em Análise e Desenvolvimento de Sofware pela FIAP, possui as certificações SCJP 6 e SCRUM master.trabalha como consultor e

Leia mais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

NOME DA APRESENTAÇÃO

NOME DA APRESENTAÇÃO 25 DE MAIO @MICROSOFT Novidades de Java EE 7 Ernest Duarte NOME DA APRESENTAÇÃO Nome (Nick no Fórum) About me! Nickname na Comunidade Ernest Duarte Profissão Instrutor em Ciências e Tecnologias Numéricas

Leia mais

Java 2 Enterprise Edition Fundamentos básicos de Transações

Java 2 Enterprise Edition Fundamentos básicos de Transações Java 2 Enterprise Edition Fundamentos básicos de Transações Helder da Rocha www.argonavis.com.br 1 Objetivos Apresentar conceitos essenciais sobre transações em aplicações J2EE Este curso não aborda o

Leia mais

TDC2012. EJB simples e descomplicado, na prática. Slide 1

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Arquiteturas de Aplicações Web. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Arquiteturas de Aplicações Web Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aplicações Convencionais vs. Web Aplicações convencionais Escritas usando uma linguagem de programação (ex.: Java) Sites de

Leia mais

Laboratório EJB e J2EE Uma aplicação completa

Laboratório EJB e J2EE Uma aplicação completa J530 - Enterprise JavaBeans Laboratório EJB e J2EE Uma aplicação completa Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

Implementando uma aplicação java segura utilizando JAAS. Introdução

Implementando uma aplicação java segura utilizando JAAS. Introdução Implementando uma aplicação java segura utilizando JAAS. Introdução Neste documento mostrarei como desenvolver uma simples aplicação utilizando JAAS (Java Authentication and Authorization Service) e um

Leia mais

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

Leia mais

J530 - Enterprise JavaBeans. Introdução a EJB e Stateless. Session Beans. argonavis.com.br. Helder da Rocha (helder@acm.org)

J530 - Enterprise JavaBeans. Introdução a EJB e Stateless. Session Beans. argonavis.com.br. Helder da Rocha (helder@acm.org) J530 - Enterprise JavaBeans Introdução a EJB e Stateless Session Beans Helder da Rocha (helder@acm.org) argonavis.com.br 1 Componentes de um EJB Para que o container possa gerar o código necessário é preciso

Leia mais

Um serviço de autorização Java EE baseado em certificados de atributos X.509

Um serviço de autorização Java EE baseado em certificados de atributos X.509 Um serviço de autorização Java EE baseado em certificados de atributos X.509 Stefan Neusatz Guilhen DISSERTAÇÃO APRESENTADA AO INSTITUTO DE MATEMÁTICA E ESTATÍSTICA DA UNIVERSIDADE DE SÃO PAULO PARA OBTENÇÃO

Leia mais

J2EE. J2EE - Surgimento

J2EE. J2EE - Surgimento J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Prática: 1 - A plataforma JEE (Java Enterprise Edition) UBI, DI, Paula Prata SDTF T01 1 Arquitectura

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

Java 2 Enterprise Edition Uma aplicação J2EE completa

Java 2 Enterprise Edition Uma aplicação J2EE completa Java 2 Enterprise Edition Uma aplicação J2EE completa Helder da Rocha www.argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE completa Inicialmente, será mostrada

Leia mais

WOW Mobile Rui Miguel Miranda Ramos

WOW Mobile Rui Miguel Miranda Ramos WOW Mobile Rui Miguel Miranda Ramos Programa 1. Plataforma WOW 2. WOW Mobile 3. API do WOW 4. Clientes 5. Conclusões Plataforma WOW Plataforma WOW Issue tracking system Motor de workflow flexível Plataforma

Leia mais

Autenticação e Autorização

Autenticação e Autorização Autenticação e Autorização Introdução A segurança em aplicações corporativas está relacionada a diversos aspectos, tais como: autenticação, autorização e auditoria. A autenticação identifica quem acessa

Leia mais

EJB 3.1: A Community Update

EJB 3.1: A Community Update EJB 3.1: A Community Update Reza Rahman Autor, EJB 3 in Action Expert Group Member, Java EE 6 and EJB 3.1 Fundador, Cognicellence Julho de 2008 1 EJB 3.0: Revisão Breve > As grandes mudanças > EJB simplificado

Leia mais

Java para WEB. Servlets

Java para WEB. Servlets Servlets Servlets são classes Java que são instanciadas e executadas em associação com servidores Web, atendendo requisições realizadas por meio do protocolo HTTP. Servlets é a segunda forma que veremos

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

Experiência em missão crítica de missão crítica

Experiência em missão crítica de missão crítica 2 / 17 Experiência em missão crítica de missão crítica Pioneira no ensino de Linux à distância Parceira de treinamento IBM Primeira com LPI no Brasil + de 30.000 alunos satisfeitos Reconhecimento internacional

Leia mais

Desenvolvimento Web com JSP/Servlets

Desenvolvimento Web com JSP/Servlets Desenvolvimento Web com JSP/Servlets Requisitos Linguagem Java; Linguagem SQL; Noções de HTML; Noções de CSS; Noções de Javascript; Configuração do ambiente JDK APACHE TOMCAT MySQL Instalando o JDK Instalando

Leia mais

MÓDULO. Linguagem de Programação para Web 2

MÓDULO. Linguagem de Programação para Web 2 MÓDULO Linguagem de Programação para Web 2 Distribuição das Disciplinas de Programação para Web LPW 1: MVC Servlets JSP LPW2: Visão geral do JEE, JSF MVC, Facelets, PrimeFaces,... Padrões de projeto relacionadas

Leia mais

Aula 8: Servlets (III)

Aula 8: Servlets (III) Aula 8: Servlets (III) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) Servlets (III) TEPIS II 1 / 30 Última Aula Respostas de requisições.

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

J550. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 O que são Filtros Um filtro éum componente Web que reside no servidor Intercepta as requisições e respostas no seu caminho até o servlet e de

Leia mais

UNIDADE IV ENTERPRISE JAVABEANS

UNIDADE IV ENTERPRISE JAVABEANS UNIDADE IV ENTERPRISE JAVABEANS MODELO J2EE COMPONENTES DE Camada de Negócios NEGÓCIOS JAVA SERVLET, JSP E EJB Nos capítulos anteriores, foi mostrado como desenvolver e distribuir aplicações servlet e

Leia mais

Mini-curso Gratuito Globalcode Slide 1

Mini-curso Gratuito Globalcode Slide 1 Mini-curso Gratuito Slide 1 Mini-curso Gratuito Introdução Enterprise Java Beans (EJB) 3.0 Slide 2 Agenda Plataforma Java EE Conceitos Iniciais (EJB) Session Bean Message-Driven Bean (MDB) Java Persistence

Leia mais

Web Technologies. Tópicos da apresentação

Web Technologies. Tópicos da apresentação Web Technologies Tecnologias de Middleware 2004/2005 Hugo Simões hsimoes@di.fc.ul.pt 1 A Web Tópicos da apresentação Tecnologias Web para suporte a clientes remotos (Applets,CGI,Servlets) Servidores Aplicacionais

Leia mais

Segurança para serviços REST, Redes Sociais e Web 2.0. Fabio Velloso fabio@soujava.org.br

Segurança para serviços REST, Redes Sociais e Web 2.0. Fabio Velloso fabio@soujava.org.br Segurança para serviços REST, Redes Sociais e Web 2.0 Fabio Velloso fabio@soujava.org.br Fabio Velloso Bacharel em Ciência da Computação pela Universidade Federal de São Carlos-UFSCar Fundador do SouJava

Leia mais

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores

SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores Requerimentos do Software Versão para Microsoft Windows/Unix Dezembro 2006 Bem-Vindo ao to SIQ GQF Plugin s WEB - Gestão da Qualidade

Leia mais

Artigo JavaMagazine (edição 58)

Artigo JavaMagazine (edição 58) 1 / JBoss Seam Simplicidade e produtividade no desenvolvimento de aplicações Web Aprenda a desenvolver aplicações Web utilizando a integração perfeita entre JSF e EJB 3 FÁBIO AUGUSTO FALAVINHA O JBoss

Leia mais

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ INSTALAÇÃO DE CERTIFICADO DIGITAL EM APLICAÇÃO WEB JBOSS.

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ INSTALAÇÃO DE CERTIFICADO DIGITAL EM APLICAÇÃO WEB JBOSS. PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ INSTALAÇÃO DE CERTIFICADO DIGITAL EM APLICAÇÃO WEB JBOSS. Agosto 2006 Sumário de Informações do Documento Tipo do Documento: Definição Título do Documento: INSTALAÇÃO

Leia mais

Como sobreviver com Java 2? Saulo Arruda

Como sobreviver com Java 2? Saulo Arruda Como sobreviver com Java 2? Saulo Arruda Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões Apresentação Saulo Arruda (http://sauloarruda.eti.br) Trabalha com

Leia mais

Ricardo Koji Ushizaki riko@serasa.com.br http://www.ime.usp.br/~riko Just Java 2007 Outubro/2007 SP

Ricardo Koji Ushizaki riko@serasa.com.br http://www.ime.usp.br/~riko Just Java 2007 Outubro/2007 SP Ricardo Koji Ushizaki riko@serasa.com.br http://www.ime.usp.br/~riko Just Java 2007 Outubro/2007 SP Agenda 1. Certificação Digital e PKI 2. Controle de Acesso 3. Exemplo 4. Conclusão 1. Certificação Digital

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

Ricardo Koji Ushizaki riko@serasa.com.br 6º. É Dia de Java Segurança com Java Agosto/2007 - UFSCAR

Ricardo Koji Ushizaki riko@serasa.com.br 6º. É Dia de Java Segurança com Java Agosto/2007 - UFSCAR Ricardo Koji Ushizaki riko@serasa.com.br 6º. É Dia de Java Segurança com Java Agosto/2007 - UFSCAR Ricardo Koji Ushizaki riko@serasa.com.br 6º. É Dia de Cerva Segurança com Cerva Agosto/2007 - UFSCAR Controlede

Leia mais

UNIDADE II JAVA SERVLETS

UNIDADE II JAVA SERVLETS UNIDADE II JAVA SERVLETS INTERNET É uma rede de redes, reunindo computadores do Governo, de universidades e empresas fornecendo infra-estrutura para uso de bancos de dados, correio eletrônico, servidores

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Michel Zanini. Autenticação e assinatura de documentos na Internet com política de certificados digitais A3

Michel Zanini. Autenticação e assinatura de documentos na Internet com política de certificados digitais A3 Michel Zanini Autenticação e assinatura de documentos na Internet com política de certificados digitais A3 Florianópolis - SC 2007 Michel Zanini Autenticação e assinatura de documentos na Internet com

Leia mais

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES Hugo Henrique Rodrigues Correa¹, Jaime Willian Dias 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil hugohrcorrea@gmail.com, jaime@unipar.br Resumo.

Leia mais

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br A arquitetura Enterprise JavaBeans é uma arquitetura de componentes para o desenvolvimento e a implantação de aplicativos de negócio distribuídos

Leia mais

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br)

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br) Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) (kalinowski@ic.uff.br) Agenda Arquiteturas Web em Java (Relembrando) Arquitetura Java EE Introdução a Enterprise Java Beans

Leia mais

Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Dificuldades no uso de Bancos de Dados

Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Desenvolvimento de Aplicações. Dificuldades no uso de Bancos de Dados Desenvolvimento de Aplicações Desenvolvimento de Aplicações Dificuldades no uso de Bancos de Dados Um leigo não sabe o que é e como funciona um BD Mesmo um profissional da área de informática pode ter

Leia mais

Protocolos Básicos e Aplicações. Segurança e SSL

Protocolos Básicos e Aplicações. Segurança e SSL Segurança e SSL O que é segurança na rede? Confidencialidade: apenas remetente e destinatário pretendido devem entender conteúdo da mensagem remetente criptografa mensagem destinatário decripta mensagem

Leia mais

Sistema Protocolo Integrado Manual de Integração ao Web Service

Sistema Protocolo Integrado Manual de Integração ao Web Service 2015 Sistema Protocolo Integrado Manual de Integração ao Web Service Manual com a descrição do Web Service de recebimento das informações de processos e documentos dos órgãos e entidades. Versão 1.0 Vigência

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

MÓDULO Programação para Web 2

MÓDULO Programação para Web 2 MÓDULO Programação para Web 2 Sistemas Web na JEE OBJETIVO DO MÓDULO Arquitetura Web em aplicações JEE Conceitos iniciais Desenvolvimento Web Aplicações web tornam-se mais e mais importantes Mais e mais

Leia mais

4 - Padrões da Camada de Integração. Introdução

4 - Padrões da Camada de Integração. Introdução Padrões de Projeto J2EE J931 Padrões da Camada de Integração Helder da Rocha (helder@acm.org) argonavis.com.br Introdução A camada de integração encapsula a lógica relacionada com a integração do sistema

Leia mais

Prof. Roberto Desenvolvimento Web Avançado

Prof. Roberto Desenvolvimento Web Avançado Resposta exercício 1: Configuração arquivo web.xml helloservlet br.com.exercicios.helloservlet

Leia mais

Capítulo 1 - Java EE 6 por alto - 1

Capítulo 1 - Java EE 6 por alto - 1 Capítulo 1 - Java EE 6 por alto - 1 Um pouquinho de história - 2 Padrões - 4 Arquitetura - 4 Componentes - 5 Contentores - 6 Serviços - 7 Protocolos de rede - 9 Empacotamento - 9 Java Standard Edition

Leia mais

Tecnologias Web. Java Enterprise Edition

Tecnologias Web. Java Enterprise Edition Tecnologias Web Java Enterprise Edition Cristiano Lehrer, M.Sc. Introdução Java Enterprise Edition (JEE): Plataforma de tecnologias para o desenvolvimento de aplicações corporativas distribuídas. É uma

Leia mais

Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

Java 2 Enterprise Edition Session Beans

Java 2 Enterprise Edition Session Beans Java 2 Enterprise Edition Session Beans Helder da Rocha www.argonavis.com.br 1 Session Beans São objetos de processo de negócio Implementam lógica de negócio, algoritmos, workflow Representam ações Uma

Leia mais

Segurança. Sistemas Distribuídos. ic-sod@mega.ist.utl.pt 09/05/2005 1

Segurança. Sistemas Distribuídos. ic-sod@mega.ist.utl.pt 09/05/2005 1 Segurança Sistemas Distribuídos ic-sod@mega.ist.utl.pt 1 Tópicos abordados I - Mecanismos criptográficos Cifra simétrica, cifra assimétrica, resumo (digest) Assinatura digital Geração de números aleatórios

Leia mais

!" # # # $ %!" " & ' ( 2

! # # # $ %!  & ' ( 2 !"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta

Leia mais

Transferindo a carga da autenticação remota dos servidores

Transferindo a carga da autenticação remota dos servidores Transferindo a carga da autenticação remota dos servidores Visão Geral Há três etapas usadas pela maioria dos computadores para proteger o acesso a operações, aplicativos e dados sensíveis: A identificação

Leia mais

Evolução guiada por APIs. com REST para modernizar seu legado

Evolução guiada por APIs. com REST para modernizar seu legado Evolução guiada por APIs Option #2 híbrida Criando uma arquitetura com REST para modernizar seu legado Rodrigo Engenheiro de Software na CI&T. Atuou na criação da FIFA World Cup 2014 Happiness Flag da

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

Java na WEB Servlet. Sumário

Java na WEB Servlet. Sumário 1 Java na WEB Servlet Objetivo: Ao final da aula o aluno será capaz de: Utilizar Servlets para gerar páginas web dinâmicas. Utilizar Servlets para selecionar páginas JSPs. Utilizar Servlets como elemento

Leia mais

Explorando serviços Java EE

Explorando serviços Java EE 1/19 Explorando serviços Java EE Interceptadores e o Serviço de Tempo Construiremos uma aplicação que realiza o agendamento e envio de mensagens em determinada data e hora utilizando recursos Java EE BRUNO

Leia mais

Conceitos de Segurança em Sistemas Distribuídos

Conceitos de Segurança em Sistemas Distribuídos Conceitos de Segurança em Sistemas Distribuídos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br 30 de novembro de 2011

Leia mais

Enterprise Java Bean. Enterprise JavaBeans

Enterprise Java Bean. Enterprise JavaBeans Enterprise Java Bean Introdução Elementos do Modelo Enterprise JavaBeans A especificação do Enterprise JavaBeansTM (EJB) define uma arquitetura para o desenvolvimento de componentes de software distribuídos

Leia mais

Manual de Integração WebService

Manual de Integração WebService Manual de Integração WebService Sumário 1. O que é a Integração WebService? 2. Envio Simples 3. Consultar Status da Mensagem 3.1 Consultar Mensagens Recebidas 4. Tecnologia do WebService Facilita 1. O

Leia mais

Bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]] )

Bool setcookie (string nome [, string valor [, int validade [, string caminho [, string dominio [, int seguro]]]]] ) Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

Pen-test de Aplicações Web: Técnicas e Ferramentas

Pen-test de Aplicações Web: Técnicas e Ferramentas Divisão de Informática - DINF MJ Departamento de Polícia Federal Pen-test de Aplicações Web: Técnicas e Ferramentas Ivo de Carvalho Peixinho Perito Criminal Federal Agenda 1. Introdução 2. Ferramentas

Leia mais

Java 2 Enterprise Edition. Helder da Rocha www.argonavis.com.br

Java 2 Enterprise Edition. Helder da Rocha www.argonavis.com.br Java 2 Enterprise Edition Helder da Rocha www.argonavis.com.br 1 O que é JavaMail? API genérica para construir aplicações que manipulam correio eletrônico (não necessariamente Internet e-mail) e messaging

Leia mais

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 08 Protocolos de Segurança

www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 08 Protocolos de Segurança www.projetoderedes.com.br Gestão da Segurança da Informação Professor: Maurício AULA 08 Protocolos de Segurança Protocolos de Segurança A criptografia resolve os problemas envolvendo a autenticação, integridade

Leia mais

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,

Leia mais

Associação Carioca de Ensino Superior Centro Universitário Carioca

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU Auditoria e Segurança da Informação GSI536 Prof. Rodrigo Sanches Miani FACOM/UFU Revisão Criptografia de chave simétrica; Criptografia de chave pública; Modelo híbrido de criptografia. Criptografia Definições

Leia mais

Aplicando Web Services REST com a API JAX-RS

Aplicando Web Services REST com a API JAX-RS Aplicando Web Services REST com a API JAX-RS Rodrigo Araújo dos Santos Edigar A. Diniz Júnior Resumo Este artigo visa apresentar a tecnologia REST que representa uma alternativa ao desenvolvimento de Web

Leia mais

Programação WEB Introdução

Programação WEB Introdução Programação WEB Introdução Rafael Vieira Coelho IFRS Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Sul Campus Farroupilha rafael.coelho@farroupilha.ifrs.edu.br Roteiro 1) Conceitos

Leia mais

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha Desenvolvimento WEB II Professora: Kelly de Paula Cunha O Java EE (Java Enterprise Edition): série de especificações detalhadas, dando uma receita de como deve ser implementado um software que utiliza

Leia mais

J550 Testes em Aplicações Web com Cactus

J550 Testes em Aplicações Web com Cactus J550 Testes em Aplicações Web com Cactus Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este módulo descreve um framework - o Jakarta Cactus - que pode ser utilizado para testar

Leia mais

Componentes no Java EE

Componentes no Java EE Unidade III Componentes no Plataforma Java Enterprise Edition Adiciona ao Java suporte para: Desenvolvimento de Aplicações Web: JSP, Servlets e Componentes de Negócio: Interconexão com Sistemas Legados:

Leia mais

Spring: Um suite de novas opções para Java EE

Spring: Um suite de novas opções para Java EE Spring: Um suite de novas opções para Java EE Alberto J Lemos (Dr. Spock) Instrutor Globalcode Ricardo Jun Taniguchi Instrutor Globalcode 1 Agenda > Sobre o Spring Framework > Escopo de integração com

Leia mais

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Fundamentos da Plataforma Java EE Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Como a plataforma Java EE trata o SERVIÇO DE NOMES Serviço de Nomes Num sistema distribuído os componentes necessitam

Leia mais

Segurança no Desenvolvimento, Implantação e Operação de Sistemas de Informação Baseado na ISO 15408

Segurança no Desenvolvimento, Implantação e Operação de Sistemas de Informação Baseado na ISO 15408 Segurança no Desenvolvimento, Implantação e Operação de Sistemas de Informação Baseado na ISO 15408 Palestrante: Alexandre Sieira, CISSP Autores: Alexandre Correia Pinto, CISSP Alexandre Sieira, CISSP

Leia mais

Iniciando com Zend_Auth By Rob Allen, www.akrabat.com Document Revision 1.0.8 Copyright 2007

Iniciando com Zend_Auth By Rob Allen, www.akrabat.com Document Revision 1.0.8 Copyright 2007 Iniciando com Zend_Auth By Rob Allen, www.akrabat.com Document Revision 1.0.8 Copyright 2007 Este tutorial é destinado a oferecer uma bem básica introdução para o uso do componente Zend_Auth com o Zend

Leia mais

Criptografia de chaves públicas

Criptografia de chaves públicas Marcelo Augusto Rauh Schmitt Maio de 2001 RNP/REF/0236 Criptografia 2001 RNP de chaves públicas Criptografia Introdução Conceito É a transformação de um texto original em um texto ininteligível (texto

Leia mais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Servlets Servlet Aplicação Java que é executada no servidor que estende a capacidade do servidor Web Alternativa Java para os scripts CGI Gerenciado

Leia mais

SUMÁRIO REST. REST + OAuth. Cliente em Java Processamento de respostas JSON

SUMÁRIO REST. REST + OAuth. Cliente em Java Processamento de respostas JSON SUMÁRIO REST Cliente em Java Processamento de respostas JSON REST + OAuth Material de suporte às aulas de Sistemas Distribuídos de Nuno Preguiça Copyright DI FCT/ UNL / 1 REST WEB SERVICES: CLIENTE Criar

Leia mais

Java e Banco de Dados: JDBC, Hibernate e JPA

Java e Banco de Dados: JDBC, Hibernate e JPA Java e Banco de Dados: JDBC, Hibernate e JPA 1 Objetivos Apresentar de forma progressiva as diversas alternativas de persistência de dados que foram evoluindo na tecnologia Java, desde o JDBC, passando

Leia mais

Introdução à Plataforma J2EE Java2 Enterprise Edition. Alex de V. Garcia, Dr.

Introdução à Plataforma J2EE Java2 Enterprise Edition. Alex de V. Garcia, Dr. Introdução à Plataforma J2EE Java2 Enterprise Edition 1 O que é a plataforma J2EE? Estende a linguagem Java através de padrões simples e unificados para aplicações distribuídas através de um modelo baseado

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ UTFPR CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LUCAS JOSÉ MERENCIA

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ UTFPR CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LUCAS JOSÉ MERENCIA UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ UTFPR CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LUCAS JOSÉ MERENCIA INTEGRAÇÃO ENTRE TECNOLOGIAS DA PLATAFORMA JAVA EE COM O USO DE

Leia mais

DESENVOLVIMENTO DE APLICAÇÕES JAVA WEB

DESENVOLVIMENTO DE APLICAÇÕES JAVA WEB DESENVOLVIMENTO DE APLICAÇÕES JAVA WEB FRWTC-220 32 horas CAPÍTULO 1 PLATAFORMA WEB... 10 1.1. Introdução... 10 1.2. A Plataforma WEB... 10 1.2.1. Cliente HTTP... 11 1.2.2. Servidor HTTP... 11 1.3. Protocolo

Leia mais