웹 프론트엔드 JS 튜토리얼 springmvc는 주석 인터셉터를 구현합니다.

springmvc는 주석 인터셉터를 구현합니다.

Apr 13, 2018 pm 05:05 PM
springmvc 성취하다 가로채기

이번에는 springmvc에 어노테이션 인터셉터를 구현해 보도록 하겠습니다. springmvc에서 어노테이션 인터셉터를 구현하기 위한 주의 사항은 무엇인가요? 다음은 실제 사례를 살펴보겠습니다.

최근 SpringMvc로 프로젝트를 작성할 때 메소드 인증 문제에 직면했습니다. 하루 동안 작업한 후 마침내 해결했습니다. 아래 해결 방법을 살펴보겠습니다.

프로젝트 요구사항

: 사용자 로그인으로만 수행할 수 있는 작업과 같이 인증이 필요한 경우에는 레이블만 지정하면 됩니다. 일반적으로 메서드를 실행할 때 먼저 사용자의 신원을 확인하게 됩니다. Java 주석을 사용하면 인증이 필요한 메서드에만 라벨을 붙이면 됩니다. 해결책:

  1. 먼저 주석 클래스를 만듭니다:

@Documented
@Inherited
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Auth {
  boolean validate() default true;
}
로그인 후 복사

2. 또 다른 인터셉터 만들기:

public class AuthInterceptor extends BaseInterceptor{
	@Override
	  public Boolean preHandle(HttpServletRequest request,
	      HttpServletResponse response, Object handler) throws Exception {
		if(handler.getClass().isAssignableFrom(HandlerMethod.class)){
			Auth authPassport = ((HandlerMethod) handler).getMethodAnnotation(Auth.class);
			//没有声明需要权限,或者声明不验证权限
			if(authPassport==null){
				return true;
			} else{
				//在这里实现自己的权限验证逻辑
				if(true){
					//如果验证成功返回true(这里直接写false来模拟验证失败的处理)
					System.out.println("执行权限校验了");
					return true;
				} else{
					//如果验证失败
					//返回到登录界面
					//          System.out.println("权限校验对了");
					//          response.sendRedirect("account/login");
					return false;
				}
			}
		} else{
			return true;
		}
	}
}
로그인 후 복사

3. 인터셉터 구성: *-servlet.xml에 다음 코드를 추가해야 합니다.

구성 파일

을 사용자 정의한 경우 ​​정의한 구성 파일

에 직접 넣을 수도 있습니다. 참고: 기본값을 RequestMappingHandlerMapping으로 변경하고 RequestMappingHandlerAdapter

빈을 추가해야 합니다. Tomcat을 다시 시작하세요.

참고 사항: 메소드에 인증이 필요한 경우 해당 메소드에 @Auth만 표시하면 됩니다. 클래스의 모든 메소드에 인증이 필요한 경우 클래스에 @Auth만 표시하면 됩니다.

그러면 메소드 인터셉터가 정적 리소스를 함께 가로챌 것입니다. 예를 들어, 내 솔루션은 web.xml에서 구성하는 것입니다. 나에게 752432995

<servlet-mapping>
   <servlet-name>default</servlet-name>
   <url-pattern>*.jpg</url-pattern>
 </servlet-mapping>
 <servlet-mapping>
   <servlet-name>default</servlet-name>
   <url-pattern>*.png</url-pattern>
 </servlet-mapping>
로그인 후 복사

와 토론하세요. 이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사에 주목하세요.

추천 도서:

PHP에서 JSONAPI를 사용하는 방법


zTree의 트리 메뉴를 사용하는 단계에 대한 자세한 설명


위 내용은 springmvc는 주석 인터셉터를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까? Mar 24, 2024 am 11:27 AM

Huawei 휴대폰에서 이중 WeChat 로그인을 구현하는 방법은 무엇입니까?

SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 Dec 29, 2023 am 11:02 AM

SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석

Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 방법 Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 방법 Mar 24, 2024 pm 06:03 PM

Huawei 휴대폰에서 WeChat 복제 기능을 구현하는 방법

PHP 프로그래밍 가이드: 피보나치 수열을 구현하는 방법 PHP 프로그래밍 가이드: 피보나치 수열을 구현하는 방법 Mar 20, 2024 pm 04:54 PM

PHP 프로그래밍 가이드: 피보나치 수열을 구현하는 방법

PHP 게임 요구 사항 구현 가이드 PHP 게임 요구 사항 구현 가이드 Mar 11, 2024 am 08:45 AM

PHP 게임 요구 사항 구현 가이드

Golang이 어떻게 게임 개발 가능성을 가능하게 하는지 마스터하세요 Golang이 어떻게 게임 개발 가능성을 가능하게 하는지 마스터하세요 Mar 16, 2024 pm 12:57 PM

Golang이 어떻게 게임 개발 가능성을 가능하게 하는지 마스터하세요

QQ 브라우저에서 광고 팝업을 차단하는 방법 QQ 브라우저에서 광고 팝업을 차단하는 방법 Jan 31, 2024 pm 06:00 PM

QQ 브라우저에서 광고 팝업을 차단하는 방법

Golang에서 정확한 나눗셈 연산을 구현하는 방법 Golang에서 정확한 나눗셈 연산을 구현하는 방법 Feb 20, 2024 pm 10:51 PM

Golang에서 정확한 나눗셈 연산을 구현하는 방법

See all articles