이번에는 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>
에 직접 넣을 수도 있습니다.
참고: 기본값을 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!