From a9d8a8cf432e0735b94b12b6c08b519843a1b687 Mon Sep 17 00:00:00 2001 From: Thatsaphorn Atchariyaphap Date: Sun, 29 Jun 2025 20:39:57 +0900 Subject: [PATCH] Remove hCaptcha integration from contact form and API route --- .../usecase/SubmitContactUseCaseImpl.java | 24 +++++++------- .../Contact/Section/ContactFormSection.tsx | 32 ++----------------- 2 files changed, 15 insertions(+), 41 deletions(-) diff --git a/backend/server/src/main/java/dev/rheinsw/server/contact/usecase/SubmitContactUseCaseImpl.java b/backend/server/src/main/java/dev/rheinsw/server/contact/usecase/SubmitContactUseCaseImpl.java index 460e5ac..c95b760 100644 --- a/backend/server/src/main/java/dev/rheinsw/server/contact/usecase/SubmitContactUseCaseImpl.java +++ b/backend/server/src/main/java/dev/rheinsw/server/contact/usecase/SubmitContactUseCaseImpl.java @@ -26,7 +26,7 @@ public class SubmitContactUseCaseImpl implements SubmitContactUseCase { private static final Logger log = LoggerFactory.getLogger(SubmitContactUseCaseImpl.class); - private final HCaptchaValidator captchaValidator; + //private final HCaptchaValidator captchaValidator; private final ContactRequestsRepo contactRepository; private final SendMailUseCase sendMailUseCase; // Inject SendMailUseCase @@ -37,7 +37,7 @@ public class SubmitContactUseCaseImpl implements SubmitContactUseCase { public SubmitContactUseCaseImpl(HCaptchaValidator captchaValidator, ContactRequestsRepo contactRepository, SendMailUseCase sendMailUseCase) { - this.captchaValidator = captchaValidator; + //this.captchaValidator = captchaValidator; this.contactRepository = contactRepository; this.sendMailUseCase = sendMailUseCase; } @@ -45,17 +45,17 @@ public class SubmitContactUseCaseImpl implements SubmitContactUseCase { @Override public ResponseEntity submitContact(ContactRequestDto request) { log.info("Received contact form from: {}", request.name()); - log.debug("Captcha token: {}", request.captcha()); + //log.debug("Captcha token: {}", request.captcha()); log.info("Message: {}", request.message()); if (request.email() != null) { log.info("Reply to: {} ({})", request.email(), request.name()); } - if (!isValidCaptcha(request.captcha())) { - log.warn("Captcha verification failed for {}", request.email()); - return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Captcha verification failed"); - } + //if (!isValidCaptcha(request.captcha())) { + // log.warn("Captcha verification failed for {}", request.email()); + // return ResponseEntity.status(HttpStatus.FORBIDDEN).body("Captcha verification failed"); + //} ContactRequest message = new ContactRequest() .setName(request.name()) @@ -80,9 +80,9 @@ public class SubmitContactUseCaseImpl implements SubmitContactUseCase { return ResponseEntity.ok("Contact form submitted successfully"); } - private boolean isValidCaptcha(String captcha) { - return "10000000-aaaa-bbbb-cccc-000000000001".equals(captcha) || captchaValidator.isValid(captcha); - } + //private boolean isValidCaptcha(String captcha) { + // return "10000000-aaaa-bbbb-cccc-000000000001".equals(captcha) || captchaValidator.isValid(captcha); + //} private void notifyContactAndTeam(ContactRequestDto request) { // User confirmation @@ -96,7 +96,7 @@ public class SubmitContactUseCaseImpl implements SubmitContactUseCase { %s Mit freundlichen Grüßen - Rhein Software + Rhein Software Development """.formatted(request.name(), request.message()); // Send confirmation email to user @@ -137,4 +137,4 @@ public class SubmitContactUseCaseImpl implements SubmitContactUseCase { private String safe(String value) { return value != null ? value : "-"; } -} +} \ No newline at end of file diff --git a/frontend/components/Contact/Section/ContactFormSection.tsx b/frontend/components/Contact/Section/ContactFormSection.tsx index 79dc36f..1567e9a 100644 --- a/frontend/components/Contact/Section/ContactFormSection.tsx +++ b/frontend/components/Contact/Section/ContactFormSection.tsx @@ -1,13 +1,10 @@ 'use client' -import React, {useRef, useState} from 'react' +import React, {useState} from 'react' import {motion} from 'framer-motion' import {Button} from '@/components/ui/button' -import HCaptcha from '@hcaptcha/react-hcaptcha' const ContactFormSection = () => { - const captchaRef = useRef(null) - const [form, setForm] = useState({ name: '', email: '', @@ -17,7 +14,6 @@ const ContactFormSection = () => { message: '', }) - const [captchaToken, setCaptchaToken] = useState('') const [submitted, setSubmitted] = useState(false) const [loading, setLoading] = useState(false) const [error, setError] = useState('') @@ -33,16 +29,10 @@ const ContactFormSection = () => { setLoading(true) setError('') - if (!captchaToken) { - setError('Bitte bestätige, dass du kein Roboter bist.') - setLoading(false) - return - } - const res = await fetch('/api/contact', { method: 'POST', headers: {'Content-Type': 'application/json'}, - body: JSON.stringify({...form, captcha: captchaToken}), + body: JSON.stringify(form), }) if (res.ok) { @@ -55,8 +45,6 @@ const ContactFormSection = () => { website: '', message: '', }) - setCaptchaToken('') - captchaRef.current?.resetCaptcha() } else { const resJson = await res.json() setError( @@ -178,20 +166,6 @@ const ContactFormSection = () => { /> - - setCaptchaToken(token)} - ref={captchaRef} - /> - - {error && (
❌ {error}
)} @@ -213,4 +187,4 @@ const ContactFormSection = () => { ) } -export default ContactFormSection +export default ContactFormSection \ No newline at end of file