kaptcha

Google Kaptcha

License

License

GroupId

GroupId

com.oopsguy.kaptcha
ArtifactId

ArtifactId

kaptcha
Last Version

Last Version

1.0.0-beta-2
Release Date

Release Date

Type

Type

jar
Description

Description

kaptcha
Google Kaptcha
Project URL

Project URL

http://code.google.com/p/kaptcha/

Download kaptcha

How to add to project

<!-- https://jarcasting.com/artifacts/com.oopsguy.kaptcha/kaptcha/ -->
<dependency>
    <groupId>com.oopsguy.kaptcha</groupId>
    <artifactId>kaptcha</artifactId>
    <version>1.0.0-beta-2</version>
</dependency>
// https://jarcasting.com/artifacts/com.oopsguy.kaptcha/kaptcha/
implementation 'com.oopsguy.kaptcha:kaptcha:1.0.0-beta-2'
// https://jarcasting.com/artifacts/com.oopsguy.kaptcha/kaptcha/
implementation ("com.oopsguy.kaptcha:kaptcha:1.0.0-beta-2")
'com.oopsguy.kaptcha:kaptcha:jar:1.0.0-beta-2'
<dependency org="com.oopsguy.kaptcha" name="kaptcha" rev="1.0.0-beta-2">
  <artifact name="kaptcha" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.oopsguy.kaptcha', module='kaptcha', version='1.0.0-beta-2')
)
libraryDependencies += "com.oopsguy.kaptcha" % "kaptcha" % "1.0.0-beta-2"
[com.oopsguy.kaptcha/kaptcha "1.0.0-beta-2"]

Dependencies

compile (1)

Group / Artifact Type Version
com.jhlabs : filters jar 2.0.235-1

provided (1)

Group / Artifact Type Version
javax.servlet : javax.servlet-api jar 3.1.0

Project Modules

There are no modules declared in this project.

Kaptcha Spring Boot Starter

Kaptcha Spring Boot Starter can help you use Google Kaptcha with Spring Boot easier.

Usage

Add kaptcha-spring-boot-starter dependency to your pom.xml file.

<dependency>
    <groupId>com.oopsguy.kaptcha</groupId>
    <artifactId>kaptcha-spring-boot-starter</artifactId>
    <version>1.0.0-beta-2</version>
</dependency>

Properties

You can use properties to custom captcha without Java code:

kaptcha:
  border:
    enabled: true
    color: '200,200,200'
    thickness: 1
  noise:
    color: '239,166,131'
    # you can specify your own implementation
    impl:
  obscurificator:
    impl:
  producer:
    impl:
  background:
    impl:
    color-from: '255,0,0'
    color-to: '255,0,0'
  text-producer:
    impl:
    character:
      string: '01234567890ABCDEF'
      length: 4
      space: 10
    font:
      names:
      color: '255,255,255'
      size: 46
  word:
    impl:
  image:
    width: 200
    height: 60
  # You can configure multiple captcha
  # and configure properties for them individually
  items:
    home:
      path: /home/captcha
      session:
        key: homeCaptcha
      background:
        color-from: '255,255,255'
        color-to: '255,255,255'
      text-producer:
        font:
          color: '68,155,44'
    # more items ...

Examples

YAML

The following use yaml to configure common kaptcha properties and define two kaptcha servlets(home and admin), you can configure them in your application.yml:

server:
  port: 8080

kaptcha:
  border:
    enbaled: true
    image:
      height: 60
      width: 160
  items:
    # home captcha
    home:
      path: /home/capthca
      text-producer:
        font:
          size: 16
      image:
        height: 40
    # admin captcha
    admin:
      path: /admin/capthca
      text-producer:
        character:
          length: 4

Then browse http://localhost:8080/home/capthca and http://localhost:8080/admin/capthca

Java Code

You can also inject a Producer bean directly by annotation to generate captcha.

@Controller
@RequestMapping("/sys")
class SystemController {
    
    @Resource
    private Producer captchaProducer;

    @GetMapping("/captcha")
    public void getKaptchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception {
        response.setDateHeader("Expires", 0);
        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
        response.setHeader("Pragma", "no-cache");
        response.setContentType("image/jpeg");
        String capText = captchaProducer.createText();
        // Save the captcha code to the session
        request.getSession().setAttribute("captchaCode", capText);
        BufferedImage bi = captchaProducer.createImage(capText);
        ServletOutputStream out = response.getOutputStream();
        ImageIO.write(bi, "jpg", out);
        try {
            out.flush();
        } finally {
            out.close();
        }
    }
}

For more examples, please see kaptcha-spring-boot-starter-example

Notice

If you custom your own Producer bean, it will replace the default.

License

MIT License

com.oopsguy.kaptcha

12 Software Engineer

Versions

Version
1.0.0-beta-2
1.0.0-beta