{"id":28399081,"url":"https://github.com/dheid/friendlycaptcha","last_synced_at":"2025-06-28T19:32:05.100Z","repository":{"id":38235603,"uuid":"480883646","full_name":"dheid/friendlycaptcha","owner":"dheid","description":"A Friendly Captcha Verification API REST client to verify puzzle solutions","archived":false,"fork":false,"pushed_at":"2025-06-10T02:07:47.000Z","size":400,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-10T03:23:45.047Z","etag":null,"topics":["captcha","captcha-solving","friendly-captcha","friendlycaptcha","gdpr-compliant","integration","java","jvm","library","privacy","spam-protection","web-forms"],"latest_commit_sha":null,"homepage":"https://www.daniel-heid.de/open-source-projekte/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dheid.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["dheid"],"ko_fi":"dheid"}},"created_at":"2022-04-12T16:12:42.000Z","updated_at":"2025-06-10T02:07:44.000Z","dependencies_parsed_at":"2024-01-03T19:23:19.395Z","dependency_job_id":"aa7ac87e-2afb-4512-9923-2d2782685dfa","html_url":"https://github.com/dheid/friendlycaptcha","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/dheid/friendlycaptcha","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheid%2Ffriendlycaptcha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheid%2Ffriendlycaptcha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheid%2Ffriendlycaptcha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheid%2Ffriendlycaptcha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dheid","download_url":"https://codeload.github.com/dheid/friendlycaptcha/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dheid%2Ffriendlycaptcha/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262484089,"owners_count":23318392,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["captcha","captcha-solving","friendly-captcha","friendlycaptcha","gdpr-compliant","integration","java","jvm","library","privacy","spam-protection","web-forms"],"created_at":"2025-06-01T06:39:21.110Z","updated_at":"2025-06-28T19:32:05.071Z","avatar_url":"https://github.com/dheid.png","language":"Java","funding_links":["https://github.com/sponsors/dheid","https://ko-fi.com/dheid","https://ko-fi.com/W7W3EER56"],"categories":[],"sub_categories":[],"readme":"# :robot: Friendly Captcha Verification API Client\n\n[![Maven Central](https://img.shields.io/maven-central/v/org.drjekyll/friendlycaptcha.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22org.drjekyll%22%20AND%20a:%22friendlycaptcha%22)\n[![Java CI with Maven](https://github.com/dheid/friendlycaptcha/actions/workflows/build.yml/badge.svg)](https://github.com/dheid/friendlycaptcha/actions/workflows/build.yml)\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/W7W3EER56)\n\nThis client library allows JVM-based applications to verify [Friendly Captcha](https://www.friendlycaptcha.com) puzzle solutions. It wraps the necessary\ncall and interprets the result.\n\n* Easy to use (see example below)\n* Compatible with JVM-based applications (Java, Groovy, Kotlin, Scala, Clojure)\n* Only two dependencies: Jackson and SLF4J\n\n## :wrench: Usage\n\nInclude the dependency using Maven\n\n```xml\n\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.drjekyll\u003c/groupId\u003e\n  \u003cartifactId\u003efriendlycaptcha\u003c/artifactId\u003e\n  \u003cversion\u003e2.0.9\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nor Gradle with Groovy DSL:\n\n```groovy\nimplementation 'org.drjekyll:friendlycaptcha:2.0.9'\n```\n\nor Gradle with Kotlin DSL:\n\n```kotlin\nimplementation(\"org.drjekyll:friendlycaptcha:2.0.9\")\n```\n\nRun your build tool and you can include the verifier as follows:\n\n```java\nimport org.drjekyll.friendlycaptcha.FriendlyCaptchaVerifier;\n\npublic class FriendlyCaptchaExample {\n\n  private final FriendlyCaptchaVerifier friendlyCaptchaVerifier = FriendlyCaptchaVerifier\n    .builder()\n    .apiKey(\"YOUR_API_KEY\")\n    .sitekey(\"AN_OPTIONAL_SITE_KEY\")\n    .build();\n\n  public void checkSolution(String solution) {\n\n    boolean success = friendlyCaptchaVerifier.verify(solution);\n    if (success) {\n      // continue\n    } else {\n      // stop processing\n    }\n\n  }\n\n}\n```\n\nOr Kotlin:\n\n```kotlin\nclass FriendlyCaptchaExample {\n  private val friendlyCaptchaVerifier: FriendlyCaptchaVerifier = FriendlyCaptchaVerifier\n    .builder()\n    .apiKey(\"YOUR_API_KEY\")\n    .sitekey(\"AN_OPTIONAL_SITE_KEY\")\n    .build()\n\n  fun checkSolution(solution: String?) {\n    val success: Boolean = friendlyCaptchaVerifier.verify(solution)\n    if (success) {\n      // continue\n    } else {\n      // stop processing\n    }\n  }\n}\n```\n\nOn a non-successful response, `verify` throws a `FriendlyCaptchaException` containing either the response details or a description of the error.\n\n## :gear: Verifier Parameters\n\nThe Friendly Captcha Verifier currently supports the following builder methods:\n\n* `.apiKey(...)` An API key that proves it's you, create one on the Friendly Captcha website\n* `.objectMapper(...)` If you would like to use an existing or custom object mapper\n* `.verificationEndpoint(...)` An `URI` object that can point to another verification endpoint (for\n  example if you would like to use EU hosts). Default\n  is: https://api.friendlycaptcha.com/api/v1/siteverify\n* `.connectTimeout(...)` allows you to change the default connection timeout of 10 seconds. 0 is\n  interpreted as infinite, null uses the system default\n* `.socketTimeout(...)` allows you to change the default socket timeout of 10 seconds. 0 is\n  interpreted as infinite, null uses the system default\n* `.sitekey(...)` is an optional sitekey that you want to make sure the puzzle was generated from.\n* `.proxyHost(...)` The hostname or IP address of an optional HTTP proxy. `proxyPort` must be\n  configured as well\n* `.proxyPort(...)` The port of an HTTP proxy. `proxyHost` must be configured as well.\n* `.proxyUserName(...)` If the HTTP proxy requires a user name for basic authentication, it can be\n  configured with this method. Proxy host, port and password must also be set.\n* `.proxyPassword(...)` The corresponding password for the basic auth proxy user. The proxy host,\n  port and user name must be set as well.\n* `.verbose(...)` logs detailed information using INFO level\n\n## :factory_worker: Development\n\nTo build and locally install the library and run the tests, just call\n\n    mvn install\n\n## :handshake: Contributing\n\nPlease read [the contribution document](CONTRIBUTING.md) for details on our code of conduct, and the\nprocess for submitting pull requests to us.\n\n## :notebook: Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see\nthe [tags on this repository](https://github.com/dheid/friendlycaptcha/tags).\n\n## :scroll: License\n\nThis project is licensed under the LGPL License - see the [license](LICENSE) file for details.\n\n## :loudspeaker: Release Notes\n\n### 2.0.2 -- 2.0.9\n\nDependency updates\n\n### 2.0.1\n\nGot rid of HTTP client dependency. Apache HTTP Client is no longer needed.\n\n### 1.2.1 / 1.2.2\n\n* Update dependencies\n\n### 1.2.0\n\n* Add verbose logging\n\n### 1.1.0\n\n* Add proxy authentication\n\n### 1.0.0\n\n* Initial version\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdheid%2Ffriendlycaptcha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdheid%2Ffriendlycaptcha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdheid%2Ffriendlycaptcha/lists"}