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?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
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.