Java java지도 시간 로그인 시 springboot와 결합된 인증코드 사용예 소개

로그인 시 springboot와 결합된 인증코드 사용예 소개

Jun 17, 2017 am 11:48 AM
springboot 용법 로그인 결합하다 확인하다

인증 코드는 웹 애플리케이션의 공통 요소입니다. 로봇을 방지하든 크롤러를 방지하든 일정한 효과가 있습니다. 다음 기사에서는 스프링 부트 사용과 결합된 로그인 인증 코드에 대한 관련 정보를 주로 소개합니다.

머리말

사용자가 로그인할 때 ​​보안상의 이유로 Google의 kaptcha가 여기에 사용되며 가볍고 독립적이므로 스프링 기반 애플리케이션 개발이 가능합니다. 매우 간단합니다. 인터넷에는 springboot에 대한 소개가 많이 있으므로 여기서는 자세히 설명하지 않겠습니다.

본점으로 돌아가서 로그인 시 springboot와 결합된 인증코드의 사용법에 대해 이야기해보자

kaptcha에 필요한 jar 패키지를 소개하는데, 저는 여기서 maven을 사용합니다


  <dependency> 
   <groupId>com.github.penggle</groupId> 
   <artifactId>kaptcha</artifactId> 
   <version>2.3.2</version> 
    
   <exclusions> 
    <exclusion> 
     <artifactId>javax.servlet-api</artifactId> 
     <groupId>javax.servlet</groupId> 
    </exclusion> 
   </exclusions> 
  </dependency>
로그인 후 복사

제공되는 서블릿을 제거합니다 패키지 가방으로. 내 개인적인 이해에 따르면 springboot는 javaconfig 및 주석으로 구축된 경량 마이크로 아키텍처입니다.


다음은 kapcha의 javaconfig입니다


@Configuration 
public class CaptchaConfig { 
  
 
 @Bean(name="captchaProducer") 
 public DefaultKaptcha getKaptchaBean(){ 
  DefaultKaptcha defaultKaptcha=new DefaultKaptcha(); 
  Properties properties=new Properties(); 
  properties.setProperty("kaptcha.border", "yes"); 
  properties.setProperty("kaptcha.border.color", "105,179,90"); 
  properties.setProperty("kaptcha.textproducer.font.color", "blue"); 
  properties.setProperty("kaptcha.image.width", "125"); 
  properties.setProperty("kaptcha.image.height", "45"); 
  properties.setProperty("kaptcha.session.key", "code"); 
  properties.setProperty("kaptcha.textproducer.char.length", "4"); 
  properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");   
  Config config=new Config(properties); 
  defaultKaptcha.setConfig(config); 
  return defaultKaptcha; 
 } 
}
로그인 후 복사

여기서 katcha의 javaconfig는 springmvc의 bean 구성과 동일합니다. 참고용으로 위 javaconfig에 대한 springmvc의 bean 예제를 보여드리겠습니다.

construction method

의 속성 매개변수는 필요에 따라 설정할 수 있습니다.


구성 파일

이 구성되었으니 나만의 QR 코드를 어떻게 얻을 수 있을까요? 제가 이해한 것은 캔버스 개념이고, 생성된 4자리 인증 코드로 해당 캔버스를 생성한 다음 결과를 작성하는 것입니다.

코드는 다음과 같습니다.

<bean id="captchaProducer" 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.textproducer.font.color">blue</prop> 
      <prop key="kaptcha.image.width">125</prop> 
      <prop key="kaptcha.image.height">45</prop> 
      <prop key="kaptcha.textproducer.font.size">45</prop> 
      <prop key="kaptcha.session.key">code</prop> 
      <prop key="kaptcha.textproducer.char.length">4</prop> 
      <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop> 
     </props> 
    </constructor-arg> 
   </bean> 
  </property> 
 </bean>
로그인 후 복사
위 코드처럼 사용자가 로그인할 때 인증코드와 cooike의 captchacode를 사용하여 고유성 인증을 하려고 처음에는 넣는 것을 고려했습니다. 생각해 보니 비과학적이라는 생각이 듭니다. 예를 들어 세션에 보안문자 코드가 있으면 나중에 다른 사용자가 다시 로그인하고 이전 사용자가 계속 로그인하고 있습니다. .이때 일련의 문제가 발생하게 됩니다. 여기서는 쿠키와 redis를 사용하여 사용자의 동시 로그인 확인을 처리합니다.


