Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemples de code pour AWS WAF mobile SDK
Cette section fournit des exemples de code pour l'utilisation du mobileSDK.
Initialisation du fournisseur de jetons et obtention de jetons
Vous lancez votre instance de fournisseur de jetons à l'aide d'un objet de configuration. Vous pouvez ensuite récupérer des jetons en utilisant les opérations disponibles. Les éléments de base du code requis sont présentés ci-dessous.
- 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
-
Exemple Java :
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();
Exemple en Kotlin :
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)
}
}
}
SDKAutoriser le cookie jeton dans vos HTTP demandes
Si setTokenCookie
tel est le casTRUE
, le fournisseur de jetons inclut le cookie jeton pour vous dans vos requêtes Web adressées à tous les emplacements situés sous le chemin spécifié danstokenCookiePath
. Par défaut, setTokenCookie
est TRUE
et tokenCookiePath
est/
.
Vous pouvez réduire la portée des demandes qui incluent un cookie jeton en spécifiant le chemin du cookie jeton, par exemple,/web/login
. Dans ce cas, vérifiez que votre AWS WAF les règles ne vérifient pas la présence de jetons dans les demandes que vous envoyez à d'autres chemins. Lorsque vous utilisez le groupe de AWSManagedRulesACFPRuleSet
règles, vous configurez les chemins d'enregistrement et de création du compte, et le groupe de règles vérifie la présence de jetons dans les demandes envoyées à ces chemins. Pour de plus amples informations, veuillez consulter Ajouter le groupe de règles ACFP géré à votre site Web ACL. De même, lorsque vous utilisez le groupe de AWSManagedRulesATPRuleSet
règles, vous configurez le chemin de connexion, et le groupe de règles vérifie la présence de jetons dans les demandes envoyées vers ce chemin. Pour de plus amples informations, veuillez consulter Ajouter le groupe de règles ATP géré à votre site Web ACL.
- iOS
-
Dans setTokenCookie
ce casTRUE
, le fournisseur de jetons stocke le AWS WAF jeton dans un HTTPCookieStorage.shared
et inclut automatiquement le cookie dans les demandes adressées au domaine que vous avez spécifiéWAFConfiguration
.
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
-
Dans setTokenCookie
ce casTRUE
, le fournisseur de jetons stocke le AWS WAF jeton dans une CookieHandler
instance partagée à l'échelle de l'application. Le fournisseur de jetons inclut automatiquement le cookie dans les demandes adressées au domaine que vous avez spécifiéWAFConfiguration
.
Exemple Java :
URL url = new URL("Domain name
");
//The token cookie is set automatically as cookie header
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.getResponseCode();
Exemple en Kotlin :
val url = URL("Domain name
")
//The token cookie is set automatically as cookie header
val connection = (url.openConnection() as HttpsURLConnection)
connection.responseCode
Si l'instance CookieHandler
par défaut est déjà initialisée, le fournisseur de jetons l'utilisera pour gérer les cookies. Dans le cas contraire, le fournisseur de jetons initialisera une nouvelle CookieManager
instance avec AWS WAF jeton, CookiePolicy.ACCEPT_ORIGINAL_SERVER
puis définissez cette nouvelle instance comme instance par défaut dansCookieHandler
.
Le code suivant montre comment SDK initialiser le gestionnaire de cookies et le gestionnaire de cookies lorsqu'ils ne sont pas disponibles dans votre application.
Exemple Java :
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
if (cookieManager == null) {
// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
}
Exemple en Kotlin :
var cookieManager = CookieHandler.getDefault() as? CookieManager
if (cookieManager == null) {
// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
cookieManager = CookieManager()
CookieHandler.setDefault(cookieManager)
}
Fournir manuellement le cookie jeton dans vos HTTP demandes
Si vous définissez cette setTokenCookie
optionFALSE
, vous devez fournir le cookie jeton manuellement, sous forme d'en-tête de HTTP demande de cookie, dans vos demandes adressées à votre point de terminaison protégé. Le code suivant montre comment procéder.
- 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
-
Exemple Java :
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();
Exemple en Kotlin :
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