kaptcha-spring-boot

Kaptcha Spring Boot Starter

License

License

Categories

Categories

Spring Boot Container Microservices
GroupId

GroupId

com.oopsguy.kaptcha
ArtifactId

ArtifactId

kaptcha-spring-boot
Last Version

Last Version

1.0.0-beta-2
Release Date

Release Date

Type

Type

pom
Description

Description

kaptcha-spring-boot
Kaptcha Spring Boot Starter
Project URL

Project URL

https://github.com/12software/kaptcha-spring-boot
Source Code Management

Source Code Management

https://github.com/12software/kaptcha-spring-boot

Download kaptcha-spring-boot

How to add to project

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

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • kaptcha-spring-boot-parent

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