페이지는 다음과 같이 비교적 간단하게 사용할 수 있습니다.


@RequestMapping(value = "/captcha-image") 
 public ModelAndView 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(); 
  System.out.println("capText: " + capText); 
 
  try { 
   String uuid=UUIDUtils.getUUID32().trim().toString();    
   redisTemplate.opsForValue().set(uuid, capText,60*5,TimeUnit.SECONDS); 
   Cookie cookie = new Cookie("captchaCode",uuid); 
   response.addCookie(cookie); 
  } catch (Exception e) { 
   e.printStackTrace(); 
  } 
 
   
 
  BufferedImage bi = captchaProducer.createImage(capText); 
  ServletOutputStream out = response.getOutputStream(); 
  ImageIO.write(bi, "jpg", out); 
  try { 
   out.flush(); 
  } finally { 
   out.close(); 
  } 
  return null; 
 }
로그인 후 복사
변경하려면 클릭 이벤트를 추가한 다음 redis에서 이전 해당 캐시 데이터

를 지우거나 수명을 설정하세요. 인증 코드를 받을 때 주기입니다.

위 내용은 로그인 시 springboot와 결합된 인증코드 사용예 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

PlayStation 네트워크 로그인에 실패했지만 인터넷 연결에 성공했습니다. PlayStation 네트워크 로그인에 실패했지만 인터넷 연결에 성공했습니다. Feb 19, 2024 pm 11:33 PM

일부 플레이어는 출시 시 PS4 또는 PS5에서 이상한 문제를 경험하고 있습니다. 예를 들어, PlayStation Network 로그인에 실패했지만 인터넷 연결은 양호할 때 문제가 발생할 수 있습니다. 로그인 정보를 입력할 때 오류가 발생할 수 있으며 PSParty 채팅에 참여하지 못할 수도 있습니다. 비슷한 문제가 발생하는 경우 이 가이드가 문제 해결에 도움이 될 수 있습니다. PlayStationNetworkSign-in 옆에 'AnErrorHaveAreAre'라는 오류 메시지가 표시되며 '실패'라고 표시됩니다. IP 주소 가져오기, 인터넷 연결 및 연결 속도와 같은 다른 매개변수는 성공적이었습니다. 그렇다면 여기서 무엇이 문제가 될 수 있습니까? 내가 너에게 일자리를 줄게

AADSTS7000112 수정, 애플리케이션이 비활성화됨 Microsoft 계정 로그인 오류 AADSTS7000112 수정, 애플리케이션이 비활성화됨 Microsoft 계정 로그인 오류 Feb 19, 2024 pm 06:27 PM

AADSTS7000112 오류로 인해 Microsoft 계정을 사용하여 앱에 로그인하지 못해 불편을 겪을 수 있습니다. 이 문서에서는 이 문제를 해결하고 정상적인 로그인 환경을 복원하는 데 도움이 되는 솔루션을 제공합니다. 로그인: 죄송합니다. 로그인하는 데 문제가 있습니다. AADSTS7000112: 애플리케이션이 비활성화되었습니다. 다행히도 몇 가지 간단한 제안 사항을 따르면 오류를 수정할 수 있습니다. 오류 코드 AADSTS7000112는 무엇입니까? 오류 코드 AADSTS7000112는 Microsoft의 Azure Active Directory 연결에 문제가 있음을 나타냅니다. 일반적으로 이는 로그인을 시도하는 Microsoft 애플리케이션이 차단되었기 때문일 수 있습니다.

PDF에서 서명을 확인하는 방법 PDF에서 서명을 확인하는 방법 Feb 18, 2024 pm 05:33 PM

우리는 일반적으로 정부나 기타 기관으로부터 PDF 파일을 받으며, 일부는 디지털 서명이 포함되어 있습니다. 서명을 확인한 후 SignatureValid 메시지와 녹색 확인 표시가 표시됩니다. 서명이 확인되지 않으면 유효성을 알 수 없습니다. 서명을 확인하는 것이 중요합니다. PDF에서 이를 수행하는 방법을 살펴보겠습니다. PDF에서 서명을 확인하는 방법 PDF 형식의 서명을 확인하면 더욱 신뢰할 수 있고 문서가 승인될 가능성이 높아집니다. 다음과 같은 방법으로 PDF 문서의 서명을 확인할 수 있습니다. Adobe Reader에서 PDF를 엽니다. 서명을 마우스 오른쪽 버튼으로 클릭하고 서명 속성 표시를 선택합니다. 서명자 인증서 표시 버튼을 클릭합니다. 신뢰 탭에서 신뢰할 수 있는 인증서 목록에 서명을 추가합니다. 서명 확인을 클릭하여 확인을 완료합니다.

