время истечения сессии
На Tomcat действующее время для сеанса по умолчанию составляет 30 минут. Вы также можете изменить достоверное время сеанса через файл конфигурации.
1) Изменить web.xml
<!-Set Session Invalid, сегмент блока-> <session-config> <session-timeout> 1 </session-timeout> </session-config>
2) .yml файл
Server.session.cookie.http-Noally = # включить ли время ожидания httponly server.session.timeout = #Session (секунд)
Используйте фильтры для получения сеанса для аутентификации (все тесты не проверены, используйте с осторожностью)
1) Создать новый фильтр
Импорт org.springframework.beans.factory.annotation.autowired; Импорт org.springframework.boot.web.servlet.servletComponentsCan; Импорт org.springframework.context.applicationContext; Import org.springframework.stereotype.component; Импорт org.springframework.web.context.support.webapplicationContextutils; Импорт javax.servlet.annotation.webfilter; Импорт javax.servlet.http.httpservletrequest; импортировать java.io.ioexception; @Component @servletcomponentscan // Let @WebFilter Work @WebFilter (urlPatterns = "/*") Общедоступный класс MyFilter реализует фильтр {@Autowired Private SessionKeConfigPerties SessionKeyConfigPerties; @Override public void init (filterConfig filterConfig) Throws ServletException {} @Override public void dofilter (ServletRequest ServletRequest, Servletresponse servletresponse, filterchain filterchain) throws yoExcept ServletRequest; System.out.println (sessionkeyconfigproperties.getUserTypekey ()); // Получить информацию о личности через сеанс аутентификацию аутентификации Autentication = new AuthenticationUtil (SessionKeyConfigProperties); Usertypeenum usertype = authenticationutil.getuserauthentication (httpservletrequest.getSession ()); // Сертификация // Аутентификация не удалась if (usertype == null) {// ...} // Пользователь не является администратором if (usertype! = Usertypeenum.admin) {// ...} filterchain.dofilter (servletrequest, servletresponse); } @Override public void destry () {}} Осторожные читатели обнаружит, что я использовал AuthenticationUtil, который представляет собой класс инструментов, предназначенный для разделения функций чтения и написания информации о аутентификации идентификации пользователей. 2) Класс аутентификации
Импорт org.apache.shiro.web.session.httpservletsession; Импорт javax.servlet.http.httpservletrequest; Импорт javax.servlet.http.httpsession; Public Class AuthenticationUtil {Private SessionKeyConfigProperties configProperties; Public AuthenticationUtil (SessionKeyConfigProperties configProperties) {this.configProperties = configProperties; } /** * Получить тип идентификации пользователя из сеанса * @param Session * @return Identity Type * /public usertypeenum getUserauthentication (httpsession) {// Получить информацию пользователя в сеансе usertype = session.getattribute (configproperties.getusertypekey ()); // Получить тип пользователя, записанный в сеансе if (usertype! = Null && usertype экземпляр usertypeenum) {return (usertypeenum) usertype; } return null; } / ** * Записать идентификацию пользователя в сеанс * @param session * @param usertype * / public void setUserauthentication (httpsession session, usertypeenum usertype) {session.setattribute (configproperties.getUserTypekey (), userTipe); }} 3) Файл конфигурации sessiionkeyconfig.properties
user_type_key = userTypeKey
4) Настройка файла чтения SessionKeConfigProperties.class
Импорт org.springframework.beans.factory.annotation.value; Импорт org.springframework.context.annotation.configuration; Импорт org.springframework.context.annotation.propertySource; Импорт org.springframework.steretype.component; @Configuration @propertysource ("classpath: config/sessiionkeyconfig.properties") @component public class sessionkonfigproperties {@value ("$ {user_type_key}") private usertypekey; public String getUsertypekey () {return usertypekey; } public void setUserTypekey (string usertypekey) {this.usertypekey = usertypekey; }} 5) Класс Enum
public enum usertypeenum {admin, user}Примечание. Эта статья удаляет некоторую информацию о пакете и некоторую импортную информацию. Пожалуйста, измените содержимое класса и класса Enum и класса конфигурации в соответствии с требованиями проекта и словарем данных.
Суммировать
Выше приведено инструмент аутентификации пользователей на основе Springboot, представленный вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!