1. session如何在java代碼中判斷是否過期
系統框架使用的springmvc 。。。。
在controller層上做了攔截器,添加了自定義標簽,使用了該標簽則需要校驗session是否過期,過期則跳轉至登錄頁面,但是系統用到了shiro,請問在java代碼中如何判斷seesion已經過期
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
//過期,則跳轉登錄頁面重新登錄
if () { //就是這里不知道如何寫!!!!!!!!!!!!!!!!!!!!!
dosomething;。。。。
}
shiro配置如下:
<!-- 會話DAO -->
<bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
<property name="activeSessionsCacheName" value="shiro-activeSessionCache"/>
<property name="sessionIdGenerator" ref="sessionIdGenerator"/>
</bean>
<!-- 會話驗證調度器 -->
<bean id="sessionValidationScheler" class="org.apache.shiro.session.mgt.quartz.">
<property name="sessionValidationInterval" value="1800000"/>
<property name="sessionManager" ref="sessionManager"/>
</bean>
<!-- 會話管理器 -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
<property name="globalSessionTimeout" value="1800000"/><!-- 回話有效時間30分鍾 -->
<property name="deleteInvalidSessions" value="true"/>
<property name="" value="true"/>
<property name="sessionValidationScheler" ref="sessionValidationScheler"/>
<property name="sessionDAO" ref="sessionDAO"/>
<property name="sessionIdCookieEnabled" value="true"/>
<property name="sessionIdCookie" ref="sessionIdCookie"/>
</bean>
希望能幫到樓主, 謝謝
2. java開發 一般後台是怎麼進行驗證的 token cookie session
JWT只通過演算法實現對Token合法性的驗證,不依賴資料庫,Memcached的等存儲系統,因此可以做到跨伺服器驗證,只要密鑰和演算法相同,不同伺服器程序生成的Token可以互相驗證。
3. Java 伺服器中,如何根據兩個參數(用戶名和密碼)判斷這個用戶的session 是否存在即這個
直接再session裡面取這個用戶不就行了
沒得表示沒有登陸
有表示在登陸
4. java 將驗證碼存放在session是否安全,會不會被截取
session是在服務端的,所以不用擔心會被截取。
為當前請求創建一個會話(session),將驗證碼按照你們的安全策略放到session中,例如,記錄當前請求的IP地址,記錄當前手機號碼和發送驗證碼次數。每次請求時,獲取當前會話中的信息,進行邏輯判斷;
另外一種思路是將手機號碼等信息放到redis緩存,或者你們DB中,這樣就不會因為關閉瀏覽器(會話丟失)而導致之前記錄的手機號等信息丟失
5. java web中生成的驗證碼為什麼不放在session
java web中session是服務端機制,是占伺服器的內存的,一個用戶可能會提取多個驗證碼那上千個用戶差點的伺服器就高壓了,一般都是一次傳遞,沒必要用session這個貴重的東西,session是在萬不得已的情況下存儲一些重要的用戶信息。
驗證碼只需要存放在客戶端,每次重新驗證即可。
6. java 如何實現同一賬戶登錄驗證
今天繼續討論?-0-#這個只需要session和application就好了,用戶登錄時,這樣寫:User
user
=
.login(userName,
password);//
資料庫中判斷用戶名和密碼if
(null
!=
user)
{//
表示用戶存在
session.setAttribute("user",
user);//
把用戶放進session中
application.setAttribute(userName,
session.getId());/*
把用戶所在的sessionId放進application中,首先要明白一點,一個session對應一個瀏覽器,其次要注意一點,userName必須是唯一的*/}當用戶訪問到其他url的時候,可以在過濾器或你的攔截器中這樣寫:User
user
=
(User)
session.getAttribute("user");//
從session中取出用戶if
(null
==
user)
{//
未登錄或者登錄已經過期
response.sendRedirect(request.getContextPath());//
跳轉到首頁或登錄頁面}String
sessionId
=
(String)
application.getAttribute(user.getUserName());if
(null
==
sessionId
||
!sessionId.equals(session.getId()))
{/*這說明用戶已經在其他電腦或其它瀏覽器登錄了,那麼之前登錄的session就無效了,自動被後面的登錄給踢掉*/
response.sendRedirect(request.getContextPath());//
跳轉到首頁或登錄頁面}chain.doFilter(request,
response);//
通過驗證,放行用戶進入目標url這種方式是我的一個前輩想到的,我們公司的所有項目都採納了這種方式,確保一個賬號只能在一個瀏覽器中使用
7. java jsp頁面如何接收保存在類中session的驗證碼
1、在圖形驗證碼程序的生成過程中(一般中servlet中生成),使用session.setAttribute("code",yourCode);
2、在jsp頁面接收是用session.getAttribute("code")即可
希望能夠幫到你,
如若你有不清楚的,歡迎探討。
淘寶會員:宜人家園
8. java的session和request
最典型的區別是,request傳送到下一個頁面之後,裡面的屬性就沒掉了不能再傳遞到下一個頁面 ,做葉面的數據顯示用
而session會把這個attribute,hold住一段時間 然後時間到了以後釋放 ,可以用來驗證用戶登錄,購物車等
下面定義的是request有效
<action name="ConcenjudgeActionForm"
type="com.qh.rmms.web.struts.action.concenpara.EditGDAction"
input="/docmanager/modifyGDMuster.jsp" scope="request"
path="/EditGD-t4" validate="false">
<forward name="go" path="/docmanager/modifyGDMuster.jsp" />
</action>
9. 我是Java小白 我用web寫了一個登錄的網頁,請問怎麼在web里用session來驗證有沒有登陸
後台判斷登陸成功後,獲得Httprequest request,然後再用request.getSession.setAttribute("name",name);前一個「name」就是key,後一個name就是登陸人的用戶名value,在前段通過${name}的值判斷是否為空來校驗是否登陸,如果為空或為null說明沒有登陸,如果不是說明登陸了
有不明白的可以追問
10. JSP中怎樣用session保存並驗證用戶登錄信息
1、實現session中是鍵值對的方法代碼。
注意事項:
JSP將Java代碼和特定變動內容嵌入到靜態的頁面中,實現以靜態頁面為模板,動態生成其中的部分內容。JSP引入了被稱為「JSP動作」的XML標簽,用來調用內建功能。