WeChat 친구 지원 인증으로 차단을 해제하는 자세한 방법 WeChat 친구 지원 인증으로 차단을 해제하는 자세한 방법 Mar 25, 2024 pm 01:26 PM

1. WeChat을 연 후 검색 아이콘을 클릭하고 WeChat 팀을 입력한 후 아래 서비스를 클릭하여 들어갑니다. 2. 입력 후 좌측 하단의 셀프 서비스 도구 옵션을 클릭하세요. 3. 클릭 후, 위 옵션 중 보조검증 차단해제/이의제기 옵션을 클릭해 주세요.

JSP 주석의 용도 및 분류 분석 JSP 주석의 용도 및 분류 분석 Feb 01, 2024 am 08:01 AM

JSP 주석 분류 및 활용 분석 JSP 주석은 두 가지 유형으로 구분됩니다. 한 줄 주석: 로 끝나는 코드로 한 줄만 주석을 달 수 있습니다. 여러 줄 주석: /*로 시작하고 */로 끝나는 경우 여러 줄의 코드에 주석을 달 수 있습니다. 한 줄 주석 예 여러 줄 주석 예/**여러 줄 주석입니다*여러 줄의 코드에 주석을 달 수 있습니다*/JSP 주석 사용 JSP 주석을 사용하여 JSP 코드에 주석을 달면 읽기 쉬워집니다.

PHP 8의 새로운 기능: 확인 및 서명 추가 PHP 8의 새로운 기능: 확인 및 서명 추가 Mar 27, 2024 am 08:21 AM

PHP8은 최신 버전의 PHP로 프로그래머에게 더 많은 편의성과 기능을 제공합니다. 이 버전은 보안과 성능에 특별히 중점을 두고 있으며 주목할만한 새로운 기능 중 하나는 확인 및 서명 기능이 추가된 것입니다. 이 문서에서는 이러한 새로운 기능과 그 용도에 대해 자세히 살펴보겠습니다. 확인 및 서명은 컴퓨터 과학에서 매우 중요한 보안 개념입니다. 이는 전송된 데이터가 완전하고 확실한지 확인하는 데 자주 사용됩니다. 온라인 거래 및 민감한 정보를 처리할 때 확인 및 서명이 더욱 중요해집니다. 누군가가 데이터를 조작할 수 있다면 잠재적으로 그럴 수 있기 때문입니다.

GeForce Experience 로그인이 정지됨 [수정] GeForce Experience 로그인이 정지됨 [수정] Mar 19, 2024 pm 06:30 PM

이 문서에서는 Windows 11/10의 GeForceExperience 로그인 충돌 문제를 해결하는 방법을 안내합니다. 일반적으로 이는 불안정한 네트워크 연결, 손상된 DNS 캐시, 오래되거나 손상된 그래픽 카드 드라이버 등으로 인해 발생할 수 있습니다. GeForceExperience 로그인 블랙 스크린 수정 시작하기 전에 인터넷 연결과 컴퓨터를 다시 시작하세요. 때로는 문제가 일시적인 문제로 인해 발생하는 경우도 있습니다. NVIDIA GeForce Experience 로그인 검은색 화면 문제가 계속 발생하는 경우 다음 제안 사항을 따르십시오. 인터넷 연결을 확인하십시오. 다른 인터넷 연결로 전환하십시오.

C 언어에서 종료 기능을 올바르게 사용하는 방법 C 언어에서 종료 기능을 올바르게 사용하는 방법 Feb 18, 2024 pm 03:40 PM

C 언어에서 종료 기능을 사용하려면 특정 코드 예제가 필요합니다. C 언어에서는 프로그램 초기에 프로그램 실행을 종료하거나 특정 조건에서 프로그램을 종료해야 하는 경우가 많습니다. C 언어에서는 이 기능을 구현하기 위해 exit() 함수를 제공합니다. 이 기사에서는 exit() 함수의 사용법을 소개하고 해당 코드 예제를 제공합니다. Exit() 함수는 C 언어의 표준 라이브러리 함수로 헤더 파일에 포함되어 있습니다. 그 기능은 프로그램 실행을 종료하는 것이며 정수를 취할 수 있습니다.

See all articles