Temps d'expiration de la session
Sur Tomcat, le temps valide par défaut pour la session est de 30 minutes. Vous pouvez également modifier le temps valide de la session via le fichier de configuration.
1) Modifier web.xml
<! - Set Session Invalid, Unit Segment -> <session-Config> <Session-Timeout> 1 </ Session-Timeout> </ Session-Config>
2) Fichier .yml
Server.Session.cookie.http-only = # Il faut activer httponly server.Session.Timeout = #Session Timeout (secondes)
Utilisez des filtres pour obtenir la session pour l'authentification (tous les tests ne sont pas testés, utilisez avec prudence)
1) Créer un nouveau filtre
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.web.servlet.servletcomponentscan; import org.springframework.context.ApplicationContext; import org.springframework.sterereotype.Component; import org.springframework.web.context.support.webapplicationContextUtils; Importer javax.servlet.annotation.webfilter; Importer javax.servlet.http.httpservletRequest; Importer java.io.ioException; @Component @ servletcomponentsCan // Let @webfilter work @ webfilter (urlpatterns = "/ *") public class MyFilter implémente filter {@autowired private sessionKeyConfigProperties sessionKeConfigProperties; @Override public void init (filterconfig filterConfig) lève ServletException {} @Override public void dofilter (servletRequest Servlequequest, servletResponse ServletResponse, filterChain filterchain) lance ioexception, servlexception {httpserrequest httpsservlated) ServletRequest; System.out.println (SessionKeyConfigProperties.GetUserTypekey ()); // Obtenez des informations d'identité via la session AuthenticationUtil AuthenticationUtil = new AuthenticationUtil (sessionkeyConfigProperties); UserTypeEAM UserType = AuthenticationUtil.getUserAuthentication (httpServletRequest.getSession ()); // Certification // Authentification a échoué if (userType == null) {// ...} // L'utilisateur n'est pas un administrateur if (userType! = UsertypeeNum.admin) {// ...} filterchain.dofilter (servleTrequest, servlersPonse); } @Override public void destre () {}} Les lecteurs prudents constatera que j'ai utilisé AuthenticationUtil, qui est une classe d'outils conçue pour séparer les fonctions de lecture et d'écriture des informations d'authentification de l'identité utilisateur. 2) Classe d'authentification
import org.apache.shiro.web.session.httpservletSession; Importer javax.servlet.http.httpservletRequest; Importer javax.servlet.http.httpSession; classe publique AuthenticationUtil {private SessionKeyConfigProperties ConfigProperties; Public AuthenticationUtil (SessionkeyConfigProperties ConfigProperties) {this.configProperties = configProperties; } / ** * Obtenez le type d'identité de l'utilisateur à partir de la session * @Param Session * @return Identity Type * / public UserTypeEUm getUserAuthentication (httpSession session) {// Obtenir l'enregistrement des informations de l'utilisateur dans l'objet Session UserType = session.getAttribute (configProperties.getUserTypekey ()); // Obtenez le type d'utilisateur enregistré dans la session if (userType! = Null && Instance userType de userTypeENUM) {return (usertypeenum) userType; } return null; } / ** * Écrivez l'identité de l'utilisateur dans la session * @param session * @param userType * / public void setUserAuthentication (HttpSession Session, usertypeENUM UserType) {session.SetAttribute (configProperties.GetUserSerTypeEy (), userType); }} 3) Fichier de configuration SessiionkeyConfig.properties
user_type_key = userTypeKey
4) Configurer le fichier de lecture SessionKeyConfigProperties.class
import org.springframework.beans.factory.annotation.value; import org.springframework.context.annotation.configuration; import org.springframework.context.annotation.propertysource; import org.springframework.stereType.Component; @Configuration @propertysource ("classpath: config / sessiionkeyconfig.properties") @component public class SessionKeyConfigProperties {@Value ("$ {user_type_key}") private String userTypekey; public String getUserTypekey () {return userTypeKey; } public void SetUserTypekey (String userTypekey) {this.userTypekey = usertypekey; }} 5) Classe d'énumération
public Enum userTypeenum {admin, utilisateur}Remarque: Cet article supprime certaines informations sur le package et certaines informations d'importation. Veuillez modifier vous-même le contenu de la classe d'énumération et de la classe de configuration en fonction des exigences du projet et du dictionnaire de données.
Résumer
Ce qui précède est l'outil d'authentification utilisateur basé sur Springboot qui vous est présenté par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!