Este artigo compartilha o código específico do Código de Verificação Kaptcha integrado do Springboot para sua referência. O conteúdo específico é o seguinte
1. Introdução relacionada a Kaptcha
O Kaptcha é um projeto de código aberto para o código de verificação com base no SimpleCaptcha.
2. Solução de integração
① Dependências de configuração em pom.xml
<!-Código de verificação-> <Ependency> <puperid> com.github.penggle </groupId> <TRARFACTID> kaptcha </stutifactId> <versão> 2.3.2 </versão </dependency>
②configure Código de verificação Kaptcha Configurações relacionadas
@ConfigurationPublic Classe Kaptchaconfig {@Bean (name = "CAPTCHARDUCER") Public DefaultKaptcha getKaptCHABEan () {Defaultkaptcha DefaultKaptcha = new DefaultKaptcha (); Propriedades Propriedades = new Properties (); Propriedades.setProperty ("Kaptcha.border", "Sim"); Propriedades.SetProperty ("Kaptcha.border.color", "105,179,90"); Propriedades.SetProperty ("Kaptcha.textproducer.font.color", "Blue"); Propriedades.setProperty ("kaptcha.image.width", "125"); Propriedades.setProperty ("Kaptcha.image.Height", "45"); Propriedades.SetProperty ("Kaptcha.Session.Key", "Code"); Properties.SetProperty ("Kaptcha.textproducer.char.length", "4"); Properties.SetProperty ("Kaptcha.textproducer.font.names", "Song Font, Kai Font, Microsoft Yahei"); Config config = new config (propriedades); defaultkaptcha.setConfig (config); retornar DefaultKaptcha; }}ou
Crie o arquivo mykaptcher.xml em recursos
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-bans.xsd"> <bean id = "captChapringer">> type = "java.util.properties"> <ports> <propi key = "kaptcha.border"> sim </p> key = "kaptcha.image.width"> 100 </pp> <props key = "kaptcha.image.height"> 50 </pp> <propi key = "kaptcha.image.height"> 50 </prop> <ppy key = "kaptcha.image.height"> 50 </prop> <pke = kapt = kapt = kapt = "kaptcha.image.height"> 50 </prop> <pke = kapt = kapt = kapt = "kaptcha.image.height"> 50 </propi> </prop) </ket </ket </kets = "kaptcha.image.height"> 50 </prop> <phay = kapt = kapt = kapt = kaptchha.inim.imim.Image.Image.Image.height "> 50 </prop. key = "kaptcha.textproducer.font.color"> blue </pp> <propi key = "kaptcha.image.width"> 100 </pup> <propi key = "kaptcha.image.height"> 50 </prop> <priche = "kappta.textproducer.font.size"> " key = "kaptcha.session.key"> code </pup> <propi key = "kaptcha.textproduces.char.length"> 4 </pp> <prop key="kaptcha.textproducer.char.string">23456789ABCEFGHJKMNOPQRSTUVWXYZ</prop> <prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.WaterRipple</prop> <prop key="kaptcha.noise.color">black</prop> <prop key = "kaptcha.noise.impl"> com.google.code.kaptcha.impl.nonoise </prop> <!-<prop key = "kaptcha.noise.impl"> com.google.code.kaptcha.impl.defaultNoise </prop key = "kaptcha.background.clear.from"> 185,56,213 </prop> <propra key = "kaptcha.background.clear.to"> white </pp> <prop key = "kaptcha.textrcutorger.char.space"> 3 </an <///Props> </construtor-arg-arg.charg ">
Em seguida, carregue a configuração no aplicativo da classe de inicialização
@EnabetRANSActionManagement // Inicie o gerenciamento de transações de anotação, que é equivalente ao método de configuração XML <TX: anotação-driven/>@springbootapplication@enablecheduling // Tarefa de tempo de anotação @MappersCan (BasEpackages = "com.shawn.mapper")@ImportResource (locations = {"ClassPath: mykaptcha.xml"}) a classe pública Aplicativo estende o SpringBootSertLeTIlitializer {public static void main (string [] args) lança exceção {springApplication.run (aplicação.class, args); }}Ambos os métodos de configuração estão disponíveis no Springboot;
③kaptchacontroller
@CommonSlog @controlerpublic Classe Kaptchacontroller estende Basecontroller {@AUTOWIRED Produced Prived Captchaproduces; @GetMapping ("/getKaptChaimage") public void getKaptChaimage () lança exceção {Response.SetDateHeader ("Expira", 0); // Defina cabeçalhos HTTP/1.1 sem cache padrão. Response.setheader ("Cache-Control", "No Store, sem cache, obrigatória-revalidada"); // Defina o IE estendido HTTP/1.1 Cabeçalhos sem cache (use AddHeader). Response.AddHeader ("Cache-Control", "pós-verificação = 0, pré-verificação = 0"); // Defina o cabeçalho padrão HTTP/1.0 sem cache. Response.setheader ("Pragma", "sem cache"); // retorna um JPEG Response.SetContentType ("Image/jpeg"); // Crie o texto para a imagem String CapText = Captchaproduces.createText (); // armazenar o texto na sessão //request.getSession().setAttribute(constants.kaptcha_session_key, captext); // Salvar o código de verificação na sessão session.setAttribute (constantes.kaptcha_session_key, captext); log.info (captext); // Crie a imagem com o texto bufferImage bi = captChaproduces.createImage (captext); ServletOutputStream Out = Response.getOutputStream (); // escreva os dados de imagem imageio.write (bi, "jpg", out); tente {out.flush (); } finalmente {out.close (); }}}3. Teste o efeito
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.