Tiempo de vencimiento de la sesión
En Tomcat, el tiempo válido predeterminado para la sesión es de 30 minutos. También puede modificar la hora válida de la sesión a través del archivo de configuración.
1) Modificar web.xml
<!-Establezca la sesión Inválida, segmento de unidad-> <session-config> <session timeOut> 1 </session timeOut> </session-config>
2) archivo .yml
server.session.cookie.http-only = # si a habilitar httponly server.session.timeout = #session timeOut (segundos)
Use filtros para obtener una sesión para la autenticación (todas las pruebas no se prueban, usan con precaución)
1) Cree un nuevo filtro
importar org.springframework.beans.factory.annotation.aUtowired; importar org.springframework.boot.web.servlet.servletcomponentscan; importar org.springframework.context.applicationContext; importar org.springframework.stereotype.component; importar org.springframework.web.context.support.webapplicationContextUtils; import javax.servlet.annotation.webfilter; import javax.servlet.http.httpservletRequest; import java.io.ioException; @Component @ServletComponentsCan // deja que @WebFilter funcione @webfilter (urlPatterns = "/*") clase pública myFilter implementa filtro {@aUtowired sessionkeyConfigProperties sessionKeyConfigProperties; @Override public void init (filterconfig filtreConfig) lanza ServletException {} @Override public void dofilter (ServLetRequest ServLetRequest, ServletResponse ServletResponse, filterChain FilterChain) lanza IOException, ServletException {htPserveRtRequest httpServeTrequest = ((htTpSeXception). System.out.println (sessionKeyConfigProperties.getUsertypekey ()); // Obtener información de identidad a través de la autenticación de sesión Autenticación de la sesión = new AuthenticationUtil (SessionKeyConfigProperties); Usertypeenum usertype = autenticationUtil.getuserauthentication (httpservletRequest.getSession ()); // certificación // La autenticación falló si (usertype == null) {// ...} // El usuario no es un administrador if (usertype! = Usertypeenum.admin) {// ...} filterChain.dofilter (servletRequest, servletreSponse); } @Override public void destruye () {}} Los lectores cuidadosos encontrarán que utilicé AuthenticationUtil, que es una clase de herramientas diseñada para separar las funciones de leer y escribir información de autenticación de identidad de usuario. 2) CLASE DE AUTENTICACIÓN
importar org.apache.shiro.web.session.httpservletsession; import javax.servlet.http.httpservletRequest; import javax.servlet.http.httpsession; Autenticación de clase públicaUtil {private sessionKeyConfigProperties configProperties; Public AuthenticationUtil (sessionKeyConfigProperties configProperties) {this.configProperties = configProperties; } /** * Obtenga el tipo de identidad del usuario de la sesión * @param Session * @return Identity Type * /public Usertypeenum getUserauthentication (httpsession session) {// Obtener registro de información del usuario en el objeto de sesión usertype = session.getAttribute (configProperties.getUsertypekey ()); // Obtener el tipo de usuario registrado en la sesión if (usertype! = Null && usertype instancia de usertypeenum) {return (usertypeenum) usertype; } return null; } / ** * Escriba la identidad del usuario en la sesión * @param Session * @param usertype * / public void setUserauthentication (Httpsession Session, usertypeenum usertype) {session.setTtribute (configProperties.getusertypekey (), userType); }} 3) Archivo de configuración sessiionkeyconfig.properties
user_type_key = userTypeKey
4) Configurar el archivo de lectura sessionKeyConfigProperties.class
importar org.springframework.beans.factory.annotation.value; importar org.springframework.context.annotation.configuration; importar org.springframework.context.annotation.propertySource; importar org.springframework.steretype.component; @Configuration @propertySource ("classpath: config/sessiionkeyconfig.properties") @Component public class sessionKeyConfigProperties {@Value ("$ {user_type_key}") String private UsertypeKey; public String getUsertypekey () {return userTypekey; } public void setUsertypekey (String userTypekey) {this.usertypekey = userTypekey; }} 5) clase de enum
public enum usertypeenum {admin, usuario}Nota: Este artículo elimina la información del paquete y la información de importación. Modifique el contenido de la clase Enum y la clase de configuración por usted mismo de acuerdo con los requisitos del proyecto y el diccionario de datos.
Resumir
Lo anterior es la herramienta de autenticación de usuario basada en SpringBoot presentada por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!