@GetMapping("getImageCaptcha") @ApiImplicitParam(name = "scope", allowableValues = ImgCaptchaType.allowableValues) fun getImageCaptcha(scope: String, response: HttpServletResponse): ResponseEntity<*> { if (!ImgCaptchaType.allowableValueList.contains(scope)) { return Result.badRequest(mapOf("scope" to "invalid scope")) } val captcha = RandomStringUtils.randomAlphanumeric(6) CaptchaUtil.outPng(request, response) session.setAttribute(scope, captcha) return Result.ok() } @PutMapping("sendPhoneCaptcha") @ApiImplicitParam(name = "scope", allowableValues = PhoneCaptchaType.allowableValues) fun sendPhoneCaptcha(phoneNumber: String, scope: String): ResponseEntity<*> { if (!PhoneCaptchaType.allowableValueList.contains(scope)) { return Result.badRequest(mapOf("scope" to "invalid scope")) } // ... } object PhoneCaptchaType { const val MERCHANT_LOGIN = "PHONE_CAPTCHA_MERCHANT_LOGIN" const val ADMIN_FORGET_PASS = "PHONE_CAPTCHA_ADMIN_FORGET_PASS" const val allowableValues = "$MERCHANT_LOGIN,$ADMIN_FORGET_PASS" val allowableValueList by lazy { allowableValues.split(",") } } object ImgCaptchaType { const val ADMIN_LOGIN = "IMG_CAPTCHA_MERCHANT_LOGIN" const val allowableValues = ADMIN_LOGIN val allowableValueList by lazy { allowableValues.split(",") } }