Tomcat7管理器中的空会话

时间:2018-09-26 14:25:28

标签: java eclipse tomcat7

在tomcat会话管理器中,有一些没有名称的空会话(猜测的用户名),我想以比正常会话小的超时时间删除该会话,我该如何在SessionListener类中做到这一点?

1 个答案:

答案 0 :(得分:0)

据我所知。

org.apache.catalina.manager.util.SessionUtils#guessUserFromSession将实现org.apache.catalina.Session的对象(例如org.apache.catalina.session.StandardSession)作为参数。

org.apache.catalina.Session#guessUserFromSession通话 org.apache.catalina.Session#getPrincipal在此对象上,该对象将返回实现java.security.Principal的对象。

此接口具有java.security.Principal#getName java.security.Principal#toString,用于“猜测”绑定到会话的用户名的方法。

如果未返回java.security.Principal的实现, ( null org.apache.catalina.Session调用 org.apache.catalina.Session#getAttribute使用以下语法 Login User userName UserName Utilisateur ,然后以小写形式,然后以大写形式获得值。

如果这些属性是null,则org.apache.catalina.Session遍历 org.apache.catalina.Session#getAttributeNames查找实现java.security.Principal或继承自javax.security.auth.Subject的对象 #getName调用这些对象的增益方法#toStringBWDisplay::setTemplate($template); 来“猜测”与此会话绑定的用户名。

您可以执行相同的过程来配置会话超时。