Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

"error": "unauthorized", "error_description": "Full authentication is required to access this resource"

Estou com problema mesmo colocando tudo corretamente, está dando o mesmo problema

"error": "unauthorized", "error_description": "Full authentication is required to access this resource"

`package br.com.alura.microservice.auth;

import java.security.Principal;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer; import org.springframework.security.oauth2.config.annotation.web.configuration.EnableResourceServer; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication @EnableAuthorizationServer @EnableResourceServer @RestController public class AuthApplication {

public static void main(String[] args) {
    SpringApplication.run(AuthApplication.class, args);
}


@RequestMapping("/user")
public Principal user(Principal user) { 
    return user;
}

}

package br.com.alura.microservice.auth;

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer; import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter; import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;

public class AuthorizationServerConfigurer extends AuthorizationServerConfigurerAdapter {

@Autowired
private AuthenticationManager authenticationManager;

@Autowired
private UserDetailsService userDetailsService;

@Autowired
private PasswordEncoder passwordEncoder;

@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
    clients.inMemory()
        .withClient("loja")
        .secret(passwordEncoder.encode("lojapwd"))
        .authorizedGrantTypes("password")
        .scopes("web","mobile"); 

}


@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {

    endpoints.authenticationManager(authenticationManager)
    .userDetailsService(userDetailsService);

}

}

package br.com.alura.microservice.auth;

import org.springframework.context.annotation.Bean; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder;

public class WebSecurityConfigure extends WebSecurityConfigurerAdapter {

@Override 
@Bean
protected AuthenticationManager authenticationManager() throws Exception {
     return super.authenticationManager();
}


@Override
@Bean
protected UserDetailsService userDetailsService() {
    return super.userDetailsService();
}


@Bean
public PasswordEncoder passwordEnconder() {
     return new BCryptPasswordEncoder();
}


@Override
@Bean
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    auth.inMemoryAuthentication()
    .passwordEncoder(passwordEnconder())
    .withUser("joao")
    .password(passwordEnconder().encode("joaopwd")) 
    .roles("USER");
}

}

`

1 resposta
solução!

Entendi o problema, não havia colocado a notação @Configuration nas classes de configuração de segurança.

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