Для переопределения URL
Что касается спецификации Микропрофиля OpenAPI: OASFilter , мы можем переопределить authorizationUrl
в следующем примере: -
package my.filter;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.ConfigProvider;
import org.eclipse.microprofile.openapi.OASFilter;
import org.eclipse.microprofile.openapi.models.security.SecurityScheme;
public class DemoOASFilter implements OASFilter {
@Override
public SecurityScheme filterSecurityScheme(final SecurityScheme securityScheme) {
Config config = ConfigProvider.getConfig();
String myUrl = config.getValue("my.url",
String.class);
securityScheme.getFlows().
getImplicit().
setAuthorizationUrl(myUrl);
return securityScheme;
}
}
Затем поместите наше полное имя класса в качестве значения mp.openapi.filter
в META-INF/microprofile-config.properties
как в следующем примере
mp.openapi.filter=my.filter.DemoOASFilter
my.url=http://some/url
Не только для переопределения authorizationUrl
, OAuthFlow также дает нам возможность переопределить tokenUrl
, refreshUrl
и так далее.Помимо implicit
, OAuthFlows также предоставляет authorizationCode
, clientCredentails
и другие.Кроме того, интерфейс OASFilter позволяет нам переопределять больше, например, APIResponse
, tag
, server
и т. Д.
Интеграция с Microprofile: Config
Config config = ConfigProvider.getConfig();
String myUrl = config.getValue("my.url",
String.class);
Я пытался поместить конфигурацию URL в META-INF/microprofile-config.properties
, как в приведенном выше примере, но не достиг, поскольку он дает мне java.util.NoSuchElementException
.
В любом случае environment variable
и system properties
достигнуты.
docker run -it \
--env my.url=http://some/url \
....
java -Dmy.url=http://some/url -jar ....