• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Aspectos segurança javaee

on

  • 718 views

Apresentação sobre segurança em ambiente JavaEE

Apresentação sobre segurança em ambiente JavaEE

Statistics

Views

Total Views
718
Views on SlideShare
718
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Aspectos segurança javaee Aspectos segurança javaee Presentation Transcript

    • Aspectos de segurança em ambiente JavaEE Walter Itamar Mourão walter.mourao@gmail.com
    • Arquitetura em camadas Acesso às páginas Acesso aos serviços Podem estar em camadas físicas diferentes Acesso aos dados (fraco em aplicações JavaEE típicas)
    • 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>
    • 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"/>
    • 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')}" />
    • 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
    • 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>
    • 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>
    • 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>
    • Autenticação no Spring Security  JDBC, DAO  LDAP, JAAS, OpenID  X.509 (SSL/HTTPS), CAS (single sign on)  Específico da aplicação  ...
    • 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
    • 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;" />
    • Andromda - Acegi  Pode-se restringir o acesso aos serviços traçando dependência do ator para o serviço/método
    • Referências  http://www.springsource.com/  http://www.andromda.org/