最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于SpringBoot實現(xiàn)用戶身份驗證工具

 更新時間:2018年04月03日 10:22:09   作者:玩具熊貓  
這篇文章主要介紹了基于SpringBoot實現(xiàn)的用戶身份驗證工具,非常不錯,具有參考借鑒價值 ,需要的朋友可以參考下

session失效時間

 在Tomcat上,session的默認有效時間是30分鐘。也可以通過配置文件修改session的有效時間。

 1)修改web.xml

<!-- 設(shè)置session失效,單位分 --> 
<session-config> 
  <session-timeout>1</session-timeout> 
</session-config>

2).yml文件

server.session.cookie.http-only= #是否開啟HttpOnly 
server.session.timeout = #會話超時(秒) 

使用過濾器獲取session進行身份驗證(未全部測試,慎用)

1)新建Filter

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.boot.web.servlet.ServletComponentScan; 
import org.springframework.context.ApplicationContext; 
import org.springframework.stereotype.Component; 
import org.springframework.web.context.support.WebApplicationContextUtils; 
import javax.servlet.*; 
import javax.servlet.annotation.WebFilter; 
import javax.servlet.http.HttpServletRequest; 
import java.io.IOException; 
@Component 
@ServletComponentScan//讓@WebFilter起作用 
@WebFilter(urlPatterns = "/*") 
public class MyFilter implements Filter{ 
  @Autowired 
  private SessionKeyConfigProperties sessionKeyConfigProperties; 
  @Override 
  public void init(FilterConfig filterConfig) throws ServletException { 
  } 
  @Override 
  public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) 
      throws IOException, ServletException { 
    HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; 
    System.out.println(sessionKeyConfigProperties.getUserTypeKey()); 
    //通過session獲取身份信息 
    AuthenticationUtil authenticationUtil = new AuthenticationUtil(sessionKeyConfigProperties); 
    UserTypeEnum userType = authenticationUtil.getUserAuthentication(httpServletRequest.getSession()); 
    //進行認證 
    //認證失敗 
    if(userType == null){ 
      //... 
    } 
    //用戶不是管理員 
    if(userType != UserTypeEnum.ADMIN){ 
      //... 
    } 
    filterChain.doFilter(servletRequest,servletResponse); 
  } 
  @Override 
  public void destroy() { 
  } 
} 

細心的讀者會發(fā)現(xiàn)我用了AuthenticationUtil,這是為了將讀寫用戶身份認證信息的功能分離而設(shè)計的工具類  2)AuthenticationUtil類

import org.apache.shiro.web.session.HttpServletSession; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpSession; 
public class AuthenticationUtil { 
  private SessionKeyConfigProperties configProperties; 
  public AuthenticationUtil(SessionKeyConfigProperties configProperties) { 
    this.configProperties = configProperties; 
  } 
  /** 
   * 從session中獲取用戶的身份類型 
   * @param session 
   * @return 身份類型 
   */ 
  public UserTypeEnum getUserAuthentication(HttpSession session){ 
    //獲取session中的用戶信息記錄 
    Object userType = session.getAttribute(configProperties.getUserTypeKey()); 
    //獲取session中記錄的用戶類型 
    if(userType != null && userType instanceof UserTypeEnum) { 
      return (UserTypeEnum)userType; 
    } 
    return null; 
  } 
  /** 
   * 將用戶的身份寫入session中 
   * @param session 
   * @param userType 
   */ 
  public void setUserAuthentication(HttpSession session,UserTypeEnum userType){ 
    session.setAttribute(configProperties.getUserTypeKey(),userType); 
  } 
} 

3)配置文件SessiionKeyConfig.properties

user_type_key = userTypeKey 

4)配置讀取文件SessionKeyConfigProperties.class

import org.springframework.beans.factory.annotation.Value; 
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource; 
import org.springframework.stereotype.Component; 
@Configuration 
@PropertySource("classpath:config/SessiionKeyConfig.properties") 
@Component 
public class SessionKeyConfigProperties { 
  @Value("${user_type_key}") 
  private String userTypeKey; 
  public String getUserTypeKey() { 
    return userTypeKey; 
  } 
  public void setUserTypeKey(String userTypeKey) { 
    this.userTypeKey = userTypeKey; 
  } 
} 

