2
respostas

Melhores práticas - Autenticação com muitas ações protegidas e não protegidas

Na atividade 6 da aula 04 (HttpSession) se optou por proteger todas as telas exceto as de login.

Mas e se eu tivesse um número grande de páginas que não devem precisar de autenticação e outro número grande que deve, qual seria a estratégia mais elegante pelas melhores práticas para validar se uma dada ação é ou não protegida?

2 respostas

Nesse caso poderiamos utilizar um framework como o Spring Security que permite fazer algo como:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/", "/home").permitAll()
                .anyRequest().authenticated()
                .and()
            .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
            .logout()
                .permitAll();
    }

    @Bean
    @Override
    public UserDetailsService userDetailsService() {
        UserDetails user =
             User.withDefaultPasswordEncoder()
                .username("user")
                .password("password")
                .roles("USER")
                .build();

        return new InMemoryUserDetailsManager(user);
    }
}

Curso de spring security: https://www.alura.com.br/curso-online-spring-mvc-security-rest-vuejs-ajax

Obrigado Otávio!

No entanto minha dúvida focava mais em alguma sugestão que não use framework ... haveria uma?

Quando digo 'sugestão' não precisa ter exemplo de código... só uma ideia do algoritmo e como dividir as responsabilidades entre as classes envolvidas.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software