Почему мой пользователь анонимен после входа в систему по OAuth2 с помощью Spring Boot?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Почему мой пользователь анонимен после входа в систему по OAuth2 с помощью Spring Boot?

Сообщение Anonymous »

Я пытаюсь подключить авторизацию OAuth к своему проекту через Github, но после успеха мой пользователь остается анонимным:

Код: Выделить всё

@RestController
@RequestMapping(path = "/")
public class HomeController {

@GetMapping
public String home() {
return "Hello, %s".formatted(SecurityContextHolder.getContext().getAuthentication().getName());
}
}
и вывод:

Код: Выделить всё

Hello, anonymousUser
Вот мой компонент SecurityFilterChain и настройки application.yaml:

Код: Выделить всё

    @Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http, Converter 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: 
clientSecret: 
redirect-uri: '{baseUrl}/login/oauth2/code/{registrationId}'
UPD:
Я так понял, что это происходит из-за настроек:

Код: Выделить всё

.sessionManagement(configurer ->
configurer
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
)
, но я не понимаю, как это отключить? Я хочу, чтобы в моем приложении не было сеансов и общение осуществлялось исключительно через токены доступа, выданные Github, но вместо этого я получаю JSESSIONID, установленный в файле cookie. Как сделать так, чтобы после успешной авторизации возвращались токены доступа вместо установки Cookies?

Подробнее здесь: https://stackoverflow.com/questions/785 ... pring-boot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»