springmvc는 주석 인터셉터를 구현합니다.
Apr 13, 2018 pm 05:05 PM이번에는 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에 다음 코드를 추가해야 합니다.
구성 파일을 사용자 정의한 경우 정의한 구성 파일<mvc:interceptors>
<bean class="com.benxq.shop.user.interceptors.AuthInterceptor"/>
</mvc:interceptors>
빈을 추가해야 합니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











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

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