国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - spring aop 攔截業(yè)務(wù)方法,實(shí)現(xiàn)權(quán)限控制示例

spring aop 攔截業(yè)務(wù)方法,實(shí)現(xiàn)權(quán)限控制示例

2020-07-26 14:51云在青山 Java教程

這篇文章主要介紹了spring aop 攔截業(yè)務(wù)方法,實(shí)現(xiàn)權(quán)限控制示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下。

難點(diǎn):aop類是普通的java類,session是無法注入的,那么在有狀態(tài)的系統(tǒng)中如何獲取用戶相關(guān)信息呢,session是必經(jīng)之路啊,獲取session就變的很重要。思索很久沒有辦法,后來在網(wǎng)上看到了解決辦法。

思路是:

i. SysContext  成員變量 request,session,response 

ii. Filter 目的是給 SysContext 中的成員賦值 

iii.然后在AOP中使用這個SysContext的值

要用好,需要理解  ThreadLocal和  和Filter 執(zhí)行順序

1.aop獲取request,response,session等

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class SysContext {
  private static ThreadLocal<HttpServletRequest> requestLocal=new ThreadLocal<HttpServletRequest>();
  private static ThreadLocal<HttpServletResponse> responseLocal=new ThreadLocal<HttpServletResponse>();
  
  public static HttpServletRequest getRequest(){
   return requestLocalget();
  }
  
  public static void setRequest(HttpServletRequest request){
   requestLocalset(request);
  }
  
  public static HttpServletResponse getResponse(){
   return responseLocalget();
  }
  
  public static void setResponse(HttpServletResponse response){
   responseLocalset(response);
  }
  
  public static HttpSession getSession(){
   return (HttpSession)(getRequest())getSession();
  }
 }

2.添加過濾器

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class GetContextFilter implements Filter{
 
  @Override
  public void destroy() {
   
  }
 
  @Override
  public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain) throws IOException, ServletException {
   SysContextsetRequest((HttpServletRequest)request);
   SysContextsetResponse((HttpServletResponse)response);
   chaindoFilter(request, response);
  }
 
  @Override
  public void init(FilterConfig config) throws ServletException {
   
  }
 
 }

3.配置web.xml 

將這部分放置在最前面,這樣可以過濾到所有的請求

?
1
2
3
4
5
6
7
8
9
<filter>
  <filter-name>sessionFilter</filter-name>
  <filter-class>comuneifilterGetContextFilter</filter-class>
 </filter>
 
 <filter-mapping>
  <filter-name>sessionFilter</filter-name>
  <url-pattern>*</url-pattern>
 </filter-mapping>

4.spring aop before

從session中取出用戶名,如果不存在,拋出異常跳轉(zhuǎn),將錯誤信息放到request中

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Aspect
 public class AdminAspect {
  ActionContext context = ActionContextgetContext();
  HttpServletRequest request;
  HttpServletResponse response;
 
  @Before("execution(* comuneiActionAdminActiongetPrivileges())")
  public void adminPrivilegeCheck()
    throws Throwable {
   HttpSession session = SysContextgetSession();
   request = SysContextgetRequest();
   response = SysContextgetResponse();
   String userName = "";
   
   try {
    userName = sessiongetAttribute("userName")toString();
    if(userName==null||userNameequals(""))
     throw new Exception("no privilege");
   } catch (Exception ex) {
    requestsetAttribute("msg", "{\"res\":\"" + "無權(quán)限" + "\"}");
    try {
     requestgetRequestDispatcher("/jsp/jsonjsp")forward(
       request, response);
    } catch (ServletException e) {
     eprintStackTrace();
    } catch (IOException e) {
     eprintStackTrace();
    }
   }
  }
 }

5.applicationContext.xml

?
1
<bean id="adminAspect" class="comuneiaopAdminAspect"></bean>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:http://www.cnblogs.com/yxy2016/articles/5508114.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品自拍在线观看 | av一区二区三区四区 | 亚洲欧美在线视频 | 青青久在线视频 | 精品国产一区二区在线 | 久草精品在线观看 | 欧美成年黄网站色视频 | 欧美高清在线 | 欧美国产日韩一区 | 成人在线免费视频 | 精品久久久久久久久久久 | 国内精品久久久久久中文字幕 | 欧美大片免费高清观看 | 九色视频网站 | 日韩av一区二区在线观看 | 91精品国产乱码久久久久久 | 欧美14一18处毛片 | 国产专区一区 | 国产一区二区三区欧美 | 欧美日韩亚洲系列 | 久久99精品国产.久久久久 | 精品视频一区二区三区 | 一级片免费观看 | 中文字幕视频在线 | 欧美日韩一区精品 | 日韩毛片免费看 | 午夜av影院 | 精品护士一区二区三区 | 中文字幕一级毛片 | 日韩中文字幕 | 在线观看黄色电影 | 成人av一区二区三区 | 国产精品成人一区 | 免费视频爱爱太爽了 | 日韩欧美中文字幕在线视频 | 天天射影院 | jav久久亚洲欧美精品 | 欧美精品理论片大全 | 91精品视频在线 | 国产精品久久久久久久久久久免费看 | 香蕉视频三级 |