create-session использование без отслеживания состояния при горизонтальном масштабировании

Я хочу создать RESTful API, мне нужно, чтобы он был без гражданства, потому что я мог бы запустить N раз приложение.

Я также добавил OAuth2 с реализацией jdbc, пользователь должен войти один раз, и все запросы должны быть без отслеживания состояния.

Добавление следующего в мое приложение spring boot привело к сбою входа, который он пытается теперь аутентифицировать два раза.

    http
        .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS);

И на стороне сервера у меня есть эти журналы :

AuditEvent [timestamp=Tue Oct 04 05:04:52 ICT 2016, principal=dka, type=AUTHENTICATION_SUCCESS, data={details=org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null}]
AuditEvent [timestamp=Tue Oct 04 05:04:52 ICT 2016, principal=anonymousUser, type=AUTHORIZATION_FAILURE, data={details=org.springframework.security.web.authentication.WebAuthenticationDetails@b364: RemoteIpAddress: 0:0:0:0:0:0:0:1; SessionId: null, type=org.springframework.security.access.AccessDeniedException, message=Access is denied}]
  • Касается ли это моей аутентификации OAuth, а также или только части WebSecurity ?
  • Есть ли хороший способ настроить мой сеанс, чтобы масштабировать его и сохранить службу без отслеживания состояния ?

1 ответ

  1. Похоже, что ваш второй запрос не содержит заголовка авторизации или spring security не оценивает его.

    В соответствии с документацией о типе носителя OAuth клиент должен отправить заголовок: Authorization: Bearer YOUR_TOKENв то время как маркер является ответом маркера доступа (см. пример ответа маркера доступа)

    Если это не решит вашу проблему, пожалуйста, подумайте о том, чтобы добавить некоторые журналы и код вашей конфигурации.