5)Enum類

public enum UserTypeEnum { 
  ADMIN, 
  USER 
} 

注:本文刪除了一些package信息及部分import信息。Enum類和配置類的內(nèi)容請根據(jù)項目需求及數(shù)據(jù)字典自行修改。

總結(jié)

以上所述是小編給大家介紹的基于SpringBoot實現(xiàn)用戶身份驗證工具,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 一篇文章弄懂JVM類加載機制過程以及原理

    一篇文章弄懂JVM類加載機制過程以及原理

    JVM原理對于初學者而言,比較晦澀難以理解,概念繁多又比較抽象,很多時候感覺看不見摸不著,還不好驗證,下面這篇文章主要給大家介紹了關(guān)于如何通過一篇文章弄懂JVM類加載機制過程及原理的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • jvm中指定時區(qū)信息user.timezone問題及解決方式

    jvm中指定時區(qū)信息user.timezone問題及解決方式

    同一份程序使用時間LocalDateTime類型,在國內(nèi)和國外部署后,返回的時間信息前端使用出問題,這篇文章主要介紹了jvm中指定時區(qū)信息user.timezone問題及解決方法,需要的朋友可以參考下
    2023-02-02
  • Java實現(xiàn)雙色球抽獎隨機算法示例

    Java實現(xiàn)雙色球抽獎隨機算法示例

    本篇文章主要介紹了Java實現(xiàn)雙色球抽獎隨機算法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java設(shè)計模式之職責鏈模式詳解

    Java設(shè)計模式之職責鏈模式詳解

    Java設(shè)計模式中有很多種類別,例如單例模式、裝飾模式、觀察者模式等。本文將為大家詳細介紹其中的職責鏈模式,感興趣的可以了解一下
    2021-12-12
  • Java中ArrayList類用法詳解

    Java中ArrayList類用法詳解

    這篇文章主要給大家介紹了關(guān)于Java中ArrayList類用法的相關(guān)資料,ArrayList是Java中的一種常見的數(shù)據(jù)結(jié)構(gòu),它實現(xiàn)了List接口,是線程不安全的動態(tài)數(shù)組,需要的朋友可以參考下
    2023-09-09
  • Java傳值調(diào)用和傳引用調(diào)用方式(參數(shù)引用為null問題)

    Java傳值調(diào)用和傳引用調(diào)用方式(參數(shù)引用為null問題)

    這篇文章主要介紹了Java傳值調(diào)用和傳引用調(diào)用方式(參數(shù)引用為null問題),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 解決JDBC Connection Reset的問題分析

    解決JDBC Connection Reset的問題分析

    這篇文章主要介紹了解決JDBC Connection Reset的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 在Mac OS上安裝Java以及配置環(huán)境變量的基本方法

    在Mac OS上安裝Java以及配置環(huán)境變量的基本方法

    這篇文章主要介紹了在Mac OS上安裝Java以及配置環(huán)境變量的基本方法,包括查看所安裝Java版本的方法,需要的朋友可以參考下
    2015-10-10
  • IDEA中Mybatis的MGB使用逆向工程配置的詳細教程

    IDEA中Mybatis的MGB使用逆向工程配置的詳細教程

    這篇文章主要介紹了IDEA中Mybatis的MGB使用逆向工程配置,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java設(shè)計模式之java外觀模式詳解

    Java設(shè)計模式之java外觀模式詳解

    這篇文章主要介紹了Java設(shè)計模式之外觀模式(Facade模式)介紹,外觀模式(Facade)的定義:為子系統(tǒng)中的一組接口提供一個一致的界面,需要的朋友可以參考下
    2021-09-09

最新評論

宝兴县| 新乐市| 永吉县| 衢州市| 渝中区| 奎屯市| 鞍山市| 开化县| 沂水县| 名山县| 新闻| 修水县| 吉安县| 周宁县| 金寨县| 浏阳市| 新宁县| 兴义市| 郁南县| 晋江市| 云林县| 龙山县| 和龙市| 板桥市| 巩留县| 海口市| 呼伦贝尔市| 沭阳县| 元朗区| 易门县| 天等县| 馆陶县| 壤塘县| 柳河县| 从化市| 轮台县| 永顺县| 霍城县| 兴和县| 仁化县| 惠水县|