#java #spring-boot #swagger
Вопрос:
Я настроил свой swagger на использование простой аутентификации HTTP для аутентификации каждого вызова конечной точки.
Конфигурация, которую я использовал, выглядит следующим образом:
private Docket docket () {
return new Docket(SWAGGER_2)
....
.build()
.securitySchemes(securitySchemes())
.securityContexts(securityContexts())
....
}
private List<SecurityScheme> securitySchemes() {
return ImmutableList.of(new BasicAuth("Authorization"));
}
private List<SecurityContext> securityContexts() {
SecurityContext securityContext = SecurityContext.builder()
.securityReferences(defaultAuth())
.operationSelector(operationContext -> true)
.build();
return ImmutableList.of(securityContext);
}
private List<SecurityReference> defaultAuth() {
AuthorizationScope authorizationScope = new AuthorizationScope("basicAuth", "HTTP Basic Authentication");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[]{authorizationScope};
SecurityReference securityReference = new SecurityReference("Authorization", authorizationScopes);
return ImmutableList.of(securityReference);
}
Пользовательский интерфейс Swagger позволяет мне вводить имя пользователя и пароль для аутентификации каждого вызова API.
Однако после того, как я войду в систему, сделаю успешный запрос и выйду из системы, Swagger все равно сможет совершать звонки, используя мои учетные данные. Это связано с тем, что в браузере все еще существует файл cookie, который можно использовать для аутентификации в конечной точке.
Как я могу настроить Swagger для удаления файлов cookie при выходе из системы?