Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Schreiben Sie Ihren Code für das AWS WAF mobile SDK
Dieser Abschnitt enthält Beispiele für die Verwendung des SDK für Mobilgeräte.
Initialisieren des Token-Anbieters und Abrufen von Token
Sie initiieren die Instance des Token-Anbieters mit einem Konfigurationsobjekt. Dann können Sie Token mit den verfügbaren Operationen abrufen. Im Folgenden finden Sie die grundlegenden Benutzeroberflächenkomponenten des erforderlichen Codes.
- iOS
-
let url: URL = URL(string: "Web ACL integration URL
")!
let configuration = WAFConfiguration(applicationIntegrationUrl: url, domainName: "Domain name
")
let tokenProvider = WAFTokenProvider(configuration)
//onTokenReady can be add as an observer for UIApplication.willEnterForegroundNotification
self.tokenProvider.onTokenReady() { token, error in
if let token = token {
//token available
}
if let error = error {
//error occurred after exhausting all retries
}
}
//getToken()
let token = tokenProvider.getToken()
- Android
-
Java-Beispiel:
String applicationIntegrationURL = "Web ACL integration URL
";
//Or
URL applicationIntegrationURL = new URL("Web ACL integration URL
");
String domainName = "Domain name
";
WAFConfiguration configuration = WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL).domainName(domainName).build();
WAFTokenProvider tokenProvider = new WAFTokenProvider(Application context
, configuration);
// implement a token result callback
WAFTokenResultCallback callback = (wafToken, error) -> {
if (wafToken != null) {
// token available
} else {
// error occurred in token refresh
}
};
// Add this callback to application creation or activity creation where token will be used
tokenProvider.onTokenReady(callback);
// Once you have token in token result callback
// if background refresh is enabled you can call getToken() from same tokenprovider object
// if background refresh is disabled you can directly call getToken()(blocking call) for new token
WAFToken token = tokenProvider.getToken();
Kotlin-Beispiel:
import com.amazonaws.waf.mobilesdk.token.WAFConfiguration
import com.amazonaws.waf.mobilesdk.token.WAFTokenProvider
private lateinit var wafConfiguration: WAFConfiguration
private lateinit var wafTokenProvider: WAFTokenProvider
private val WAF_INTEGRATION_URL = "Web ACL integration URL
"
private val WAF_DOMAIN_NAME = "Domain name
"
fun initWaf() {
// Initialize the tokenprovider instance
val applicationIntegrationURL = URL(WAF_INTEGRATION_URL)
wafConfiguration =
WAFConfiguration.builder().applicationIntegrationURL(applicationIntegrationURL)
.domainName(WAF_DOMAIN_NAME).backgroundRefreshEnabled(true).build()
wafTokenProvider = WAFTokenProvider(getApplication(), wafConfiguration)
// getToken from tokenprovider object
println("WAF: "+ wafTokenProvider.token.value)
// implement callback for where token will be used
wafTokenProvider.onTokenReady {
wafToken, sdkError ->
run {
println("WAF Token:" + wafToken.value)
}
}
}
Zulassen, dass das SDK das Token-Cookie in Ihren HTTP-Anforderungen bereitstellt
Wenn setTokenCookie
TRUE
ist, stellt der Token-Anbieter das Token-Cookie in Ihren Webanforderungen an allen Standorten unter dem Pfad bereit, der in tokenCookiePath
angegeben wurde. Standardmäßig ist setTokenCookie
TRUE
und tokenCookiePath
ist /
.
Sie schränken den Umfang der Anforderungen, die ein Token-Cookie enthalten, ein, indem Sie den Token-Cookie-Pfad angeben, zum Beispiel /web/login
. Stellen Sie in diesem Fall sicher, dass Ihre AWS WAF Regeln in den Anfragen, die Sie an andere Pfade senden, nicht nach Tokens suchen. Wenn Sie die AWSManagedRulesACFPRuleSet
Regelgruppe verwenden, konfigurieren Sie die Pfade zur Kontoregistrierung und Kontoerstellung, und die Regelgruppe sucht in Anfragen, die an diese Pfade gesendet werden, nach Tokens. Weitere Informationen finden Sie unter Hinzufügen der verwalteten ACFP-Regelgruppe zu Ihrer Web-ACL. Wenn Sie die AWSManagedRulesATPRuleSet
Regelgruppe verwenden, konfigurieren Sie auf ähnliche Weise den Anmeldepfad, und die Regelgruppe sucht in Anfragen, die an diesen Pfad gesendet werden, nach Tokens. Weitere Informationen finden Sie unter Hinzufügen der von ATP verwalteten Regelgruppe zu Ihrer Web-ACL.
- iOS
-
Wenn setTokenCookie
jaTRUE
, speichert der Token-Anbieter das AWS WAF Token in einer HTTPCookieStorage.shared
und nimmt das Cookie automatisch in Anfragen an die Domain auf, in der Sie angegeben habenWAFConfiguration
.
let request = URLRequest(url: URL(string: domainEndpointUrl)!)
//The token cookie is set automatically as cookie header
let task = URLSession.shared.dataTask(with: request) { data, urlResponse, error in
}.resume()
- Android
-
In setTokenCookie
diesem TRUE
Fall speichert der Token-Anbieter das AWS WAF Token in einer CookieHandler
Instanz, die für die gesamte Anwendung gemeinsam genutzt wird. Der Token-Anbieter schließt das Cookie automatisch in Anforderungen an die Domäne ein, die Sie in der WAFConfiguration
angegeben haben.
Java-Beispiel:
URL url = new URL("Domain name
");
//The token cookie is set automatically as cookie header
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.getResponseCode();
Kotlin-Beispiel:
val url = URL("Domain name
")
//The token cookie is set automatically as cookie header
val connection = (url.openConnection() as HttpsURLConnection)
connection.responseCode
Wenn Sie die CookieHandler
-Standard-Instance bereits initialisiert haben, nutzt der Token-Anbieter diese zur Verwaltung von Cookies. Wenn nicht, initialisiert der Token-Anbieter eine neue CookieManager
Instanz mit dem AWS WAF Token CookiePolicy.ACCEPT_ORIGINAL_SERVER
und legt diese neue Instanz dann als Standardinstanz in CookieHandler
fest.
Der folgende Code zeigt, wie das SDK den Cookie-Manager und den Cookie-Handler initialisiert, wenn diese in Ihrer App nicht verfügbar sind.
Java-Beispiel:
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
if (cookieManager == null) {
// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
}
Kotlin-Beispiel:
var cookieManager = CookieHandler.getDefault() as? CookieManager
if (cookieManager == null) {
// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
cookieManager = CookieManager()
CookieHandler.setDefault(cookieManager)
}
Manuelles Bereitstellen des Token-Cookies in Ihren HTTP–Anforderungen
Wenn Sie setTokenCookie
auf FALSE
festlegen, müssen Sie das Token-Cookie manuell als Cookie-HTTP-Anforderungsheader in den Anforderungen an Ihren geschützten Endpunkt bereitstellen. Der folgende Code veranschaulicht, wie dazu vorgegangen wird.
- iOS
-
var request = URLRequest(url: wafProtectedEndpoint)
request.setValue("aws-waf-token=token from token provider
", forHTTPHeaderField: "Cookie")
request.httpShouldHandleCookies = true
URLSession.shared.dataTask(with: request) { data, response, error in }
- Android
-
Java-Beispiel:
URL url = new URL("Domain name
");
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
String wafTokenCookie = "aws-waf-token=token from token provider
";
connection.setRequestProperty("Cookie", wafTokenCookie);
connection.getInputStream();
Kotlin-Beispiel:
val url = URL("Domain name
")
val connection = (url.openConnection() as HttpsURLConnection)
val wafTokenCookie = "aws-waf-token=token from token provider"
connection.setRequestProperty("Cookie", wafTokenCookie)
connection.inputStream