Waktu kedaluwarsa sesi
Di Tomcat, waktu yang valid default untuk sesi adalah 30 menit. Anda juga dapat memodifikasi waktu yang valid dari sesi melalui file konfigurasi.
1) Ubah Web.xml
<!-Tetapkan sesi tidak valid, segmen unit-> <sesi-config> <sesi-timeout> 1 </sesi-timeout> </sion-config>
2) file .yml
server.session.cookie.http saja = # apakah akan mengaktifkan httponly server.Session.timeout = #Session timeout (detik)
Gunakan filter untuk mendapatkan sesi untuk otentikasi (semua tes tidak diuji, gunakan dengan hati -hati)
1) Buat filter baru
impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.boot.web.servlet.servletcomponentScan; impor org.springframework.context.applicationContext; impor org.springframework.stereotype.component; impor org.springframework.web.context.support.webApplicationContextUtils; impor javax.servlet.annotation.webfilter; impor javax.servlet.http.httpservletRequest; impor java.io.ioException; @Component @servletComponentscan // biarkan @webfilter berfungsi @webfilter (urlpatterns = "/*") kelas publik myfilter mengimplementasikan 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.getUserTypey ()); // Dapatkan informasi identitas melalui otentikasi sesi AuthenticationUtil = new AuthenticationUtil (sessionKeyConfigProperties); UserTypeenum userType = authenticationUtil.getuserauthentication (httpservletrequest.getSession ()); // Sertifikasi // Otentikasi gagal jika (userType == null) {// ...} // Pengguna bukan administrator jika (userType! = Usertypeenum.admin) {// ...} filterchain.dofilter (servletRequest, servletResponse); } @Override public void destrash () {}} Pembaca yang cermat akan menemukan bahwa saya menggunakan AuthenticationUtil, yang merupakan kelas alat yang dirancang untuk memisahkan fungsi membaca dan menulis informasi otentikasi identitas pengguna. 2) Kelas Authenticationutil
impor org.apache.shiro.web.session.httpservletsession; impor javax.servlet.http.httpservletRequest; impor javax.servlet.http.httpsession; AuthenticationUtil kelas publik {private sessionKeyConfigProperties Confroperties; AuthenticationUtil publik (sessionKeyConfigProperties configroperties) {this.configProperties = configProperties; } /** * Dapatkan tipe identitas pengguna dari sesi * @param sesi * @return Identity Type * /Public Usertypeenum getUserauthentication (httpsession sesi) {// Dapatkan catatan informasi pengguna dalam objek sesi userType = Sesi. // Dapatkan tipe pengguna yang direkam dalam sesi jika (userType! = Null && userType instance dari userTypeenum) {return (usertypeenum) userType; } return null; } / ** * Tulis identitas pengguna ke dalam sesi * @param sesi * @param userType * / public void setuserauthentication (sesi httpsession, usertypeenum userType) {session.setAttribute (configProperties.getUserTypey (), userType); }} 3) Konfigurasi File sessiionkeyconfig.properties
user_type_key = userTypeKey
4) Mengkonfigurasi File Baca sessionKeyConfigProperties.class
impor org.springframework.beans.factory.annotation.value; impor org.springframework.context.annotation.configuration; impor org.springframework.context.annotation.propertysource; impor org.springframework.steretype.component; @Configuration @propertysource ("classpath: config/sessiionkeyconfig.properties") @component kelas publik sessionKeyConfigProperties {@value ("$ {user_type_key}") string pribadi userTypeKey; string publik getUserTypeKey () {return userTypeKey; } public void setUserTypeKey (String userTypeKey) {this.userTypeKey = userTypeKey; }} 5) Kelas enum
Publik enum usertypeenum {admin, user}Catatan: Artikel ini menghapus beberapa informasi paket dan beberapa informasi impor. Harap modifikasi konten kelas enum dan kelas konfigurasi sendiri sesuai dengan persyaratan proyek dan kamus data.
Meringkaskan
Di atas adalah alat otentikasi pengguna berbasis Springboot yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!