Tempo de expiração da sessão
No Tomcat, o tempo válido padrão para a sessão é de 30 minutos. Você também pode modificar o tempo válido da sessão através do arquivo de configuração.
1) Modificar web.xml
<!-Definir sessão inválida, segmento de unidade-> <session-config> <session-timeout> 1 </session-timeout> </session-config>
2) arquivo .yML
server.session.cookie.http-somente = # se deve habilitar httponly server.session.timeout = #session timeout (segundos)
Use filtros para obter sessão para autenticação (todos os testes não são testados, use com cautela)
1) Crie um novo filtro
importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.boot.web.servlet.servletComponentsCan; importar org.springframework.context.ApplicationContext; importar org.springframework.tereotype.component; importar org.springframework.web.context.support.webApplicationContextUtils; importar javax.servlet.annotation.webfilter; importar javax.servlet.http.httpServletRequest; importar java.io.ioException; @Component @servletComponentsCan // Deixe @webfilter work @webfilter (urlpatterns = "/*") classe pública myFilter implementa filtro {@autowired sessionKeyKeNeConfigProperties sessionKeyConfigProperties; @Override public void init (filterConfig filterConfig) lança servletexception {} @Override public void Dofilter (servletRequest servletRequest, servletResponse servletResponse, filtro -chinearchain) lança IoException, servleTexception {hTtStrestlestretrestrevTrestrevTrevTrevTrevTeStPrevTrestps) servletRequest; System.out.println (sessionKeyConfigProperties.getUserTypeKey ()); // Obtenha informações de identidade por meio da sessão AuthenticationUtil AuthenticationUtil = new AuthenticationUtil (sessionKeyConfigProperties); UserTypeenum userType = autenticationutil.getUserauthentication (httpServletRequest.getSession ()); // certificação // Autenticação falhou se (userType == null) {// ...} // O usuário não é um administrador if (userType! = UserTypeenum.admin) {// ...} filterChain.Dofilter (servletRequest, servletResponse); } @Override public void Destroy () {}} Os leitores cuidadosos descobrirão que eu usei o AuthenticationUtil, que é uma classe de ferramentas projetada para separar as funções de leitura e gravação de informações de autenticação de identidade do usuário. 2) classe de autenticação
importar org.apache.shiro.web.session.httpServletSession; importar javax.servlet.http.httpServletRequest; importar javax.servlet.http.httpSession; classe pública AuthenticationUtil {private SessionKeyConfigProperties ConfigProperties; public AuthenticationUtil (SessionKeyConfigProperties ConfigProperties) {this.configProperties = configProperties; } /** * Obtenha o tipo de identidade do usuário da sessão * @param session * @return Identity Type * /public userTypeenum getUserauthentication (sessão httpsession) {// Obtenha o registro de informações do usuário no objeto de sessão userType = session.getAttribute (configproperties.getUsTypekey ()); // Receba o tipo de usuário gravado na sessão se (userType! = Null && userType Instância do userTypeenum) {return (userTypeenum) userType; } retornar nulo; } / ** * Escreva a identidade do usuário na sessão * @param session * @param userType * / public void setUserauthentication (sessão httpSession, userTypeenum userType) {session.setAttribute (configProperties.getUsertypekey (), usertype); }} 3) Arquivo de configuração SessiionKeyConfig.Properties
user_type_key = userTypeKey
4) Configurar o arquivo de leitura 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 SessionKeyKenKeNFigProperties {@Value ("$ {user_type_key}") private string userTypeKey; public String getUserTypeKey () {return userTypeKey; } public void setUserTypeKey (string userTypeKey) {this.UserTypeKey = userTypeKey; }} 5) Classe Enum
public enum userTypeenum {admin, usuário}Nota: Este artigo exclui algumas informações do pacote e algumas informações de importação. Modifique o conteúdo da classe Enum e da classe de configuração, de acordo com os requisitos do projeto e o dicionário de dados.
Resumir
O exposto acima é a ferramenta de autenticação de usuário baseada em trampolim, introduzida a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!