Este artículo comparte el código específico del código de verificación Kaptcha integrado de Springboot para su referencia. El contenido específico es el siguiente
1. Introducción relacionada con Kaptcha
Kaptcha es un proyecto de código abierto para el código de verificación basado en SimpleCaptcha.
2. Solución de integración
① Dependencias de configuración en pom.xml
<!-Código de verificación-> <pendency> <MoupRid> com.github.penggle </groupid> <artifactid> kaptcha </artifactid> <versión> 2.3.2 </versión> </pendency>
② Configuración relacionada con el código de verificación de configuración
@ConfigurationPublic Class KaptchAconFig {@Bean (name = "CaptChaproDucer") public Defaultkaptcha getKaptChabean () {defaultkaptcha Defaultkaptcha = new DefaultkAptcha (); Propiedades Propiedades = New Properties (); Properties.setProperty ("kaptcha.border", "sí"); Properties.setProperty ("kaptcha.border.color", "105,179,90"); Properties.setProperty ("kaptcha.textproducer.font.color", "azul"); Properties.setProperty ("kaptcha.image.width", "125"); Properties.setProperty ("kaptcha.image.height", "45"); Properties.setProperty ("kaptcha.session.key", "código"); Properties.setProperty ("kaptcha.textproducer.char.length", "4"); Properties.setProperty ("kaptcha.textproducer.font.names", "Font de la canción, Kai Font, Microsoft Yahei"); Config config = new config (propiedades); defaultkaptcha.setConfig (config); devolver defaultkaptcha; }}o
Crear archivo mykaptcher.xml en recursos
<? xml versión = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" "" "" xsi: schemalocatation = "http://www.springframework.org/schema/Beans http://www.springframework.org/schema/Beans/spring-beanss.xsd"> <bean id = "captchaproducer" type = "java.util.properties"> <props> <prot key = "kaptcha.border"> sí </pr> <prop kepkla key = "kaptcha.image.width"> 100 </prop> <prop syke = "kaptcha.image.height"> 50 </prop> <propp syke = "kaptcha.image.height"> 50 </prop> <prop key = "kaptcha.image.height"> 50 </pro> <prop kaptcha.image.height " Key = "Kaptcha.TextProducer.Font.Color"> Blue </prop> <prot key = "kaptcha.image.width"> 100 </prop> <prop key = "kaptcha.image.height"> 50 </prop> <ppey = "kaptcha.textproducer.font.font.isize" key = "kaptcha.session.key"> código </prop> <prot key = "kaptcha.textproducer.char.length"> 4 </pr> <prop key = "kaptcha.textproducer.font.names"> Song Font, Kai Font, Microsoft Yahei </prop> <prop. key = "kaptcha.TextProducer.Char.String"> 23456789ABCEFGHJKKMNOPQRSTUVWXYZ </PROTR> <PROP KEY = "KAPTCHA.OBSCURIFICATOR. clave = "kaptcha.noise.impl"> com.google.code.kaptcha.impl.nonoise </prop> <!-<prop key = "kaptcha.noise.impl"> com.google.code.kaptcha.imp.imp.defaultnois key = "kaptcha.background.clear.from"> 185,56,213 </prop> <prop key = "kaptcha.background.clear.to"> blanco </prop> <prot key = "kaptcha.TextProDucer.char.space"> 3 </prob>
Luego cargue la configuración en la aplicación de clase de inicio
@EnableTransactionManagement // Inicie la administración de transacciones de anotación, que es equivalente al método de configuración XML <tx: anotación-conducida/>@springbootapplication@habilitando // tarea de tiempo de anotación de inicio @mapperscan (basepackages = "com.shawn.mapper")@Importresource (ubicaciones = {"classpath: mykaptcha.xml"}) La aplicación de clase pública extiende SpringBootServletinitializer {public static void main (string []) lanza la excepción {springapplication.run (aplicación.class, args); }}Ambos métodos de configuración están disponibles en Springboot;
③kaptchacontroller
@Commonslog @controlerpublic class kaptchacontroller extiende Basecontroller {@aUtowired Productor privado CaptChaproDucer; @GetMapping ("/getkaptchaimage") public void getkaptchaimage () lanza la excepción {Response.SetDateHeader ("expiras", 0); // Establecer encabezados estándar HTTP/1.1 No-Cache. Response.setheader ("Cache-Control", "No-store, no-cache, debe revalidar"); // Establece los encabezados HTTP/1.1 no-cache IE (use Addheader). Respuesta.AddHeader ("Cache-Control", "Post-Check = 0, pre-check = 0"); // Establecer el encabezado estándar HTTP/1.0 No-Cache. respuesta.setheader ("Pragma", "No-Cache"); // devuelve una respuesta JPEG.setContentType ("Image/JPeg"); // Crear el texto para la imagen de la imagen CapText = CAPTCHAPRODUCER.CREATETEXT (); // Almacene el texto en la sesión //request.getSession().setTribute(constants.kaptcha_session_key, captext); // Guardar el código de verificación en session.SetAttribute (constants.kaptcha_session_key, captext); log.info (Captext); // Crear la imagen con el texto BufferedImage BI = CaptChaproDucer.CreateImage (CapText); ServLetOutputStream Out = Response.getOutputStream (); // Escribir los datos ImageIO.Write (BI, "JPG", OUT); intente {out.flush (); } finalmente {out.close (); }}}3. Prueba el efecto
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.