add tamper protection
This commit is contained in:
parent
b4a6308d5a
commit
bf0a9ccbc9
@ -21,7 +21,8 @@ class AppAccessManager : AccessManager {
|
||||
return database.find(EntityModel::class.java)
|
||||
.where()
|
||||
.eq("name", entity)
|
||||
.findOne()?.actions
|
||||
.findOne()
|
||||
?.actions
|
||||
?.filter { it.equals(action, ignoreCase = true) }
|
||||
?.map { "role_${entity}_$it" } ?: emptyList()
|
||||
}
|
||||
|
||||
@ -47,6 +47,8 @@ fun main(args: Array<String>) {
|
||||
val updateRole = Role.Standard(Action.UPDATE)
|
||||
val approveOrRejectRole = Role.Standard(Action.APPROVE)
|
||||
|
||||
//todo, create roles in keycloak based on entity and actions
|
||||
|
||||
//ratelimit based on IP Only
|
||||
RateLimitUtil.keyFunction = { ctx -> ctx.header("X-Forwarded-For")?.split(",")?.get(0) ?: ctx.ip() }
|
||||
Javalin
|
||||
@ -225,15 +227,11 @@ fun main(args: Array<String>) {
|
||||
|
||||
|
||||
private fun getFormDataAsString(formData: Map<String, String>): String {
|
||||
val formBodyBuilder = StringBuilder()
|
||||
for ((key, value) in formData) {
|
||||
if (formBodyBuilder.isNotEmpty()) {
|
||||
formBodyBuilder.append("&")
|
||||
}
|
||||
formBodyBuilder.append(URLEncoder.encode(key, StandardCharsets.UTF_8))
|
||||
formBodyBuilder.append("=")
|
||||
formBodyBuilder.append(URLEncoder.encode(value, StandardCharsets.UTF_8))
|
||||
|
||||
return formData.entries.joinToString("&") {
|
||||
val key = URLEncoder.encode(it.key, StandardCharsets.UTF_8)
|
||||
val value = URLEncoder.encode(it.value, StandardCharsets.UTF_8)
|
||||
"$key=$value"
|
||||
}
|
||||
return formBodyBuilder.toString()
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user