وقت انتهاء صلاحية الجلسة
في Tomcat ، يكون الوقت الصحيح الافتراضي للجلسة 30 دقيقة. يمكنك أيضًا تعديل الوقت الصحيح للجلسة من خلال ملف التكوين.
1) تعديل web.xml
<!-تعيين جلسة غير صالحة ، قطاع الوحدة-> <session-config> <tate-timeout> 1 </sessiont-timeout> </ession-config>
2)
server.session.cookie.http-only = # ما إذا كان لتمكين httponly server.session.timeout = #Session Timeout (ثواني)
استخدم المرشحات للحصول على جلسة للمصادقة (لا يتم اختبار جميع الاختبارات ، واستخدامها بحذر)
1) إنشاء مرشح جديد
استيراد org.springframework.beans.factory.annotation.autowired ؛ استيراد org.springframework.boot.web.servlet.servletcomponentscan ؛ استيراد org.springframework.context.applicationContext ؛ استيراد org.springframework.stereotype.component ؛ استيراد org.springframework.web.context.support.webapplicationContextUtils ؛ استيراد javax.servlet.annotation.webfilter ؛ استيراد javax.servlet.http.httpservletrequest ؛ استيراد java.io.ioException ؛ component @servletcomponentscan // LetwebFilter work @webfilter (urlpatterns = "/*") الفئة العامة myFilter تنفذ filter {autowired sessionkeyCeyConfigProperties sessionKeyConfigProperties ؛ Override public void init (filterConfig filterConfig) يلقي servleTexception {} Override public void dofilter (servletrequest servletrequest ، servletResponse servletResponse ، filterchain filterchain) servletrequest System.out.println (SessionKeyConfigProperties.getuserTypekey ()) ؛ // احصل على معلومات الهوية من خلال مصادقة الجلسة antainticationUtil = مصادقة جديدة (SessionKeyConfigProperties) ؛ userTypeEnum userType = antainticationUtil.getUseraUthentication (httpservletrequest.getSession ()) ؛ // certification // فشل المصادقة إذا (usertype == null) {// ...} // المستخدم ليس مسؤولًا إذا (usertype! = usertypeenum.admin) {// ...} filterchain.dofilter (servletrequest ، servletResponse) ؛ } Override public void Dorner () {}} سيجد القراء الدقيقون أنني استخدمت AuthenticationUtil ، وهي فئة أدوات مصممة لفصل وظائف قراءة وكتابة معلومات مصادقة هوية المستخدم. 2) فئة المصادقة
استيراد org.apache.shiro.web.session.httpservletsession ؛ استيراد javax.servlet.http.httpservletrequest ؛ استيراد javax.servlet.http.httpsession ؛ مصادقة الفئة العامة {private SessionKeyConfigProperties configproperties ؛ AuthenticationUTIL (SATESKEYCONFIGPROPERTIES configproperties) {this.configProperties = configproperties ؛ } /** * احصل على نوع هوية المستخدم من الجلسة * @param session * @return type * /public usertypeenum getUserauthentication (httpsession session) {// احصل على سجل معلومات المستخدم في كائن الجلسة usertype = session.getattribute (configproperties.getusertypekekey ()) ؛ // احصل على نوع المستخدم المسجل في الجلسة if (userType! = null && userType مثيل UserTyPeenum) {return (userTypeEnum) userType ؛ } إرجاع فارغ ؛ } / ** * اكتب هوية المستخدم في جلسة * param جلسة * param usertype * / public void setUseraUthentication (httpsession session ، usertypeenum usertype) {session.setAttribute (configproperties.getusertypekey () ، usertype) ؛ }} 3) ملف التكوين sessiionkeyconfig.properties
user_type_key = userTypeKey
4) تكوين قراءة ملف SessionKeyConfigProperties.class
استيراد org.springframework.beans.factory.annotation.value ؛ استيراد org.springframework.context.annotation.configuration ؛ استيراد org.springframework.context.annotation.propertysource ؛ استيراد org.springframework.steretype.component ؛ configurationPropertySource ("classpath: config/sessiionkeyconfig.properties") component class sessionkeyconfigproperties {value ("$ {user_type_key}") سلسلة usertypekey الخاصة ؛ السلسلة العامة getUserTypeKey () {return usertypekey ؛ } public void setUserTypeKey (string usertypekey) {this.userTypeKey = userTypekey ؛ }} 5) تعداد فئة
التعداد العام usertypeenum {admin ، user}ملاحظة: تحذف هذه المقالة بعض معلومات الحزمة وبعض معلومات الاستيراد. يرجى تعديل محتويات فئة التعداد وفئة التكوين بنفسك وفقًا لمتطلبات المشروع وقاموس البيانات.
لخص
ما سبق هو أداة مصادقة المستخدم المستندة إلى Springboot التي قدمها لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!