>  기사  >  Java  >  Kaptcha 구성 검증코드를 통해 생성된 Spring 코드 예시

Kaptcha 구성 검증코드를 통해 생성된 Spring 코드 예시

Y2J
Y2J원래의
2017-05-05 15:19:181447검색

이번 글에서는 Kaptcha를 이용해 인증코드 생성을 위한 spring mvc를 주로 소개하고, Kaptcha를 사용해 인증코드를 생성하는 과정을 자세히 소개한다.

Kaptcha를 활용해 인증코드 생성하기 인증 코드는 매우 간단하며 매개변수를 사용자 정의할 수 있으며 사용 단계는 아래에 간단히 기록되어 있습니다.

1. pom.xml에 maven 종속성을 추가합니다:

<dependency>
  <groupId>com.google.code.kaptcha</groupId>
  <artifactId>kaptcha</artifactId>
  <version>2.3</version>
  <classifier>jdk15</classifier>
</dependency>

2. web.xml에 kaptcha 속성 을 구성합니다.

<bean id="verifyCodeProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha">
    <property name="config">
      <bean class="com.google.code.kaptcha.util.Config">
        <constructor-arg>
          <props>
            <prop key="kaptcha.border">yes</prop>
            <prop key="kaptcha.border.color">105,179,90</prop>
            <prop key="kaptcha.border.thickness">1</prop>

            <prop key="kaptcha.noise.color">blue</prop>

            <prop key="kaptcha.image.width">150</prop>
            <prop key="kaptcha.image.height">50</prop>

            <prop key="kaptcha.session.key">verifyCode</prop>

            <!-- <prop key="kaptcha.textproducer.char.string">0123456789abcdefghijklmnopqrst!@#$%^*</prop> -->
            <prop key="kaptcha.textproducer.char.length">4</prop>
            <prop key="kaptcha.textproducer.char.space">4</prop>


            <prop key="kaptcha.textproducer.font.size">30</prop>
            <prop key="kaptcha.textproducer.font.color">blue</prop>

          </props>
        </constructor-arg>
      </bean>
    </property>
  </bean>

bean 노드 verifyCodeProducer의 id 값은 클래스의 참조@Resource가 kaptcha.session.key를 생성할 때의 이름입니다. 속성 구성 값은 세션의 액세스 이름입니다.


3.

서블릿 노드의 컨트롤러 클래스에 관련 메서드를 구성합니다.

@Controller
public class CommonController {

  @Autowired
  private Producer verifyCodeProducer;

  @RequestMapping(path = "/getVerifyCodeImage", method = RequestMethod.GET)
  public void getVerifyCodeImage(HttpServletRequest request, HttpServletResponse response) {
    HttpSession session = request.getSession();

    ResponseUtils.noCache(response);
    response.setContentType("image/jpeg");

    String capText = verifyCodeProducer.createText();
    session.setAttribute(Constants.SESSION_KEY_VERIFY_CODE, capText);

    BufferedImage bi = verifyCodeProducer.createImage(capText);
    ServletOutputStream out = null;
    try {
      out = response.getOutputStream();
      ImageIO.write(bi, "jpg", out);
      out.flush();
    } catch (Exception ex) {
      LOGGER.error("Failed to produce the verify code image: ", ex);
      throw new ServerInternalException("Cannot produce the verify code image.");
    } finally {
      IOUtils.closeQuietly(out);
    }
  }
}

Constants.SESSION_KEY_VERIFY_CODE는 속성 구성의 kaptcha.session.key 값입니다.

4.jsp

<p class="form-group has-feedback">
  <span class="glyphicon glyphicon-barcode form-control-feedback"></span> 
  <input id="verifyCode" name="verifyCode" type="text" maxlength="4" class="form-control" placeholder="<spring:message code=&#39;login.label.code&#39; />" />
  <p style="height: 1px"></p>
  <img src="${pageContext.request.contextPath}/getVerifyCodeImage" id="verifyCodeImage" style="margin-bottom: -3px" /> 
  <a href="#" rel="external nofollow" onclick="changeVerifyCode()"><spring:message code=&#39;login.code.tip&#39; /></a>
</p>
function changeVerifyCode() {
  $(&#39;#verifyCodeImage&#39;).hide().attr(&#39;src&#39;, &#39;${pageContext.request.contextPath}/getVerifyCodeImage?&#39; + Math.floor(Math.random()*100) ).fadeIn(); 
  event.cancelBubble=true; 
}

5.kaptcha 속성 설명:

  1. kaptcha.border.color 테두리 색상 기본값은 Color.BLACK

  2. kaptcha.border.thickness 테두리 두께 기본값은 1

  3. kaptcha.producer.impl 검증 코드 생성기 기본값은 DefaultKaptcha

  4. kaptcha.textproducer.impl 검증 코드 텍스트 생성기 기본값은 DefaultTextCreator

  5. kaptcha.textproducer.char.string 확인 코드 텍스트 문자 내용 범위 기본값은 abcde2345678gfynmnpwx

  6. kaptcha.textproducer.char.length 확인 코드 텍스트 문자 길이 기본값은 abcde2345678gfynmnpwx 5

  7. kaptcha.textproducer.font.names 인증 코드 텍스트 글꼴 스타일 기본값은 new Font("Arial", 1,fontSize), new Font("Courier", 1,fontSize)

  8. kaptcha.textproducer.font.size 인증 코드 텍스트 문자 크기 기본값은 40

  9. kaptcha.textproducer.font.color 인증 코드 텍스트 문자 색상 기본값 is Color.BLACK

  10. kaptcha.textproducer.char.space 확인 코드 텍스트 문자 간격 기본값은 2

  11. kaptcha.noise.impl 확인 코드 노이즈 생성 객체 기본값은 DefaultNoise

  12. kaptcha.noise.color 확인 코드 노이즈 색상 기본값은 Color.BLACK

  13. kaptcha.obscurificator.impl 확인 코드 스타일 엔진 기본값은 WaterRipple

  14. kaptcha.word.impl 확인 코드 텍스트 문자 렌더링 기본값은 DefaultWordRenderer

  15. kaptcha입니다. .Background.impl 확인 코드 배경 생성기 기본값은 DefaultBackground

  16. kaptcha.Background.clear.from 확인 코드 배경색 그라데이션 기본값은 Color.LIGHT_GRAY

  17. kaptcha.ground.clear.to 인증 코드 배경색 그라데이션 기본값은 Color.WHITE

  18. kaptcha.image.width 인증 코드 이미지width 기본값 인증 코드 이미지 높이는 200

  19. kaptcha.image.height입니다. 기본값은 50입니다.

[관련 권장 사항]

1. Java 무료 동영상 튜토리얼

2. YMP 온라인 매뉴얼

균등 비례 썸네일 구현에 대한 Java 동영상 튜토리얼 사진

위 내용은 Kaptcha 구성 검증코드를 통해 생성된 Spring 코드 예시의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.