在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

註解和攔截器

註解(Annotation)

在介紹註解之前首先要了解元註解和相關定義註解的語法,所謂元註解就是負責註解(定義)其他註解,Java中提供的元註解有@Target來定義註解所使用的對象範圍;@Retention來定義註解被保留的時間長短;@Documented是一個標記註解,用於描述其它類型的註解應該被作為被標註的程序成員的公共API;@Inherited 也是一個標記註解,@Inherited闡述了某個被標註的類型是被繼承的。在JDK8之後又增加了@Repeatable、@Native等元註解,元註解具體的使用可參考官方文檔,文檔地址(JAVASE8):https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/package-summary.html

在Java中可以使用@interface關鍵字來定義註解,如下圖所示,定義一個AuthAnnotation註解,可在方法上使用,並且註解將被保存到class文件中,JVM加載class文件之後(運行時)依然存在。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

註解和攔截器

註解(Annotation)

在介紹註解之前首先要了解元註解和相關定義註解的語法,所謂元註解就是負責註解(定義)其他註解,Java中提供的元註解有@Target來定義註解所使用的對象範圍;@Retention來定義註解被保留的時間長短;@Documented是一個標記註解,用於描述其它類型的註解應該被作為被標註的程序成員的公共API;@Inherited 也是一個標記註解,@Inherited闡述了某個被標註的類型是被繼承的。在JDK8之後又增加了@Repeatable、@Native等元註解,元註解具體的使用可參考官方文檔,文檔地址(JAVASE8):https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/package-summary.html

在Java中可以使用@interface關鍵字來定義註解,如下圖所示,定義一個AuthAnnotation註解,可在方法上使用,並且註解將被保存到class文件中,JVM加載class文件之後(運行時)依然存在。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義註解

攔截器(Interceptor)

所謂攔截器就是在做某事前先進行阻攔,經過判斷看是否允許通行,如果不合法拒絕進行下一步操作,在Spring中簡單的案例就是用戶在發起請求進入Controller前先進行攔截,看當前請求是否合法(是否登錄或者是否有權限),如果不合法則直接結束該請求進行錯誤的信息提示,如果合法則放行,進入其他的攔截器(如果存在),直到所有攔截器都通過後再進入Controller中進行業務處理。

在Spring中可以通過實現HandlerInterceptor接口或者繼承實現了HandlerInterceptor接口的實現類如HandlerInterceptorAdapter等來實現,如下圖所示,定義一個簡單的攔截器。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

註解和攔截器

註解(Annotation)

在介紹註解之前首先要了解元註解和相關定義註解的語法,所謂元註解就是負責註解(定義)其他註解,Java中提供的元註解有@Target來定義註解所使用的對象範圍;@Retention來定義註解被保留的時間長短;@Documented是一個標記註解,用於描述其它類型的註解應該被作為被標註的程序成員的公共API;@Inherited 也是一個標記註解,@Inherited闡述了某個被標註的類型是被繼承的。在JDK8之後又增加了@Repeatable、@Native等元註解,元註解具體的使用可參考官方文檔,文檔地址(JAVASE8):https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/package-summary.html

在Java中可以使用@interface關鍵字來定義註解,如下圖所示,定義一個AuthAnnotation註解,可在方法上使用,並且註解將被保存到class文件中,JVM加載class文件之後(運行時)依然存在。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義註解

攔截器(Interceptor)

所謂攔截器就是在做某事前先進行阻攔,經過判斷看是否允許通行,如果不合法拒絕進行下一步操作,在Spring中簡單的案例就是用戶在發起請求進入Controller前先進行攔截,看當前請求是否合法(是否登錄或者是否有權限),如果不合法則直接結束該請求進行錯誤的信息提示,如果合法則放行,進入其他的攔截器(如果存在),直到所有攔截器都通過後再進入Controller中進行業務處理。

在Spring中可以通過實現HandlerInterceptor接口或者繼承實現了HandlerInterceptor接口的實現類如HandlerInterceptorAdapter等來實現,如下圖所示,定義一個簡單的攔截器。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義簡單攔截器

