I am trying to connect OAuth authorization to my project via Github, but my user remains anonymous after success:
@RestController
@RequestMapping(path = "/")
public class HomeController {
@GetMapping
public String home() {
return "Hello, %s".formatted(SecurityContextHolder.getContext().getAuthentication().getName());
}
}
and output:
Hello, anonymousUser
Here is my SecurityFilterChain bean and application.yaml settings:
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http, Converter<Jwt, UsernamePasswordAuthenticationToken> converter) throws Exception {
http
.authorizeHttpRequests(authorize ->
authorize
.anyRequest()
.permitAll()
)
.csrf(AbstractHttpConfigurer::disable)
.cors(AbstractHttpConfigurer::disable)
.httpBasic(AbstractHttpConfigurer::disable)
.oauth2Login(withDefaults())
.oauth2ResourceServer(configurer ->
configurer
.jwt((jwt) -> jwt.jwtAuthenticationConverter(converter))
)
.sessionManagement(configurer ->
configurer
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
)
.exceptionHandling(configurer ->
configurer
.authenticationEntryPoint(new BearerTokenAuthenticationEntryPoint())
.accessDeniedHandler(new BearerTokenAccessDeniedHandler())
);
return http.build();
}
spring:
security:
oauth2:
client:
registration:
github:
clientId: <hidden>
clientSecret: <hidden>
redirect-uri: '{baseUrl}/login/oauth2/code/{registrationId}'