Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh kode untuk AWS WAF ponsel SDK
Bagian ini memberikan contoh kode untuk menggunakan ponselSDK.
Menginisialisasi penyedia token dan mendapatkan token
Anda memulai instance penyedia token Anda menggunakan objek konfigurasi. Kemudian Anda dapat mengambil token menggunakan operasi yang tersedia. Berikut ini menunjukkan komponen dasar dari kode yang diperlukan.
- 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
-
Contoh 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();
Contoh 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)
}
}
}
Mengizinkan SDK untuk menyediakan cookie token dalam HTTP permintaan Anda
Jika setTokenCookie
yaTRUE
, penyedia token menyertakan cookie token untuk Anda dalam permintaan web Anda ke semua lokasi di bawah jalur yang ditentukantokenCookiePath
. Secara default, setTokenCookie
adalah TRUE
dan tokenCookiePath
adalah/
.
Anda dapat mempersempit cakupan permintaan yang menyertakan cookie token dengan menentukan jalur cookie token, misalnya,/web/login
. Jika Anda melakukan ini, periksa apakah AWS WAF aturan tidak memeriksa token dalam permintaan yang Anda kirim ke jalur lain. Saat Anda menggunakan grup AWSManagedRulesACFPRuleSet
aturan, Anda mengonfigurasi jalur pendaftaran dan pembuatan akun, dan grup aturan memeriksa token dalam permintaan yang dikirim ke jalur tersebut. Untuk informasi selengkapnya, lihat Menambahkan grup aturan ACFP terkelola ke web Anda ACL. Demikian pula, saat Anda menggunakan grup AWSManagedRulesATPRuleSet
aturan, Anda mengonfigurasi jalur masuk, dan grup aturan memeriksa token dalam permintaan yang dikirim ke jalur tersebut. Untuk informasi selengkapnya, lihat Menambahkan grup aturan ATP terkelola ke web Anda ACL.
- iOS
-
setTokenCookie
KapanTRUE
, penyedia token menyimpan AWS WAF token dalam HTTPCookieStorage.shared
dan secara otomatis menyertakan cookie dalam permintaan ke domain yang Anda tentukanWAFConfiguration
.
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
-
setTokenCookie
KapanTRUE
, penyedia token menyimpan AWS WAF token dalam CookieHandler
instance yang dibagikan di seluruh aplikasi. Penyedia token secara otomatis menyertakan cookie dalam permintaan ke domain yang Anda tentukanWAFConfiguration
.
Contoh Java:
URL url = new URL("Domain name
");
//The token cookie is set automatically as cookie header
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.getResponseCode();
Contoh Kotlin:
val url = URL("Domain name
")
//The token cookie is set automatically as cookie header
val connection = (url.openConnection() as HttpsURLConnection)
connection.responseCode
Jika Anda sudah menginisialisasi instance CookieHandler
default, penyedia token akan menggunakannya untuk mengelola cookie. Jika tidak, penyedia token akan menginisialisasi CookieManager
instance baru dengan AWS WAF token CookiePolicy.ACCEPT_ORIGINAL_SERVER
dan kemudian atur instance baru ini sebagai instance default diCookieHandler
.
Kode berikut menunjukkan cara SDK menginisialisasi pengelola cookie dan penangan cookie saat tidak tersedia di aplikasi Anda.
Contoh Java:
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
if (cookieManager == null) {
// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
}
Contoh Kotlin:
var cookieManager = CookieHandler.getDefault() as? CookieManager
if (cookieManager == null) {
// Cookie manager is initialized with CookiePolicy.ACCEPT_ORIGINAL_SERVER
cookieManager = CookieManager()
CookieHandler.setDefault(cookieManager)
}
Menyediakan cookie token secara manual dalam HTTP permintaan Anda
Jika Anda menyetel setTokenCookie
keFALSE
, maka Anda perlu memberikan cookie token secara manual, sebagai header HTTP permintaan Cookie, dalam permintaan Anda ke titik akhir yang dilindungi. Kode berikut menunjukkan bagaimana melakukan ini.
- 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
-
Contoh 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();
Contoh 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