Your SlideShare is downloading. ×
Aspectos segurança javaee
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Aspectos segurança javaee

563

Published on

Apresentação sobre segurança em ambiente JavaEE

Apresentação sobre segurança em ambiente JavaEE

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
563
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Aspectos de segurança em ambiente JavaEE Walter Itamar Mourão walter.mourao@gmail.com
  • 2. Arquitetura em camadas Acesso às páginas Acesso aos serviços Acesso aos dados (fraco em aplicações JavaEE típicas) Podem estar em camadas físicas diferentes
  • 3. Permissões de acesso - web.xml  As permissões de acessos são definidas no arquivo web.xml <security-role> <role-name>LOG_ONE_ADMIN</role-name> </security-role> <security-role> <role-name>DTE_TARGA</role-name> </security-role> <security-role> <role-name>CONTEINER_TARGA</role-name> </security-role>
  • 4. Autenticação via realm  Realms são mecanismos para autenticação do usuário <Realm className="c.a.logOne.targa.realm.tomcat.TargaRealm" dataSourceName="jdbc/logone"/>
  • 5. Mecanismos mais granulados  Deve-se usar a propriedade rendered, readonly e outras para controlar o acesso do usuário a componentes e parte específicas da página <h:inputText id="input1" value="#{helloWorldBacking.name}" required="true" rendered= "#{ssm:userHasPermission('NameField','View')}" readonly= "#{not ssm:userHasPermission('NameField','Change')}" />
  • 6. Spring Security  Projeto iniciado em 2003 (ACEGI), é o mais usado em segurança JavaEE  Usado por agências do governo e outros ambientes críticos  Pode ser usado na camada de apresentação ou serviços  Configuração via XML ou anotações
  • 7. Spring Security na Apresentação  Controla o acesso a páginas e recursos baseado em roles <http auto-config="true" access-denied-page="/403.jsp"> <intercept-url pattern="/index.jsp" access="ROLE_ADMINISTRATOR,ROLE_USER"/> <intercept-url pattern="/securePage.jsp" access="ROLE_ADMINISTRATOR"/> <intercept-url pattern="/**" access="ROLE_ANONYMOUS" /> </http>
  • 8. Spring Security na Apresentação  Permite que mecanismos dinâmicos sejam agregados para definição de roles->recursos em tempo de execução <beans:bean id="accessDecisionManager" class="org.springframework.security.vote.AffirmativeBased"> <beans:property name="decisionVoters"> <beans:list> <beans:bean class="org.springframework.security.vote.RoleVoter"/> <beans:bean class="org.springframework.security.vote.AuthenticatedVoter"/> </beans:list> </beans:property> </beans:bean>
  • 9. Spring Security nos Serviços  Intercepta as chamadas aos serviços, tratando de forma semelhante ao que é feito na camada de Apresentação <global-method-security secured- annotations="enabled"> <protect-pointcut expression="execution(* o.s.s.petclinic.Clinic.storeVisit(..))" access="ROLE_SUPERVISOR"/> </global-method-security>
  • 10. Autenticação no Spring Security  JDBC, DAO  LDAP, JAAS, OpenID  X.509 (SSL/HTTPS), CAS (single sign on)  Específico da aplicação  ...
  • 11. Andromda – Servidor JSP  O Andromda tem suporte à segurança na camada de apresentação através da geração do controle de acesso no arquivo web.xml a partir das associações Ator – Caso de uso
  • 12. Andromda – Servidor JSP  Além da geração das permissões de acesso no web.xml, o Andromda gera também o código JSF para o login do usuário <tr:inputText id="j_username" onkeypress="submitForm(event)" label="#{messages['login.username']}:" contentStyle="width:170px;" /> <tr:inputText id="j_password" onkeypress="submitForm(event)" secret="true" label="#{messages['login.password']}:" contentStyle="width:170px;" />
  • 13. Andromda - Acegi  Pode-se restringir o acesso aos serviços traçando dependência do ator para o serviço/método
  • 14. Referências  http://www.springsource.com/  http://www.andromda.org/

×