自定義攔截器主要實現接口的preHandle、postHandle以及afterCompletion三個方法,這三個方法分別對應請求處理之前、請求進行處理之後以及請求處理完成三個階段。創建完攔截器後還需要在Spring中進行配置,使之生效,配置代碼如下:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

註解和攔截器

註解(Annotation)

在介紹註解之前首先要了解元註解和相關定義註解的語法,所謂元註解就是負責註解(定義)其他註解,Java中提供的元註解有@Target來定義註解所使用的對象範圍;@Retention來定義註解被保留的時間長短;@Documented是一個標記註解,用於描述其它類型的註解應該被作為被標註的程序成員的公共API;@Inherited 也是一個標記註解,@Inherited闡述了某個被標註的類型是被繼承的。在JDK8之後又增加了@Repeatable、@Native等元註解,元註解具體的使用可參考官方文檔,文檔地址(JAVASE8):https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/package-summary.html

在Java中可以使用@interface關鍵字來定義註解,如下圖所示,定義一個AuthAnnotation註解,可在方法上使用,並且註解將被保存到class文件中,JVM加載class文件之後(運行時)依然存在。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義註解

攔截器(Interceptor)

所謂攔截器就是在做某事前先進行阻攔,經過判斷看是否允許通行,如果不合法拒絕進行下一步操作,在Spring中簡單的案例就是用戶在發起請求進入Controller前先進行攔截,看當前請求是否合法(是否登錄或者是否有權限),如果不合法則直接結束該請求進行錯誤的信息提示,如果合法則放行,進入其他的攔截器(如果存在),直到所有攔截器都通過後再進入Controller中進行業務處理。

在Spring中可以通過實現HandlerInterceptor接口或者繼承實現了HandlerInterceptor接口的實現類如HandlerInterceptorAdapter等來實現,如下圖所示,定義一個簡單的攔截器。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義簡單攔截器

自定義攔截器主要實現接口的preHandle、postHandle以及afterCompletion三個方法,這三個方法分別對應請求處理之前、請求進行處理之後以及請求處理完成三個階段。創建完攔截器後還需要在Spring中進行配置,使之生效,配置代碼如下:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

攔截器配置

由上圖可見,可使用mvc:interceptors來配置多個攔截器,使用mvc:interceptor來配置具體的攔截器,主要配置攔截路徑和對應的攔截器類,配置完成後,在被攔截的請求處理時,就會先進入攔截器中進行處理。

攔截器整合註解進行權限處理

以上分別介紹了註解和攔截器的基本使用,現在開始介紹如何在攔截器中使用註解進行一些權限相關的判斷處理。首先在需要進行權限驗證的Controller方法上加上之前編寫的自定義註解,如下圖:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

註解和攔截器

註解(Annotation)

在介紹註解之前首先要了解元註解和相關定義註解的語法,所謂元註解就是負責註解(定義)其他註解,Java中提供的元註解有@Target來定義註解所使用的對象範圍;@Retention來定義註解被保留的時間長短;@Documented是一個標記註解,用於描述其它類型的註解應該被作為被標註的程序成員的公共API;@Inherited 也是一個標記註解,@Inherited闡述了某個被標註的類型是被繼承的。在JDK8之後又增加了@Repeatable、@Native等元註解,元註解具體的使用可參考官方文檔,文檔地址(JAVASE8):https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/package-summary.html

在Java中可以使用@interface關鍵字來定義註解,如下圖所示,定義一個AuthAnnotation註解,可在方法上使用,並且註解將被保存到class文件中,JVM加載class文件之後(運行時)依然存在。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義註解

攔截器(Interceptor)

所謂攔截器就是在做某事前先進行阻攔,經過判斷看是否允許通行,如果不合法拒絕進行下一步操作,在Spring中簡單的案例就是用戶在發起請求進入Controller前先進行攔截,看當前請求是否合法(是否登錄或者是否有權限),如果不合法則直接結束該請求進行錯誤的信息提示,如果合法則放行,進入其他的攔截器(如果存在),直到所有攔截器都通過後再進入Controller中進行業務處理。

