国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看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 boot實(shí)戰(zhàn)教程之shiro session過期時間詳解

spring boot實(shí)戰(zhàn)教程之shiro session過期時間詳解

2021-01-14 16:07思與學(xué) Java教程

這篇文章主要給大家介紹了關(guān)于spring boot實(shí)戰(zhàn)教程之shiro session過期時間的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。

前言

眾所周知在spring boot內(nèi),設(shè)置session過期時間只需在application.properties內(nèi)添加server.session.timeout配置即可。在整合shiro時發(fā)現(xiàn),server.session.timeout設(shè)置為7200,但未到2小時就需要重新登錄,后來發(fā)現(xiàn)是shiro的session已經(jīng)過期了,shiro的session過期時間并不和server.session.timeout一致,目前是采用filter的方式來進(jìn)行設(shè)置。

ShiroSessionFilter

?
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/**
 * 通過攔截器設(shè)置shiroSession過期時間
 * @author yangwk
 */
public class ShiroSessionFilter implements Filter {
 private static Logger logger = LoggerFactory.getLogger(ShiroSessionFilter.class);
 
 public List<String> excludes = new ArrayList<String>();
 
 private long serverSessionTimeout = 180000L;//ms
 
 public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException,ServletException {
  if(logger.isDebugEnabled()){
   logger.debug("shiro session filter is open");
  }
  
  HttpServletRequest req = (HttpServletRequest) request;
  HttpServletResponse resp = (HttpServletResponse) response;
  if(handleExcludeURL(req, resp)){
   filterChain.doFilter(request, response);
   return;
  }
  
  Subject currentUser = SecurityUtils.getSubject();
  if(currentUser.isAuthenticated()){
   currentUser.getSession().setTimeout(serverSessionTimeout);
  }
  filterChain.doFilter(request, response);
 }
 
 private boolean handleExcludeURL(HttpServletRequest request, HttpServletResponse response) {
 
  if (excludes == null || excludes.isEmpty()) {
   return false;
  }
 
  String url = request.getServletPath();
  for (String pattern : excludes) {
   Pattern p = Pattern.compile("^" + pattern);
   Matcher m = p.matcher(url);
   if (m.find()) {
    return true;
   }
  }
 
  return false;
 }
 
 @Override
 public void init(FilterConfig filterConfig) throws ServletException {
  if(logger.isDebugEnabled()){
   logger.debug("shiro session filter init~~~~~~~~~~~~");
  }
  String temp = filterConfig.getInitParameter("excludes");
  if (temp != null) {
   String[] url = temp.split(",");
   for (int i = 0; url != null && i < url.length; i++) {
    excludes.add(url[i]);
   }
  }
  String timeout = filterConfig.getInitParameter("serverSessionTimeout");
  if(StringUtils.isNotBlank(timeout)){
   this.serverSessionTimeout = NumberUtils.toLong(timeout,1800L)*1000L;
  }
 }
 
 @Override
 public void destroy() {}
 
}

注冊filter

在被@Configuration注解標(biāo)注的類內(nèi)注冊ShiroSessionFilter。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Value("${server.session.timeout}")
private String serverSessionTimeout;
 
@Bean
public FilterRegistrationBean shiroSessionFilterRegistrationBean() {
 FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
 filterRegistrationBean.setFilter(new ShiroSessionFilter());
 filterRegistrationBean.setOrder(FilterRegistrationBean.LOWEST_PRECEDENCE);
 filterRegistrationBean.setEnabled(true);
 filterRegistrationBean.addUrlPatterns("/*");
 Map<String, String> initParameters = Maps.newHashMap();
 initParameters.put("serverSessionTimeout", serverSessionTimeout);
 initParameters.put("excludes", "/favicon.ico,/img/*,/js/*,/css/*");
 filterRegistrationBean.setInitParameters(initParameters);
 return filterRegistrationBean;
}

這樣當(dāng)每次請求時,如果用戶已登錄,就重新設(shè)置shiro session有效期,從而和server session保持了一致。

總結(jié)

以上就是這篇文章的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。

原文鏈接:http://www.jianshu.com/p/21d800215c17

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩国产在线看 | 欧美日韩在线免费观看 | 中文在线资源 | 免费成人在线视频网站 | 亚洲视频中文字幕 | 视频一区中文字幕 | 日韩精品在线观看中文字幕 | 久久国产精品一区 | 国产在线精品一区 | 欧美区亚洲区 | 91精品国产综合久久香蕉的用户体验 | 午夜精品视频 | 亚州男人天堂 | 成人小视频在线观看 | 国产在线观看免费 | 在线欧美亚洲 | 伊人在线| 午夜视频网站 | 欧美伦理电影一区二区 | 久久99精品久久久久久久青青日本 | 在线观看黄色 | 欧美一区二区在线观看视频 | 国产精品毛片久久久久久久 | 精品久久久久久久久久久 | 91精品免费 | 久久国产精品无码网站 | 成人黄色片网站 | 亚洲午夜免费视频 | 麻豆国产免费 | 久久尤物免费一区二区三区 | 国产福利在线观看 | 欧美日韩激情在线 | 黄色国产在线看 | 一区二区三区视频在线观看 | 国产精品久久久久久婷婷天堂 | 欧美日韩免费一区二区三区 | 亚洲欧美视频播放 | 久久久www成人免费无遮挡大片 | 久久精品国产一区二区电影 | 精品国产91 | 成人在线视频免费观看 |