Sie können einen benutzerdefinierten Filter hinzufügen und der Anforderung den Autorisierungsheader hinzufügen.
Der Authorization-Header ist einfach Base64-codiert "Benutzername: Passwort" -String.
public class AuthenticatedFilter extends ZuulFilter {
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 10;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
RequestContext ctx = RequestContext.getCurrentContext();
String auth = "username" + ":" + "password";
byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("ISO-8859-1")));
String authValue = "Basic " + new String(encodedAuth);
ctx.addZuulRequestHeader(HttpHeaders.AUTHORIZATION, authValue);
return null;
}
}
EDIT: Sie müssen auch die Bean für diesen Filter für Zuul erstellen, um es aufzunehmen. So in der Konfiguration Klasse/Main Anwendungsklasse, fügt:
@Bean
public AuthenticatedFilter getAuthenticatedFilter() {
return new AuthenticatedFilter();
}
Danke, wird versuchen, das aber, wie Benutzer-ID und das Kennwort als Teil des Authorization-Header zu senden? – Debopam
Ich aktualisierte meine Antwort. Ich kurz, für die Generierung der Benutzer-ID und Passwort Teil der Kopfzeile, einfach Base64 Codierung der "Benutzername: Passwort" -String. – pan
Sie können auch StandardCharsets verwenden – rj2700