在Spring中可以通過實現HandlerInterceptor接口或者繼承實現了HandlerInterceptor接口的實現類如HandlerInterceptorAdapter等來實現,如下圖所示,定義一個簡單的攔截器。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義簡單攔截器

自定義攔截器主要實現接口的preHandle、postHandle以及afterCompletion三個方法,這三個方法分別對應請求處理之前、請求進行處理之後以及請求處理完成三個階段。創建完攔截器後還需要在Spring中進行配置,使之生效,配置代碼如下:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

攔截器配置

由上圖可見,可使用mvc:interceptors來配置多個攔截器,使用mvc:interceptor來配置具體的攔截器,主要配置攔截路徑和對應的攔截器類,配置完成後,在被攔截的請求處理時,就會先進入攔截器中進行處理。

攔截器整合註解進行權限處理

以上分別介紹了註解和攔截器的基本使用,現在開始介紹如何在攔截器中使用註解進行一些權限相關的判斷處理。首先在需要進行權限驗證的Controller方法上加上之前編寫的自定義註解,如下圖:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

使用自定義註解

在攔截器中就可以判斷請求的方法是否含有該註解進行進一步的判斷,具體使用如下圖所示:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

註解和攔截器

註解(Annotation)

在介紹註解之前首先要了解元註解和相關定義註解的語法,所謂元註解就是負責註解(定義)其他註解,Java中提供的元註解有@Target來定義註解所使用的對象範圍;@Retention來定義註解被保留的時間長短;@Documented是一個標記註解,用於描述其它類型的註解應該被作為被標註的程序成員的公共API;@Inherited 也是一個標記註解,@Inherited闡述了某個被標註的類型是被繼承的。在JDK8之後又增加了@Repeatable、@Native等元註解,元註解具體的使用可參考官方文檔,文檔地址(JAVASE8):https://docs.oracle.com/javase/8/docs/api/java/lang/annotation/package-summary.html

在Java中可以使用@interface關鍵字來定義註解,如下圖所示,定義一個AuthAnnotation註解,可在方法上使用,並且註解將被保存到class文件中,JVM加載class文件之後(運行時)依然存在。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義註解

攔截器(Interceptor)

所謂攔截器就是在做某事前先進行阻攔,經過判斷看是否允許通行,如果不合法拒絕進行下一步操作,在Spring中簡單的案例就是用戶在發起請求進入Controller前先進行攔截,看當前請求是否合法(是否登錄或者是否有權限),如果不合法則直接結束該請求進行錯誤的信息提示,如果合法則放行,進入其他的攔截器(如果存在),直到所有攔截器都通過後再進入Controller中進行業務處理。

在Spring中可以通過實現HandlerInterceptor接口或者繼承實現了HandlerInterceptor接口的實現類如HandlerInterceptorAdapter等來實現,如下圖所示,定義一個簡單的攔截器。

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

自定義簡單攔截器

自定義攔截器主要實現接口的preHandle、postHandle以及afterCompletion三個方法,這三個方法分別對應請求處理之前、請求進行處理之後以及請求處理完成三個階段。創建完攔截器後還需要在Spring中進行配置,使之生效,配置代碼如下:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

攔截器配置

由上圖可見,可使用mvc:interceptors來配置多個攔截器,使用mvc:interceptor來配置具體的攔截器,主要配置攔截路徑和對應的攔截器類,配置完成後,在被攔截的請求處理時,就會先進入攔截器中進行處理。

攔截器整合註解進行權限處理

以上分別介紹了註解和攔截器的基本使用,現在開始介紹如何在攔截器中使用註解進行一些權限相關的判斷處理。首先在需要進行權限驗證的Controller方法上加上之前編寫的自定義註解,如下圖:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

使用自定義註解

在攔截器中就可以判斷請求的方法是否含有該註解進行進一步的判斷,具體使用如下圖所示:

在Spring項目中使用自定義註解和攔截器進行簡單的安全認證

在preHandle中判斷用戶合法性

在preHandle接口方法中可進行請求的的處理,該方法返回一個boolean值,如果返回false,就會終止接下來的請求。

關於註解和攔截器的就簡單介紹到這,歡迎大家提出問題和意見~如果有所幫助記得進行關注哦~

相關推薦

推薦中...